linux training in Thailand
| Home | Articles | Download | Free Linux Tips | Resources | Training | Web Link | Linux Training English|
| Courses | Schedule | Price & Promotion | Map | Customer Ref. | Instructors | Certification | FAQ | Registration Form |
สถาบันฯ ขอแจ้งปิดทำการระหว่างวันที่ 27 -31 กรกฏาคม 2558 และเปิดทำการปกติวันที่ 3 สิงหาคม 2558
We are on vacations 5 days in July 27-31, 2015 Please contract Line ID : nok_fly or e-mail : info@itdestination.com
ITDestination จะปิดปรับปรุงเว็บไซต์ ตั้งแต่วันที่ 7 - 9 มิถุนายน 2556
อาจจะทำให้ใช้งานไม่ได้ในบริการ Webboard Freetips และ E-Learning จึงขออภัยในความไม่สะดวกมา ณ ที่นี้
สถาบันฯ ขอแจ้งปิดทำการวันที่ 22-28 กุมภาพันธ์ 2560 และจะเปิดทำการปกติในวันที่ 1 มีนาคม 2560
กรณีติดต่อส่งข้อความมาที่ Facebook: LinuxITDestination หรือ e-mail: info@itdestination.com ซึ่งจะติดต่อกลับประมาณ 17.00 น.
ผู้ลงทะเบียนอบรมสามารถทำข้อสอบ online ในช่วงที่มาอบรมเพื่อทบทวนความรู้ ทำได้ไม่จำกัดจำนวนครั้ง มีข้อเฉลยที่ถูกต้องแนะนำ
สอบถามรายละเอียดโทร 089 890-5494 >>> อ่านรายละเอียด... คลิ๊ก

System Watch สารพัดวิธีการเฝ้ามองระบบลีนุกซ์

โดย ธีรภัทร มนตรีศาสตร์,RHCE

ผู้บริหารจัดการระบบปฏิบัติการลีนุกซ์มีภาระหน้าที่ที่จะต้องดูแลระบบต่างๆ ภายในเครือข่ายให้มีความพร้อมอยู่เสมอที่จะทำหน้าที่ต่างๆ ที่ได้วางระบบไว้ หลังจากที่ระบบและแอปพลิเคชั่นทั้งหลายได้ทำงานเป็นไปตามที่ต้องการแล้ว ก็ไม่ได้หมายความว่า ภารกิจของผู้บริหารระบบจะหมดลง หากแต่ยังคงต้องเฝ้าตรวจตราความเปลี่ยนแปลงต่างๆ ที่เกิดขึ้นในระบบต่อไปอีกอย่างต่อเนื่อง เพื่อให้ระบบมีสภาพที่ดีอยู่เสมอ

จุดประสงค์ของการเฝ้ามองระบบ
การเฝ้ามองระบบ (System Watch) มีจุดประสงค์เพื่อ

  1. เพื่อทราบสถานะปัจจุบันของระบบปฏิบัติการและสภาพแวดล้อมของระบบ
  2. เพื่อทำการสังเกตและค้นหาความผิดปรกติที่เกิดขึ้นโดยเปรียบเทียบสภาพก่อนและหลังการกระทำอย่างใดอย่างหนึ่งต่อระบบ
  3. เพื่อปรับปรุงหรือแก้ไขความบกพร่องทั้งในด้านคุณลักษณะ ประสิทธิภาพ และความปลอดภัยให้แก่ระบบ
