การติดตั้ง MRTG เพื่อตรวจสอบสถานะของ router ด้วย SNMP

จาก Research 2549, สารานุกรมฟรี

<<Back

สารบัญ

กล่าวนำ

MRTG (Multi Router Traffic Grapher) เป็น client โปรแกรมขนาดเล็กที่ใช้เพื่อ
อ่านสถานะของอุปกรณ์เครือข่ายที่สนับสนุนโปรโตคอล SNMP (Simple Network
Management Protocol) แล้วนำมาแสดงผลเทียบเป็นหน่วยเวลาและข้อมูลการใช้
งานแบนด์วิดธ์ของระบบเครือข่าย สามารถประยุกต์ใช้งานกับเซอร์ฟเวอร์ที่ได้ติดตั้ง
SNMP โปรโตคอลได้เช่นกัน การใช้งาน SNMP จะมีการถามรหัสผ่านซึ่งเรียกว่า
community string ซึ่งโดยทั่วไปจะถูกตั้งไว้ให้เป็น public เราสามารถแก้ไขให้
เป็นอย่างอื่นเพื่อความปลอดภัยของระบบ

Requirements

  • ระบบปฏิบัติการ Linux Ubuntu 6.06
  • เว็บเซอร์ฟเวอร์ apache2 ติดตั้งแล้ว
  • เราท์เตอร์ที่เปิดโปรโตคอล SNMP
  • คอมไพล์เลอร์ GCC
  • GD library

การติดตั้ง MRTG

  • ติดตั้ง SNMP ด้วย apt-get (เอาไว้เพื่อทดสอบ SNMP บนเครื่องที่ติดตั้ง MRTG)
sudo apt-get install snmpd
 wget http://oss.oetiker.ch/mrtg/pub/mrtg.tar.gz
  • ติดตั้ง GD library
 sudo apt-get install libgd2-xpm
  • ติดตั้ง GD header files
 sudo apt-get install libgd2-dev
  • ย้ายไดเร็กทอรี่ไปยังที่ดาวน์โหลด mrtg มาแล้ว แตกไฟล์ mrtg.tar.gz จะได้ไดเร็กทอรี่ mrtg-2.14.7
 tar zxvf mrtg.tar.gz
 cd mrtg-2.14.7
  • คอนฟิก mrtg ก่อนที่จะคอมไพล์
 ./configure
  • ถ้าไม่มี error ให้ปฏิบัติตามขั้นต่อไป แต่ถ้ามีให้แก้ไข error นั้นเสียก่อน (อาจลงไลบรารี่ไม่ครบ)
  • ข้อความแสดงการคอนฟิก mrtg ได้สมบูรณ์
.....<cut>......
----------------------------------------------------------------
Config is DONE!
Type 'make' to compile the software

       ... that wishlist mentioned above does really exist. So if
you feel like showing your appreciation for MRTG, this is the
place to go. I just love CDs and DVDs

                            -- Tobi Oetiker <oetiker@ee.ethz.ch>
  • จากนั้นให้รันคำสั่ง make เพื่อคอมไพล์ mrtg (การคอมไพล์ขั้นตอนนี้ไม่ต้อง sudo ก็ได้)
 make
  • ใช้เวลาในการคอมไพล์ไม่นานจะได้ไบนารี่ไฟล์ใน bin ไดเร็กทอรี่
ls bin
cfgmaker   cfgmaker~   indexmaker   indexmaker~   mrtg   mrtg~   rateup   rateup.o
  • จากนั้นติดตั้ง mrtg เข้าไปในระบบ ด้วยคำสั่ง make install
 sudo make install
  • โปรแกรมจะติดตั้ง mrtg ไว้ใน /usr/local/mrtg-2/ และใน /usr/local/mrtg-2/bin จะมีไบนารีไฟล์อยู่

การสร้างคอนฟิกไฟล์สำหรับ เราท์เตอร์

  • สร้างไดเร็กทอรี่สำหรับคอนฟิกของ mrtg เก็บไว้ใน /etc
sudo mkdir /etc/mrtg
sudo mkdir /var/www/mrtg
  • ใช้คำสั่ง cfgmaker ในที่นี้จะใช้ router ที่ชื่อ core-math มีไอพี 10.134.63.1
  • และมี Community String = 'crma'
sudo /usr/local/mrtg-2/bin/cfgmaker --global 'WorkDir: /var/www/mrtg' --global 'Options[_]: bits,growright' --output /etc/mrtg/core-math.cfg  crma@10.134.63.1
  • จะได้ไฟล์ /etc/mrtg/core-match.cfg จากนั้นสร้าง index.html ไว้ใน /var/www/mrtg ด้วยคำสั่ง indexmaker
  sudo /usr/local/mrtg-2/bin/indexmaker --output=/var/www/mrtg/index.html /etc/mrtg/core-math.cfg
  • ทดลองเปิดด้วยบราวเซอร์ไปที่ http://localhost/mrtg/index.html หรือตรวจสอบดูในไฟล์ /var/www/mrtg/index.html

แสดงผลกราฟบนเว็บเซอร์ฟเวอร์

เมื่อเสร็จขั้นตอนที่ผ่านมาจะได้ index.html อย่างไรก็ตามโปรแกรม mrtg ยังไม่ได้รัน
และยังไม่ได้ติดต่อกับ router ด้วยโปรโตคอล SNMP เลยเมื่อเปิดบราวเซอร์ดูจะยัง
ไม่มีกราฟขึ้น ให้ทดลองใช้คำสั่ง mrtg ดู

 sudo env LANG=C /usr/local/mrtg-2/bin/mrtg /etc/mrtg/core-math.cfg

