การติดตั้ง MRTG เพื่อตรวจสอบสถานะของ router ด้วย SNMP
จาก Research 2549, สารานุกรมฟรี
สารบัญ |
กล่าวนำ
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
- ดาวน์โหลด MRTG จาก http://oss.oetiker.ch/mrtg/pub/mrtg.tar.gz ด้วย wget หรือใช้เว็บบราวเซอร์
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
อย่างไรก็ตาม การดึงเอาสถานะสถิติของ 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 หลาย ๆ ตัวเพื่อให้
แสดงกราฟสรุปของแต่ละเราท์เตอร์ไว้ที่หน้าแรกดังแสดงในภาพ
ติดตั้ง .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 และรหัสผ่าน
เอกสารอ้างอิง
- Brad Marshall, "Introduction to MRTG", http://quark.humbug.org.au/publications/linux/mrtg-intro.html
- Cyberciti, "MRTG Introduction", http://www.cyberciti.biz/nixcraft/linux/docs/uniqlinuxfeatures/mrtg/mrtgintro.php
- อดิศร ขาวสังข์, "การติดตั้ง MRTG บนลินุกซ์", http://www.itwizard.info/technology/mrtg/mrtg_linux.html
- MRTG home page: http://people.ee.ethz.ch/~oetiker/webtools/mrtg/
- SNMP home page: http://net-snmp.sourceforge.net/
- MRTG authors installation by compiling source code: http://people.ee.ethz.ch/~oetiker/webtools/mrtg/mrtg-unix-guide.html
- SNMP How-to: http://www.rescomp.berkeley.edu/about/training/senior/progs/SNMP-HOWTO/SNMP-HOWTO.html
- Linux (UNIX) Man pages : snmpd.conf(5), snmpwalk(1), cfgmaker(1), indexmaker(1), mrtg(1), rpm(8), crontab(1)
- Other MRTG tutorial: Links to tons of mrtg config docs & tutorial
- Special Case: MRTG Red hat enterprise Linux Virtuozzo VPS configuration
- See Recommend books for SNMP & MRTG