เครื่องมือเฝ้ามองระบบ ในการปฏิบัติงานด้านการเฝ้ามองระบบ (System Watch) เช่นนี้ ผู้บริหารระบบจำเป็นต้องอาศัยเครื่องมือต่างๆ เพื่อการเข้าถึงส่วนประกอบภายในระบบ มีการรายงานสภาพปัจจุบันของระบบ ช่วยให้ได้รับข้อมูลที่อ่านค่าและวิเคราะห์ได้ง่าย ซึ่งเครื่องมือที่ช่วยงานด้านนี้ อาจแบ่งออกได้ 2 กลุ่มใหญ่ๆ คือ

  1. เครื่องมือที่เป็นคำสั่งพื้นฐานของระบบปฏิบัติการ ซึ่งมีอยู่เป็นจำนวนมาก บางคำสั่งก็มีหน้าที่เฉพาะโดยตรงเกี่ยวกับการเฝ้ามองระบบ แต่บางคำสั่งไม่ได้มีหน้าที่ด้านนี้โดยตรง แต่จะเป็นการประยุกต์หรือใช้ในทางอ้อมแล้วจึงให้ผลที่เป็นประโยชน์ต่อการเฝ้ามองระบบได้เช่นกัน
  2. เครื่องมือที่เป็นแอปพลิเคชั่นเพิ่มเติมจากภายนอก ซอฟต์แวร์ในกลุ่มนี้จะต้องจัดหามาติดตั้งเพิ่มเติมเอง มีขนาดและคุณสมบัติแตกต่างกันออกไป ส่วนใหญ่จึงมีคุณสมบัติที่ตอบสนองความต้องการได้ดีกว่าเครื่องมือในกลุ่มแรก แต่ก็จะต้องแลกด้วยความยุ่งยากในการติดตั้งก่อนที่จะใช้งานได้ และยังต้องศึกษาวิธีการใช้งาน ภายใต้เงื่อนไขที่ซอฟต์แวร์นั้นๆ กำหนดได้อีกด้วย

ดังนั้นจะเห็นว่า ลำพังเฉพาะคำสั่งพื้นฐานทั่วไปในระบบปฏิบัติการ ก็สามารถช่วยงานด้านการเฝ้ามองระบบได้แล้ว ทักษะในการใช้คำสั่งต่างๆ ของผู้ปฏิบัติงานจึงมีความสำคัญ และจำเป็นต้องศึกษาเพื่อสามารถนำมาใช้ได้ในสภาพการทำงานปรกติที่ต้องรู้สถานะของระบบอยู่เสมอหรือทันทีทันใดที่ต้องการ
การแบ่งระดับการเฝ้ามองระบบ ระดับของสถานะของระบบ เป็นอีกสิ่งหนึ่งที่จะช่วยให้เราเข้าใจการเฝ้ามองระบบได้ดียิ่งขึ้น โดยเราอาจบ้างระบบออกเป็น 3 ระดับ ได้แก่
  1. ระดับเคอร์เนลและโปรเซส ซึ่งถือว่าเป็นระดับที่มองลึกลงไปในการทำงานภายในแกนกลางของระบบปฏิบัติการที่มีความเปลี่ยนแปลงต่างๆ เกิดขึ้นในโปรเซสเซอร์และหน่วยความจำ
  2. ระดับยูสเซอร์ สภาพแวดล้อมของระบบ และแอปพลิเคชั่นต่างๆ ส่วนนี้จะมีความหลากหลายของส่วนประกอบค่อนข้างมาก เกี่ยวข้องกับการเข้ามาใช้งานของยูสเซอร์(รวมทั้งแอปพลิเคชั่นต่างๆ ที่ทำงานโดยอาศัยชื่อบัญชียูสเซอร์) การจัดการเนื้อที่ดิสก์และระบบจัดเก็บไฟล์ และขยายขอบเขตไปถึงการทำงานของซอฟต์แวร์ประยุกต์ต่างๆ ในระบบอีกด้วย
  3. ระดับโปรโตคอล และระบบเครือข่าย ถือว่าเป็นส่วนที่ผู้ดูแลระบบลีนุกซ์เซิร์ฟเวอร์มักให้ความสำคัญค่อนข้างมากกัน เพราะการทำงานภายในระบบปฏิบัติการลีนุกซ์จะอาศัยการไหลเวียนของโปรโตคอลต่างๆ ในการเชื่อมโยงสื่อสารการทำงานระหว่างกันนอกเหนือจากการสื่อสารให้บริการภายนอกในฐานะไคลเอ้นต์หรือเซิร์ฟเวอร์ที่เราทราบกันดีอยู่แล้ว ดังนั้นการเฝ้ามองความเคลื่อนไหวเกี่ยวกับระบบเครือข่ายจึงเป็นเรื่องสำคัญอย่างยิ่ง
