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


สี่สหายสร้างเครื่องมือวิเคราะห์แบนด์วิธ

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




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

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

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

     มีโปรแกรมยูทิลิตี้จำนวนมากมายที่สามารถทำหน้าที่ด้านการมอนิเตอร์เครือข่ายในระบบปฏิบัติการลีนุกซ์ ส่วนใหญ่จะถูกรวบรวมไว้ให้แล้วใน ลีนุกซ์ดิสทริบิวชั่นทั้งหลาย สำหรับ Red Hat Linux 7.2 แล้วมาพร้อมกับซอฟต์แวร์ต่าง ๆ มากมายที่พร้อมจะให้เราสร้างเครื่องมือวิเคราะห์ระบบเครือข่ายได้ทันที โดยที่งานบางลักษณะอาจจะไม่จำเป็นต้องไปหาโปรแกรมอื่น ๆ จากภายนอกมาติดตั้งอีกเลย ซึ่งบางโปรแกรมมีคุณสมบัติ ที่น่าสนใจมาก ได้แก่ โปรแกรม MRTG

MRTG โปรแกรมฟรีที่น่าสนใจ โปรแกรม MRTG ( Multi Router Traffic Grapher ) ซึ่งสามารถมอนิเตอร์ระบบเครือข่าย นำข้อมูลมารวบรวมไว้ และนำเสนอเป็นรูปกราฟผ่าน เว็บเพจ โดยผู้จัดการระบบสามารถมอนิเตอร์ข้อมูลผ่านโปรแกรมเว็บบราวเซอร์ได้ทันที แต่คุณสมบัติเหล่านี้ไม่ได้เกิดจากตัวโปรแกรมMRTG แต่เพียงลำพัง ยังต้องอาศัยโปรแกรมอื่น ๆ เข้ามาสนับสนุนอีกจึงจะสามารถทำงานที่กล่าวไว้ได้ครบถ้วนสมบูรณ์ ซึ่งมีลำดับการทำงานดังนี้ อันดับแรก การที่จะรวบรวมข้อมูลต่าง ๆ จากระบบเครือข่ายมาได้ จำเป็นต้องอาศัยเครื่องมืออะไรก็ได้ที่ทำหน้าที่เป็นตัวแทนของเรา หรือที่ เรียกว่า Agent เฝ้าจับตาดูความเปลี่ยนแปลงของระบบเครือข่าย และส่งข้อมูลออกมาให้ทราบ โดยปรกติจะอาศัยโปรโตคอล SNMP ( Simple Network Management Protocol ) ซึ่งเป็นคุณสมบัติหนึ่งภายในอุปกรณ์ Router หรือ Switches ทำหน้าที่เป็น Network Management Server ต่อมาตัวโปรแกรม MRTG จะอ่านข้อมูลผ่าน SNMP Agent ตามระยะเวลาการสุ่มข้อมูลที่กำหนดไว้ แล้วพล๊อตกราฟ เป็นไฟล์รูปภาพ เก็บไว้ ที่ไดเร็คทอรี่ที่กำหนดไว้ สุดท้ายโปรแกรมที่ทำหน้าที่เป็นเว็บเซิร์ฟเวอร์จะนำเสนอข้อมูลกราฟที่สร้างจาก MRTG ผ่านทางโปรโตคอล HTTP ทำให้สามารถดูกราฟแสดงรายงานการใช้แบนด์วิธได้จากโปรแกรมเว็บบราวเซอร์ สี่สหายรวมพลังเป็นหนึ่ง ฟังดูเหมือนชื่อไตเต้ลภาพยนตร์นะครับ แต่ก็เป็นเช่นนั้นจริง ๆ อย่างที่ได้กล่าวไปแล้วว่า MRTG ไม่สามารถทำงานเพียงลำพังได้โปรเจคนี้ จะต้องอาศัยโปรแกรมอื่น ๆ เข้าช่วย แน่นอนครับ เราจะเลือกใช้โปรแกรมฟรีที่มาพร้อมกับ Red Hat Linux ดังนี้ สหายคนที่หนึ่ง การรวบรวมข้อมูลจากระบบเครือข่าย ใน Red Hat Linux มีโปรเจคชื่อ ucd-snmp ซึ่งทำหน้าที่เป็น SNMP อันนี้ช่วยให้คนที่ไม่มีอุปกรณ์ Router ,Switches หรือซอฟต์แวร์ประเภท SNMP ราคาแพง ก็สามารถมอนิเตอร์ระบบเครือข่ายของตนเองได้เช่นกัน สหายคนที่สอง เมื่อมีระบบมอนิเตอร์เครือข่ายแล้ว ก็จำเป็นต้องอ่านข้อมูลรายงานต่าง ๆ คัดเลือกเฉพาะข้อมูลที่สนใจ นำมาคำนวณแล้วบันทึกไว้ จากนั้น จึงนำข้อมูลนั้นไปปรับปรุงรูปกราฟให้แสดงข้อมูลเป็นปัจจุบัน หน้าที่นี้ยกให้เป็นหน้าที่ของโปรเจค MRTG ครับ สหายคนที่สาม การที่ MRTG จะอ่านข้อมูลจาก SNMP แต่ละครั้ง เราจะต้องกำหนดให้มีการกระตุ้นให้ทำการสุ่มตัวอย่างข้อมูลตามเวลาที่กำหนด อย่างต่อเนื่องและเที่ยงตรง เช่น สุ่มข้อมูลมาจาก SNMP ทุก ๆ 5 นาที เป็นต้น หน้าที่นี้เป็นของ crond ซึ่งเป็น daemon มาตรฐานของระบบอยู่แล้ว สหายคนสุดท้าย เมื่อ MRTG ทำการสร้างไฟล์ HTML และรูปกราฟไว้แล้ว ในด้านการแสดงผลจะเป็นหน้าที่ของโปรแกรม Apache ซึ่งเป็น Web Server ที่ให้มาแล้วใน Red Hat Linux ลงมือสร้าง Network Monitor สำหรับ Inetnet Gateway ตัวอย่างเช่นในครั้งนี้ เราจะมาลองสร้างระบบที่ช่วยมอนิเตอร์ระบบเครือข่าย โดยใช้ MRTG รายงานแบนด์วิธของเครื่องเซิร์ฟเวอร์ลีนุกซ์ที่ทำหน้าที่เป็น Internet Gateway โดยติดตั้งแลนการ์ด 1 ใบ กำหนด IP Address 192.168.0.1 Netmask 255.255.255.0 มีชื่อโฮสต์เป็น sp.mycom.com เชื่อมต่ออินเตอร์เน็ตผ่าน External Modem ด้วยดีไวซ์ /dev/ppp0 และทำหน้าที่เป็น Proxy Caching Server ด้วยโปรแกรม Squid เซิร์ฟเวอร์ลีนุกซ์เครื่องนี้ ทำการติดตั้งแบบ Everything ดังนั้นจึงมีแพคเกจต่าง ๆ ครบถ้วนสมบูรณ์พร้อมแล้ว คอนฟิกสหายหนึ่ง ucd-snmp ให้เป็น SNMP Management Server
  1. เริ่มต้นที่สิ่งสำคัญก่อนคือ ต้องปิดบริการของ snmpd เสียก่อน ด้วยคำสั่ง
    # service snmpd stop
  2. สำรองไฟล์คอนฟิกของ ucd-snmp ไว้ก่อน
    # mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.org
  3. ใช้โปรแกรมอีดิตเตอร์ที่คุณถนัดสร้างไฟล์ /etc/snmp/snmpd.conf ตามคอนฟิกพื้นฐานดังนี้
    # pico /etc/snmp/snmpd.conf ข้อความภายในไฟล์ /etc/snmp/snmpd.conf
    com2sec local sp.mycom.com public
    group Inet_Gateway v1 local
    group Inet_Gateway v2c local
    group Inet_Gateway usm local
    view all included .1
    access Inet_Gateway "" any noauth exact all none none

  4. เมื่อบันทึกไว้แล้ว ให้สตาร์ตบริการ snmpd ขึ้น ด้วยคำสั่ง
    # service snmpd start
  5. ทดสอบโดยใช้คำสั่ง snmpwalk ดังน
    ี้ # snmpwalk sp.mycom.com public
  6. จะปรากฏข้อความจากบริการ snmpd ขึ้นบนจอภาพ ดังตัวอย่างข้างล่างนี้ แสดงว่าสหายหนึ่ง( SNMP) ของเราทำงานแล้ว
    system.sysDescr.0 = Linux sp.mycom.com 2.4.7-10 #1 Thu Sep 6 17:27:27 EDT 2001 i686
    system.sysObjectID.0 = OID: enterprises.ucdavis.ucdSnmpAgent.linux
    system.sysUpTime.0 = Timeticks: (46458) 0:07:44.58
    system.sysContact.0 = root@localhost
    system.sysName.0 = sp.mycom.com
    system.sysLocation.0 = Unknown
    system.sysORLastChange.0 = Timeticks: (0) 0:00:00.00
    system.sysORTable.sysOREntry.sysORID.1 = OID: ifMIB