ผลการรันจะปรากฏ warning ขึ้น ไม่ต้องสนใจกับการเตือนนั้นให้ทดลองเปิดดูที่
บราวเซอร์ใหม่จะเห็นกราฟขึ้นมาตาม รายละเอียดของเราท์เตอร์ที่เราไปเอาสถานะ
มาด้วยโปรโตคอล SNMP

รูปกราฟของ MRTG เมื่อติดตั้งขั้นแรก
Enlarge
รูปกราฟของ MRTG เมื่อติดตั้งขั้นแรก

อย่างไรก็ตาม การดึงเอาสถานะสถิติของ router ซึ่งในที่นี้คือ 10.134.63.1 เป็น
core switch (Cisco Catalyst 4000) ของ รร.จปร. เพียงครั้งเดียว แต่ถ้าเราต้อง
การให้มีการอัพเดทกราฟเป็นห้วง ๆ เช่น ทุก ๆ 5 นาทีให้ปฏิบัติในขั้นต่อไป

ตั้งเวลาการอัพเดทข้อมูล

วิธีการทำให้ mrtg อัพเดทข้อมูลตามห้วงเวลาที่กำหนดทำได้สองวิธีคือ

  • สั่งให้รันคำสั่ง /usr/local/mrtg-2/bin/mrtg /etc/mrtg/core-math.cfg ใน cron ทุก 5 นาที

แก้ไขไฟล์ /etc/crontab เพิ่มให้มีบรรทัดต่อไปนี้

 */5 * * * * root /usr/local/mrtg-2/bin/mrtg /etc/mrtg/core-math.cfg --logging /var/log/mrtg.log
  • หรือแก้ไขไฟล์ core-math.cfg ให้รันเป็นแบบ daemon โดยเพิ่ม RunAsDaemon: yes เข้าไป
 RunAsDaemon: yes

จากนั้นรันคำสั่ง

 sudo  /usr/local/mrtg2/bin/mrtg   /etc/mrtg/core-math.cfg   --logging   /var/log/mrtg.log

ตรวจสอบการทำงานของ MRTG

ตรวจสอบการทำงานของ mrtg ด้วยการเช็คในบราวเซอร์แล้วเปิดไปที่ http://localhost/mrtg
หรือรันคำสั่ง ps เพื่อดูว่ามีโพรเซสของ mrtg รันอยู่

 root@fujitablet:~# ps -ef |grep mrtg
 root      5743     1  0 22:20 ?        00:00:00 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg /etc/mrtg/core-math.cfg --loging /var/log/mrtg.log

ติดตั้ง mrtg เพิ่มเติมสำหรับ router ตัวอื่น ๆ

ในกรณีที่มีเราท์เตอร์มากกว่าหนึ่งตัวให้ปฏิบัติเช่นเดียวกับที่ได้ติดตั้งมาตั้งแต่ขั้นต้น
ซึ่งหากติดตั้งแล้วให้ทำ index.html สำหรับกราฟของ router หลาย ๆ ตัวเพื่อให้
แสดงกราฟสรุปของแต่ละเราท์เตอร์ไว้ที่หน้าแรกดังแสดงในภาพ

mrtg ติดตั้งสำหรับเราท์เตอร์หลาย ๆ ตัว
Enlarge
mrtg ติดตั้งสำหรับเราท์เตอร์หลาย ๆ ตัว

ติดตั้ง .htaccess เพื่อให้เฉพาะผู้ใช้ที่มีรหัสผ่าน

กราฟของ mrtg ไม่ควรให้ผู้ใช้ทั่วไปเข้าชมได้ ควรป้องกันการเปิดหน้าเว็บของ mrtg
ไว้ด้วยการถามรหัสผ่าน ก่อนเข้าใช้งาน ซึ่งสามารถทำได้ด้วยการใช้ .htaccess ของ
apache2

  • สร้างไฟล์ .htaccess ในไดเร็กทอรี่ /var/www/html/mymrtg/
 vi /var/www/mrtg/.htaccess
  • จากนั้นเพิ่มข้อความต่อไปนี้เข้าไป
 AuthName "MRTG Graphs/Html restricted access"
 AuthType Basic
 AuthUserFile /etc/mrtg/.htpasswd
 require user admin
  • จากนั้นให้สร้าง user และ รหัสผ่าน (ตัวเลือก -c ใช้สำหรับครั้งแรกที่สร้างไฟล์ .htpasswd
 sudo  htpasswd  -c  /etc/mrtg/.htpasswd  admin
  • จากนั้นแก้ไฟล์ /etc/apache2/
  sudo  vi /etc/apache2/sites-enabled/000-default
  • แก้ไขในส่วนของ AllowOverride ให้เป็น AuthConfig
 <Directory /var/www/>
         Options Indexes FollowSymLinks MultiViews
         AllowOverride AuthConfig
         Order allow,deny
         allow from all
         # Uncomment this directive is you want to see apache2's
         # default start page (in /apache2-default) when you go to /
         #RedirectMatch ^/$ /apache2-default/
 </Directory>
  • เริ่มการทำงานของ Apache2 ใหม่
 sudo  /etc/init.d/apache2 restart
  • ทดลองเข้าที่เว็บของ mrtg ที่สร้างไว้ http://localhost/mrtg/ อีกครั้งเครื่องจะถาม user และรหัสผ่าน

เอกสารอ้างอิง

Personal tools