คำสั่ง vmstat และ uptime ความเคลื่อนไหวและเปลี่ยนแปลงระดับเคอร์เนลและโปรเซส จะเป็นการสังเกตการทำงานภายในระบบปฏิบัติการที่เกี่ยวข้องกับการใช้ทรัพยากรของระบบปฏิบัติการ เช่น โปรเซสเซอร์ หน่วยความจำประเภทต่างๆ ระบบอินพุตและเอาต์พุต เป็นต้น ข้อมูลต่างๆ ที่ได้จากการเฝ้ามองระบบส่วนนี้มักถูกนำไปใช้เพื่อการปรับแต่งค่าให้เหมาะสมกับความต้องการ (System Optimization) หรือการทดสอบความต้องการของระบบสำหรับการใช้งานซอฟต์แวร์แอปพลิเคชั่นต่างๆ คำสั่งพื้นฐานที่ทำหน้าที่นี้โดยเฉพาะคือ คำสั่ง vmstat ซึ่งคำว่า vm มาจากคำว่า Virtual Machine หมายถึงเคอร์เนลของระบบนั่นเอง vmstat จึงเป็นการรายงานสถานะ (status) ของเคอร์เนลในทุกๆ ด้าน โดยเราสามารถใช้คำสั่งนี้ประกอบกับอ๊อปชั่นของคำสั่งได้อย่างหลากหลาย อ๊อปชั่นที่ใช้เป็นประจำได้แก่
-a แสดงภาพรวมทั้งหมดในบรรทัดเดียว
-a 10 แสดงผลต่อเนื่องทุกๆ 10 วินาที
-a  -n 10 จะไม่แสดง header ทุกครั้งที่แสดงข้อมูล
-d แสดงสถานะการอ่านเขียนดิสก์
-s แสดงสถานะของ vm table




รูปที่ 1 ตัวอย่างผลลัพธ์คำสั่ง vmstat -d
ในการดูว่าเซิร์ฟเวอร์ของเรามีภาระงานมากหรือน้อย ถ้าคำสั่ง vmstat มีข้อมูลที่ละเอียดเกินไป สามารถใช้คำสั่ง uptime ทดแทนได้โดยจะแสดงเป็นค่า load average ให้ทราบโดยเป็นตัวเลข 3 ชุด แทนค่าเฉลี่ยของภาระของเซิร์ฟเวอร์ ย้อนหลัง 1 นาที 5 นาที และ 15 นาทีตามลำดับ คำสั่ง lsof คำสั่ง lsof ย่อมาจาก list opened files เป็นการแสดงรายชื่อโปรเซสที่กำลังเปิดไฟล์อยู่ มีประโยชน์มากในด้านการตรวจว่าโปรแกรมต่างๆ ที่กำลังทำงานอยู่เปิดไฟล์อะไรขึ้นมาบ้าง เป็นไฟล์ข้อมูล คำสั่ง หรือเป็น Unix Domain Socket ซึ่งมักจะมุ่งเน้นไปที่จุดประสงค์ในด้านความปลอดภัยเป็นสำคัญ เช่น ต้องการทราบว่าขณะนี้มีโปรแกรม Trojan ที่กำลังเปิดโปรแกรม perl อยู่หรือไม่ หรืออาจจะต้องการทราบว่า Socket แปลกปลอมที่ค้นพบกำลังถูกใช้งานโดยโปรเซสใดอยู่
การใช้งานคำสั่งนี้ทำได้โดยระบุชื่อไฟล์โปรแกรมหรือคำสั่งที่สนใจลงไป จะแสดงผลดังรูปที่ 2



รูปที่ 2 การใช้คำสั่ง lsof แสดงความสัมพันธ์ระหว่างโปรแกรมกับโปรเซส