คอนฟิกสหายสอง MRTG
    ต่อมาคอนฟิก MRTG ให้อ่านข้อมูลจาก SNMP และทำหน้าที่พล๊อตกราฟ
  1. สร้างไดเร็คทอรี่ที่ใช้เก็บ output ของโปรแกรม MRTG ไว้ที่ Document Root ของ Apache
    # mkdir /var/www/html/Inet_Gateway
  2. สร้างไดเร็คทอรี่สำหรับเก็บคอนฟิกของ MRTG ไว้ภายใต้ Home Directory ของ root เอง
    # mkdir -p /root/mrtg/Inet_Gateway
  3. ใช้ยูทิลิตี้ cfgmaker ช่วยสร้างไฟล์คอนฟิก มีพารามิเตอร์ดังน
    ี้ # cfgmaker - - global "WorkDir: /var/www/html/Inet_Gateway" \
    - - global "Options[ _ ] : growright,bits" \
    - - output=/root/mrtg/Inet_Gateway/mrtg.cfg \
    - - ifref=ip public@sp.mycom.com
  4. กระตุ้นให้ MRTG เริ่มสร้างไฟล์ output
    # mrtg /root/mrtg/Inet_Gateway/mrtg.cfg
  5. จะสังเกตเห็นไฟล์ต่าง ๆ ปรากฏขึ้นที่ Document Root ที่กำหนดไว้
    # ls -l /var/www/html/Inet_Gateway/