ในทางกลับกัน หากเรามีโปรเซสที่เราสนใจ หรือค้นพบโปรเซสแปลกปลอมในระบบ ก็สามารถสืบย้อนกลับไปได้ว่าโปรเซสนั้นกำลังเปิดไฟล์ใดอยู่บ้าง โดยใช้คำสั่ง lsof -p xxxxx โดยที่ xxxxx เป็นหมายเลขโปรเซส (Process ID : PID) ของโปรเซสที่เราสนใจ ก็จะได้ผลลัพธ์เป็นรายชื่อไฟล์ที่กำลังถูกเปิดอยู่โดยโปรเซสนั้นๆ คำสั่ง ps และ top สำหรับการตรวจสอบดูว่าสถานะของโปรเซสทั้งหมดที่มีอยู่ในระบบ เราสามารถใช้คำสั่ง ps และ pstree ได้ ซึ่งคำสั่ง ps (Process Status) จะรายงานในลักษณะดังรูปที่ 3 เราจะเห็นความสัมพันธ์ของ
โปรเซสทั้งหลายได้อย่างชัดเจน โดยสาระสำคัญที่สุดคงเป็นตัวเลขซ้ายมือสุด ซึ่งเป็นหมายเลข
โปรเซส (PID)


รูปที่ 3 ตัวอย่างผลลัพธ์คำสั่ง ps aF
อย่างไรก็ตามคำสั่ง ps จะไม่สามารถแสดงสถานะเกี่ยวกับโปรเซสในระบบได้อย่างต่อเนื่อง ซึ่งอันที่จริงแล้วการทำงานของซอฟต์แวร์ต่างๆ ภายในระบบปฏิบัติการย่อมมีความเคลื่อนไหวเปลี่ยนแปลงอยู่ตลอดเวลา ผลลัพธ์ของคำสั่ง ps จึงไม่เหมาะกับการเฝ้ามองระบบนัก จึงควรใช้คำสั่ง top จะเหมาะสม
มากกว่า


รูปที่ 4 การมอนิเตอร์ภาพรวมของระบบด้วยคำสั่ง top
จากรูปที่ 4 จะเห็นว่าคำสั่ง top จะเป็นโปรแกรมคำสั่งที่เมื่อรันแล้วจะแสดงหน้าจอรายงานค้างอยู่และมีการเปลี่ยนแปลงตลอดเวลา ช่วยให้เฝ้ามองระบบได้อย่างต่อเนื่อง นอกจากจะแสดงรายชื่อโปรเซสแล้ว เรายังสามารถจัดเรียงได้ตามเงื่อนไข เช่น เรียงตาม CPU load (กด Shift+P) หรือเรียงตามการใช้หน่วยความจำ (กด Shift+M) นอกจากนี้ยังสามารถบอกสถานะอื่นๆ ได้อีกในส่วนบนของจอภาพ เช่น บรรทัดแรกจะแสดงผลลัพธ์เหมือนผลลัพธ์คำสั่ง uptime บรรทัดที่สองแสดงสถานะ (STATE) ของโปรเซส บรรทัดที่ 3 แสดงสถานะของโปรเซสเซอร์ ส่วนบรรทัดที่ 4 และ 5 แสดงเกี่ยวกับหน่วยความจำ ทั้งนี้เนื่องจากคำสั่ง top เป็นคำสั่งพื้นฐานที่มาพร้อมกับระบบ การใช้งานอาจจะไม่สะดวก ไม่ถูกใจผู้ใช้งานนัก เช่น ไม่สามารถเลื่อน (Scroll) หน้าจอเพื่อลงไปดูโปรเซสทั้งหมดได้ การจัดหน้าจอก็ทำได้ไม่ง่ายนัก ดังนั้นจึงมีโปรแกรม htop เกิดขึ้น โดยผู้ใช้จะต้องดาวน์โหลดมาติดตั้งเพิ่มเติมเอง (กรณี Debian ใช้ aptitude ได้ทันที ส่วนผู้ใช้ Fedora สามารถใช้ yum ติดตั้งได้เช่นกัน) โปรแกรม htop ช่วยลดข้อจำกัดของคำสั่ง top ได้มากมาย เช่น ยินยอมให้ผู้ใช้จัดวางตำแหน่งแสดงข้อมูลได้เอง สามารถเลื่อนแถบสว่างไปยังโปรเซสที่ต้องการแล้วส่ง signal ไปได้โดยตรง สามารถเลือกสีการแสดงผลได้หลายรูปแบบ เป็นต้น หน้าตาของ htop แสดงดังรูปที่ 5


รูปที่ 5 โปรแกรม htop ที่มีคุณสมบัติเหนือกว่าคำสั่ง top
คำสั่งที่กี่ยวกับยูสเซอร์ สำหรับการทำงานในระดับยูสเซอร์ เราควรสามารถตรวจสอบและเฝ้ามองการกระทำของยูสเซอร์ได้ว่าเข้าออกเมื่อไหร่ มียูสเซอร์ใดกำลังใช้งานระบบอยู่บ้าง และมีการใช้ทรัพยากรอะไรอยู่บ้าง เราสามารถใช้คำสั่ง fuser เพื่อการตรวจสอบว่าไฟล์หรือไดเร็คทอรี่หรือ mount point ที่ระบุ กำลังถูกใช้งานอยู่หรือไม่โดยใครบ้าง ดังรูปที่ 6 แสดงให้เห็นว่า Socket ชื่อ fs7100 กำลังถูกใช้งานโดย root ผ่านโปรแกรมชื่อ xfs (X Font Server) ส่วนไดเร็คทอรี่ /www กำลังถูก mount โดย root อยู่จากระดับ kernel ในทางปฏิบัติคำสั่ง fuser นี้จึงช่วยให้เราแก้ไขปัญหาการ Unmount ไม่สำเร็จหรือ Device is busy ได้เพราะจะช่วยให้เราทราบว่าคำสั่งใดโดยโปรเซสใดที่กำลังใช้งาน mount point นั้นอยู่และเป็นสาเหตุของปัญหา


รูปที่ 6 การใช้คำสั่ง fuser แสดงการเปิดไฟล์ของยูสเซอร์
สำหรับการตรวจสอบว่า ณ เวลานี้มียูสเซอร์ใดกำลังอยู่ในระบบบ้าง สามารถตรวจสอบได้จากหลายคำสั่ง ได้แก่ คำสั่ง w คำสั่ง who และคำสั่ง last โดยที่คำสั่ง w เป็นการตอบคำถามว่ามีใคร (who) อยู่ในระบบบ้าง อยู่ที่เทอร์มินอลใดและมาจากที่ไหน (where) ล๊อกอินเข้ามาตั้งแต่เมื่อไหร่และนานเท่าไรแล้ว (when / how long) และขณะนี้กำลังทำอะไรอยู่ (what)


รูปที่ 7 เปรียบเทียบผลลัพธ์คำสั่ง w และ who
คำสั่ง who จะรายงานรายชื่อยูสเซอร์ที่ใช้งานในขณะนั้น หากใช้คำสั่ง who -Ha จะเห็นรายละเอียดที่มากยิ่งขึ้น รวมไปถึงการบูตระบบและ run level ที่สลับไปมาอีกด้วย ส่วนคำสั่ง last จะแสดงบันทึกของระบบเกี่ยวกับการเปิดปิดระบบ (boot/shutdown) และรายชื่อยูสเซอร์ที่ล๊อกอินในขณะปัจจุบัน รวมทั้งระยะเวลาและโฮสต์ที่ใช้งานแบบรีโมตเข้ามาอีกด้วย การจัดเก็บข้อมูลของคำสั่ง last นี้มีที่มาจากไฟล์ /va r/log/wtmp ซึ่งใช้ในการจัดเก็บข้อมูลการล๊อกอินย้อนหลังเอาไว้ สำหรับระบบของ Fedora Linux จะมีกลไกในการหมุนเวียนไฟล์นี้ทุกๆ เดือน (monthly) เพราะฉะนั้น หากมีความต้องการให้จัดเก็บนานมากขึ้นหรือน้อยลงก็สามารถปรับแต่งได้ที่ไฟล์ /etc/logrotate.conf