คอนฟิกสหายสาม crond เป็นการกำหนดค่าให้แก่โปรแกรม Crond เพื่อกระตุ้นให้ MRTG สุ่มค่าจาก SNMP และนำมาสร้างกราฟ ทุก ๆ 5 นาที โดยเปิดไฟล์ /etc/crontab มาเพิ่มข้อความที่บรรทัดสุดท้าย 1 บรรทัดดังนี้ 0-59/5 * * * * root /usr/bin/mrtg /root/mrtg/Inet_Gateway/mrtg.cfg คอนฟิกสหายสี่ Apache .. Startup สำหรับสหายสี่ Apache Web Server โดยปรกติ Red Hat Linux 7.2 จะกำหนดให้ทำงานที่ Document Root นี้อยู่แล้ว แต่มักจะปิดบริการเอาไว้ ดังนั้นจึงต้องการเพียงแค่การสตาร์ตบริการ httpd ของ Apache ขึ้นมาเท่านั้น # service httpd restart กำหนดให้ SNMP และ Apache ทำงานอัตโนมัติเมื่อเปิดเครื่องใหม่ ให้ใช้คำสั่งต่อไปนี้กำหนดให้ snmpd และ httpd ทำงานอัตโนมัติเมื่อเปิดเครื่องใหม่ # chkconfig - - level 35 snmpd on
# chkconfig - - level 35 httpd on
ทดสอบดูผลการทำงานของ MRTG เมื่อเปิดโปรแกรมเว็บบราวเซอร์จากเครื่อง sp.mycom.com หรือจากเครื่องลูกข่ายใด ๆ ในระบบ แล้วเปิดหน้าเว็บเพจของ Apache ตาม URL ต่อไปนี้ จะเห็นกราฟที่ MRTG สร้างขึ้น และจะอัพเดตทุก ๆ 5 นาที http://sp.mycom.com/Inet_Gateway/sp.mycom.com_192.168.0.1.html

การพจญภัยของสี่สหายเพิ่มเริ่มขึ้น จากการคอนฟิกระบบลีนุกซ์เซิร์ฟเวอร์ที่ผ่านมา จะเห็นได้ว่าการที่จะสร้างเครื่องมืออย่างหนึ่งขึ้นอาจจะต้องอาศัยการคอนฟิกซอฟต์แวร์ โปรเจคหลาย ๆ ตัวให้ทำงานร่วมกัน ในบรรดาซอฟต์แวร์ทั้งหลายของลีนุกซ์ดิสทริบิวชั่นต่าง ๆ ก็ล้วนแล้วแต่มีคุณสมบัติที่หลากหลาย ประยุกต์ใช้งานได้ไม่สิ้นสุด นับว่าเป็นจุดเด่นที่ชัดเจนที่สุดของระบบปฏิบัติการลีนุกซ์ นอกจากการรายงานการใช้แบนด์วิธของเครือข่ายแล้ว โปรแกรม MRTG ยังสามารถนำมาประยุกต์ได้อีกมาก เช่น การมอนิเตอร์สถิติด้านอุณหภูมิของเซิร์ฟเวอร์ รายงานปริมาณการใช้งานหน่วย ความจำและดิสก์ของระบบเป็นต้น หากสนใจสามารถศึกษาเพิ่มเติมได้จากเอกสารแบบ HTML ที่ให้มาแล้วใน Red Hat Linux หรือ ที่เว็บไซต์ของผู้พัฒนาโปรแกรมนี้ ที่ http://people.ee.thz.ch/~oetiker/webtools/mrtg/ หากมีข้อสงสัยหรือต้องการเสนอแนะเกี่ยวกับผู้เขียนสามารถแวะ ไปได้ที่ http://www.itdestination.com/webboard

ฉบับนี้สวัสดีครับ