รูปที่ 8 ผลลัพธ์คำสั่ง last
การเฝ้ามองระดับเครือข่าย คำสั่งพื้นฐานทั่วไปบางครั้งสามารถนำมาประยุกต์ใช้ได้เป็นอย่างดี ในการเฝ้ามองระบบในระดับ
เครือข่ายก็เช่นกัน เช่น ถ้าเราต้องการรู้ว่ามีการติดต่อเข้าออกที่โฮสต์ของเรามากน้อยแค่ไหน คำสั่งง่ายๆ เช่น iptables ก็สามารถรายงานได้แล้ว ดังรูปที่ 9 จะเห็นว่าอ๊อปชั่น -v จะทำให้แสดงจำนวน
แพคเกตและไบต์ที่ไหลผ่าน chain ต่างๆ ได้ โดยเป็นปริมาณข้อมูลแบบภาพรวมนั่นเอง
ดังนั้นผู้บริหารระบบจึงสามารถประยุกต์ใช้คุณสมบัตินี้ของ iptables เพื่อการนับปริมาณข้อมูลที่ไหลผ่านตามเงื่อนไขได้โดยสร้าง Custom Defined Chains ขึ้นมา ประกอบกับการเขียนสคริปต์อีกเพียง
เล็กน้อยก็จะได้ระบบเฝ้ามองโปรโตคอลและทิศทางการสื่อสารขึ้นใช้งานแล้ว


รูปที่ 9 การใช้คำสั่ง iptables แสดงจำนวนแพคเก็ต
คำสั่ง netstat เป็นคำสั่งพื้นฐานด้านระบบเครือข่ายอีกคำสั่งหนึ่งที่สามารถนำมาประยุกต์ใช้ในด้านการเฝ้ามองระบบได้ตั้งแต่การแสดงสถานะทั่วไป จนถึงการจับตาดูความเคลื่อนไหวแบบต่อเนื่อง ตัวอย่างในรูป 10 เป็นการแสดงให้เห็นว่าพอร์ตชนิด UDP ,TCP หมายเลขใดถูกเปิดใช้งานอยู่บ้าง (สถานะเป็น LISTEN) และโปรเซส(โปรแกรม)ใดเป็นผู้สร้างและควบคุมพอร์ตนั้นอยู่ หากต้องการแสดง Unix Domain Socket ที่กำลังเปิดอยู่ก็สามารถใช้อ๊อปชั่น -lnxp แทนได้ อ๊อปชั่น -rCn เป็นอีกหนึ่งวิธีใช้งานคำสั่งนี้ที่จะช่วยทำให้เห็น Cache Routing Table จากภายในเคอร์เนลได้ ซึ่งมีผลต่อทิศทางการกำหนดเส้นทางเดินของแพคเกตจากเครือข่ายหนึ่งไปยังเครือข่ายอื่นๆ ว่ามีกี่เส้นทางและเป็นเส้นทางที่มีประสิทธิภาพมากน้อยแค่ไหน อ๊อปชั่น -s (statistic) เป็นการแสดงรายงานสรุปสถิติหรือตัวนับจำนวนแพคเกตหรือค่าต่างๆแยกตาม
โปรโตคอล ช่วยให้เห็นภาพรวมของการรับส่งข้อมูลได้เป็นอย่างดี
อ๊อปชั่น -acXn ( X แทนได้ด้วยตัวอักษร t=TCP, u=UDP, x=unix ตามชนิดโปรโตคอลที่ต้องการ) เป็นการแสดงการติดต่อระหว่างโฮสต์ด้วยโปรโตคอลต่างๆ ที่เกิดขึ้นในปัจจุบันแบบเวลาจริงว่ามีสถานะใดเกิดขึ้นบ้าง โดยแสดงผลต่อเนื่องตลอดเวลา


รูปที่ 10 ตัวอย่างผลลัพธ์คำสั่ง netstat
จากการใช้งานคำสั่ง netstat อาจจะไม่สะดวก และรูปแบบการแสดงผลไม่สวยงามเท่าที่ควร โปรแกรมเสริมที่เป็นที่นิยมใช้ในการลักษณะนี้จึงเกิดขึ้นคือโปรแกรม IPTraf ซึ่งมีใช้งานในลีนุกซ์แทบทุก
ดิสทริบิวชั่น หมายความว่า โปรแกรมนี้มักจะมีมาพร้อมในชุดโปรแกรมติดตั้งลีนุกซ์เลยทีเดียว ตามรูปที่ 11 จะเห็นว่า เราสามารถใช้โปรแกรม IPTraf นี้ในการมอนิเตอร์ระบบเครือข่ายโดยแยกตามชนิดของโปรโตคอลได้อย่างสวยงาม ทำให้ง่ายต่อการอ่านผลลัพธ์ (รันโปรแกรมโดยใช้คำสั่ง iptraf -s eth0 )


รูปที่ 11 การใช้โปรแกรม iptraf แสดงพอร์ตที่เชื่อมต่ออยู่
นอกจากนี้ IPTraf ยังสามารถแสดงสถิติและการเชื่อมต่อในเครือข่ายในลักษณะอื่นๆ ได้อีกมาก ได้แก่ การแสดงสถิติแบ่งตามอินเทอร์เฟส การแสดงผลการเชื่อมต่อระหว่างโฮสต์ทั้งแบบ Connection Oriented Protocols และ Connectionless Oriented Protocols การแสดงปริมาณข้อมูลและแบนด์วิธแยกตามประเภทโปรโตคอล


รูปที่ 12 ตัวอย่างการใช้คำสั่ง watch
บางครั้งคำสั่งพื้นฐานบางคำสั่งจะไม่สามารถแสดงผลอย่างต่อเนื่องได้อย่างเช่นคำสั่ง arp ซึ่งใช้ในการแสดงรายชื่อโฮสต์และ MAC Address จากตาราง ARP (ดังรูปที่ 12) และยังมีอีกหลายคำสั่งที่เป็นเช่นนี้ แต่ปัญหานี้สามารถแก้ไขได้ด้วยคำสั่ง watch ซึ่งถูกสร้างขึ้นมาเพื่อช่วยรันคำสั่งที่ระบุอย่างต่อเนื่องทุกๆ ช่วงเวลา 2 วินาที (หรือตามที่กำหนด) จึงทำให้เราสามารถเฝ้ามองการเปลี่ยนแปลงของผลลัพธ์คำสั่งต่างๆ ได้อย่างต่อเนื่อง เช่น เราต้องการรันคำสั่ง arp -e ทุกๆ 2 วินาทีก็จะใช้คำสั่งว่า # watch arp -e คือ พิมพ์คำสั่ง watch ตามด้วยบรรทัดคำสั่งที่ต้องการรันนั่นเอง ซอฟต์แวร์ที่ช่วยเฝ้ามองระบบโดยเฉพาะ ในระบบปฏิบัติการลีนุกซ์และยูนิกซ์แทบทุกดิสทริบิวชั่นจะมีแพคเกตซอฟต์แวร์ชื่อ sysstat ซึ่งจะมีหน้าที่รวบรวมข้อมูลด้านต่างๆ ที่เกิดขึ้นในระบบปฏิบัติการไม่ว่าจะเป็นด้านโปรเซส หน่วยความจำ ดิสก์ และระบบเครือข่าย โดยจัดเก็บไว้ในฐานข้อมูลของมันเอง แล้วสร้างรายงานแจ้งให้เราทราบทุกๆ ช่วงเวลาที่กำหนด หรือจะเรียกดูทันทีก็ได้ โดยผ่านคำสั่ง sar จะได้รายงานดังรูป 13 นอกจากคำสั่ง sar แล้ว ยังมีคำสั่งย่อยอีก 2 คำสั่งที่มาพร้อมกันในแพคเกจนี้ คือ คำสั่ง mpstat สำหรับรายงานเกี่ยวกับ CPU และคำสั่ง iostat สำหรับรายงานเกี่ยวกับระบบดิสก


รูปที่ 13 รายงานที่ได้จากคำสั่ง sar
นอกจากการใช้งานในโหมดข้อความแล้ว ผู้ใช้งานที่นิยมการทำงานบนกราฟฟิกก็ยังมีโปรแกรม
สนับสนุนการรายงานข้อมูลจากระบบได้เช่นกัน หากพิจารณาเท่าที่มีมาพร้อมแล้วในเดสทอปแบบ KDE จะมีแอปเพล็ตเล็กๆ ให้ติดตั้งใช้งานได้ทันที (ดังรูป 14) โดยคลิ๊กขวาบน Main Panel แล้วเลือก Add applet to panel... จากนั้นก็จะมีรายชื่อ Applet ให้เลือกติดตั้งได้ตามใจชอบ ที่เห็นนี้เป็น Applet ชื่อ System Guard และ System Monitor


รูปที่ 14 KDE Applet ที่ช่วยแสดงสถานะของระบบ
ส่วนสุดท้ายที่ผู้บริหารระบบลีนุกซ์ควรจะให้ความสนใจคือ ข้อมูลระบบจากพื้นที่ /proc ซึ่งจัดเก็บสถานะปัจจุบันของระบบไว้ โดยให้เข้าถึงได้เหมือนเป็นระบบไฟล์ระบบหนึ่ง เช่น /proc/cpuinfo จะเก็บสถานะของ CPU ของระบบ /proc/meminfo จะเก็บสถานะของหน่วยความจำ /proc/interrupts จะเก็บข้อมูลการจัดสรรสัญญาณขัดจังหวะของระบบไว้ เป็นต้น นอกจากจะใช้คำสั่งเปิดไฟล์มาอ่านโดยตรงแล้ว ใน KDE ยังให้โปรแกรมชื่อ KInfoCenter ไว้เพื่อเปิดข้อมูลมาอ่านได้สะดวกมากยิ่งขึ้นและแสดงผลเป็นกราฟฟิกที่อ่านเข้าใจง่ายกว่าอีกด้วย


รูปที่ 15 การแสดงผลของ KInfoCenter
ความชำนาญเกิดจากการฝึกฝน เครื่องมือสำหรับการเฝ้ามองระบบ (System Watch) ที่นำเสนอนี้ ส่วนใหญ่จะเห็นว่าเป็นคำสั่งพื้นฐานที่มีอยู่แล้วในระบบ เราจะใช้เครื่องมือเหล่านี้ได้ชำนาญแค่ไหนนั้นขึ้นอยู่กับการฝึกฝนที่จำเป็นต้องอยู่บนพื้นฐานของความรู้ ความเข้าใจ และอุทิศเวลาให้กับการลงมือทำอย่างจริงจัง โดยที่จะเป็นผู้บริหารระบบลีนุกซ์ที่ดีได้นั้นจะต้องตระหนักถึงการปฏิบัติงานภายใต้สถานการณ์ 1) เป็น Text Console 2) ไม่มีโปรแกรมพิเศษใดๆ ติดตั้งไว้ และ 3) ต้องแข่งกับเวลา เครื่องมือ/คำสั่งพื้นฐานเพื่อการเฝ้ามองระบบในลีนุกซ์มีอะไรบ้างจะใช้ประโยชน์ได้อย่างไรถึงเวลาที่ต้องศึกษาและทบทวนกันอันจะเป็นพื้นฐานไปสู่การเฝ้าระวังระบบที่ซับซ้อนยิ่งขึ้นในอนาคต