บอกกล่าวกันก่อน:
ก่อนอื่นต้องขอออกตัวไว้ก่อนนะครับว่าผมไม่ใช่เป็นผู้ที่เชี่ยวชาญทางด้าน
Linux มากนัก
เพียงแต่สามารถติดตั้งใช้งานโปรแกรม
MRTG บน
Linux ได้ ซึ่งจริง ๆ
แล้วก็ไม่ได้ยากอะไรมาก
แต่อาจจะสับสนบ้างสำหรับผู้ที่อยู่ในขั้นเริ่มต้นนะครับ
จริง ๆ
รู้จักกับ
MRTG
MRTG ย่อมาจาก Multi Router
Traffic Grapher
เป็นเครื่องมือที่ใช้สำหรับการมอนิเตอร์ดู
Traffic Load บน Nerwork Links
ซึ่งการทำงานของ MRTG
จะมีการสร้าง HTML Pages
ที่ประกอบด้วยภาพ (กราฟ)
ชนิด PNG
โดยภาพดังกล่าวนี้จะแสดงถึงปริมาณของทราฟฟิกบนเครือข่าย
สามารถดูตัวอย่างได้ที่
http://www.stat.ee.ethz.ch/mrtg/
ซึ่งการนำไปใช้งานส่วนใหญ่ก็จะนำไปมอนิเตอร์ดูทราฟฟิกตามพอร์ตต่าง
ๆ ของเราเตอร์ ว่ามีทราฟฟิกหนาแน่นขนาดไหน
ความต้องการของระบบ
ในการคอมไพล์และการใช้งาน
MRTG คุณจะต้องมี
C compiler and และ
copy of perl
ติดตั้งอยู่ในเครื่องของคุณ
ซึ่งโดยทั่วไปจะมีอยู่แล้ว (เครื่องที่ผมใช้เป็น
RedHat 7.3
ไม่ต้องมีการดาวน์โหลดคอมไพเลอร์ข้างล่างนี้แต่ประการใด)
ถ้าไม่มีก็ให้ปฏิบัติดังนี้ :
-
GCC -->> The GNU C
compiler
ส่วนใหญ่จะถูกติดตั้งมาแล้วบน linux
ถ้าไม่มีก็ต้องทำการดาวน์โหลดมาก่อน
ถ้าคุณไม่มีคอมไพเลอร์อยู่เลยก็จะมีปัญหาไก่กับไข่
แต่ก็ยังคงมี precompiled version
ของ gcc
ที่สามารถใช้งานได้สำหรับส่วนใหญ่ของ OS
อยู่ที่
http://gcc.gnu.org
-
Perl -->> ส่วนใหญ่ของระบบ
MRTG
ถูกเขียนด้วย Perl scripting language
ฉะนั้นในขั้นแรกต้องแน่ใจว่ามี copy of perl
อยู่ในเครื่องของคุณแล้ว
และอย่างน้อยต้องเป็นเวอร์ชัน 5.005
ถึงจะทำงานได้ดีกับ MRTG
วิธีการตรวจสอบว่ามี Perl
อยู่ในเครื่องแล้วยังให้ลองพิมพ์คำสั่ง perl -v
ดู ซึ่งส่วนใหญ่ใน Linux
ผมว่ามีอยู่แล้วนะครับ
คุณสามารถดาวน์โหลดเวอร์ชันล่าสุดของ perl
ได้ที่
www.perl.com
MRTG COMPILATION
ก่อนที่จะคอมไพล์
MRTG คุณต้องไปดาวน์โหลด
MRTG
มาก่อนนะครับซึ่งในตัวอย่างนี้ของใช้
MRTG เวอร์ชัน
mrtg-2.9.22
สามารถดาวน์โหลดได้ที่
http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub/
ชื่อไฟล์คือ
mrtg-2.9.22.tar.gz
โดยในที่นี้ได้ดาวน์โหลดมาไว้ที่
/usr/local/src
เมื่อดาวน์โหลดมาแล้วก็ให้ทำการ unzip
โดยใช้คำสั่งดังนี้
cd /usr/local/src
gunzip -c mrtg-2.9.22.tar.gz | tar xvf -
ซึ่งไฟล์ทั้งหมดก็จะถูก unzip
ไปไว้ในไดเร็คทอรี่ชื่อ
mrtg-2.9.22 (นั่นคืออยู่ในตำแหน่ง
/usr/local/src/mrtg-2.9.22)
ดังนั้นต่อไปให้คุณใช้คำสั่งต่อไปนี้
cd mrtg-2.9.22
ถ้าไลบรารี่ทั้งหมดได้ถูกติดตั้งอยู่ในเครื่องของคุณแล้ว
ก็ให้ทำการ configure
ด้วยคำสั่งต่อไปนี้
./configure
--prefix=/usr/local/mrtg-2
ซึ่งตำแหน่ง /usr/local/mrtg-2
ตามคำสั่งข้างบน ก็เป็นตำแหน่งที่ใช้เก็บโปรแกรม
mrtg สำหรับการใช้งาน ซึ่งตำแหน่งนี้คุณจะเปลี่ยนเป็นอย่างอื่น ก็ได้
การ configure
เป็นการทำให้แน่ใจว่า environment
ของคุณเหมาะสม (fit)
สำหรับการสร้าง mrtg
ซึ่งเมื่อคุณใช้คำสั่ง
configure
ระบบก็จะบอกคุณว่าให้ทำอะไรบ้าง ถ้าทุกอย่าง
OK คุณจะต้องจบด้วยการ
Makefile
สำหรับขั้นต่อไปก็ให้พิมพ์คำสั่ง make
ดังนี้
make
คำสั่ง make
จะเป็นการสร้าง rateup binary
และแก้ไข perl pathnames
ทั้งหมดในสคริปต์ และตอนนี้คุณก็สามารถติดตั้ง
mrtg
ด้วยการพิมพ์คำสั่งต่อไปนี้
make install (requires gnu
install)
ซอร์ฟแวร์ทั้งหมดที่ MRTG
ต้องการในตอนนี้ก็ถูกติดตั้งเรียบร้อยแล้วภายใต้ไดเร็กทอรี่
/usr/local/mrtg-2
(ของคุณอาจเป็นไดเร็กทอรี่อื่นได้)
ในตอนนี้คุณสามารถลบไลบรารี่ที่เราได้คอมไพล์แล้วข้างบนได้
แต่คุณอาจจะเก็บเอาไว้เพื่อการคอมไพล์อีกครั้งจนกว่าคุณจะทำการคอมไพล์เวอร์ชันใหม่ของ
mrtg
CONFIGURATION
ต่อไปเราก็จะมาเริ่มคอนฟิก
MRTG กัน
แต่ก่อนที่จะคอฟฟิกคุณต้องทราบข้อมูล 2
อย่างต่อไปนี้ด้วย
1. IP Address หรือ
Host Name ของ SNMP port
number
ของอุปกรณที่คุณต้องการจะมอนิเตอร์
ซึ่งถ้าอุปกรณ์ของคุณเป็น เราเตอร์ ก็คือ IP
ที่เป็น Gateway
หรือ IP
ที่เป็น ethernet
บนเราเตอร์นั่น เอง หรือถ้าใครจะใช้ IP
ของพอร์ต WAN
ก็ได้เหมือนกับครับ แต่ผมคิดว่า IP
ของ Ethernet
น่าจะเร็วกว่า
2.คุณต้องรู้ค่าของ read-only SNMP community
string บนอุปกรณ์ของคุณ
ถ้าไม่รู้ก็ให้พยายามใช้ public
ซึ่งเป็นค่า default
ครับ
สำหรับในตัวอย่างนี้ผมใช้เราเตอร์ที่เป็น CISCO
โดยมี IP
ของพอร์ต Ethernet เป็น
39.1.6.1 และ Commnity String
เป็น Public
การคอนฟิก mrtg
เพื่อมอนิเตอร์ดู network
device
ขั้นตอนนี้จะเป็นการสร้างไฟล์ที่ชื่อว่า
mrtg.cfg
ซึ่งเป็นไฟล์ที่กำหนดว่าคุณจะมอนิเตอร์ดูอะไร
โชคดีที่คุณไม่ต้อง "to dive straight in"
และเริ่มเขียนไฟล์คอนฟิกด้วยตัวคุณเองทั้งหมด
เพราะ copy of cfgmaker
ได้มาพร้อมกับ mrtg แล้ว
ตัว cfgmaker
เป็นสคริปต์ที่คุณสามารถชี้ไปที่ยัง router
ที่คุณเลือก และจะสร้าง mrtg
configure file สำหรับคุณ คุณสามารถหาสคริปต์ตัวนี้คือ cfgmager
ได้ที่ ซับไดเร็กทอรี่ bin
ตอนนี้คุณต้องมีการสร้างไดเร็กทอรี่ที่ใช้เก็บ
configure file
แต่ถ้าคุณจะเก็บไว้ในไดเร็กทอรี่ที่มีอยู่แล้วก็ไม่ต้อง
แต่ในที่นี้จะเก็บ configure file
ไว้ที่ /home/mrtg/cfg
จึงต้องการมีการสร้างไดเร็กทอรี่นี้ขึ้นมาก่อน
ฉะนั้นตอนให้คุณเข้าไปที่ bin
(/usr/local/mrtg-2/bin) แล้วพิมพ์ว่า
cfgmaker --global
'WorkDir: /home/httpd/mrtg' --global 'Options[_]:
bits,growright' --output /home/mrtg/cfg/mrtg.cfg
community@router.abc.xyz
โดยในส่วน
community@roter.abc.zyz
ของผมนั้นใช้เป็น :
public@39.1.6.1
เมื่อพิมพ์คำสั่งไปแล้ว
ก็จะเป็นการสั่งให้มีการติดต่อกับ router
เพื่ออ่านค่าพารามิเตอร์ของพอร์ตต่าง
ๆ บนเราเตอร์ (Ethernet และ
Wan) ไปเก็บลงสู่ไฟล์
mrtg.cfg
ไฟล์ mrtg.cfg ซึ่งเป็น
mrtg
config file จะถูกสร้างไว้ในตำแหน่ง
/home/mrtg/cfg (ตามที่ระบุในคำสั่ง)
และค่าของ WorkDir
ซึ่งจากคำสั่งข้างบนจะอยู่ที่
/home/httpd/mrtg
ก็เป็นตำแหน่งที่ใช้สำหรับการเก็บไฟล์ชนิดที่เป็น
html page
ซึ่งตำแหน่งนี้จะเก็บไว้ตรงไหนก็ได้ขึ้นอยู่กับคุณครับ
โดยค่านี้จะถูกบันทึกลงสู่ไฟล์ mrtg.cfg
ส่วนออฟชั่นที่เป็น --global
'Options[_]: bits,growright'
ก็เป็นการสั่งให้การแสดงผลของกราฟเริ่มต้นจากด้านขวามือ
ซึ่งถ้าไม่มีออฟชันนี้กราฟจะเริ่มต้นที่ด้านซ้ายมือ
ถ้าคุณเปิดดูไฟล์ mrtg.cfg
จะเห็นว่าในบรรทัดแรก ๆ
จะมีค่าตรงกับที่เราพิมพ์เข้าไป
และในส่วนถัดไปของไฟล์นี้จะมีคำสั่งภาษา html
และพารามิเตอร์ของพอร์ตต่าง ๆ ที่จะนำไปใช้สร้างไฟล์
html ต่อไป
แต่คุณต้องไม่ลืมสร้างไดเร็คทออรี่
/home/httpd/mrtg ไว้ด้วยนะครับ
เพราะไม่งั้นจะไม่สามารถสร้างไฟล์ html
ได้
RUNNING MRTG
วิธีการการรัน mrtg
ก็ให้พิมพ์คำสั่งต่อไปนี้ลงไป
/usr/local/mrtg-2/bin/mrtg /home/mrtg/cfg/mrtg.cfg
คำสั่งนี้ก็เป็นการรัน
perl script ที่ชื่อ
mrtg (/usr/local/mrtg-2/bin/mrtg)
โดยใช้ config file
(/home/mrtg/cfg/mrtg.cfg)
ประกอบการรัน การรันจะเป็นการ query
ไปยังเราเตอร์ และสร้าง
first mrtg trafic graphs and
webpages
โดยการรันในครั้งแรกนี้จะมีข้อความเกี่ยวกับ
log file ฟ้องขึ้นมา
ซึ่งไม่ต้องสนใจมัน
เพราะนี่เป็นภาวะปกติสำหรบการรัน mrtg
สองครั้งแรก
ให้ไปดูที่ไดเร็คทอรี่
/home/httpd/mrtg
จะเห็นว่ามีไฟล์เกิดขึ้นจำนวนหลายไฟล์
ซึ่งจะมีชนิดของไฟล์เป็น 3 ประเภทคือ
1. html file
ซึ่งจำนวนของไฟล์ประเภทนี้จะเท่ากับจำนวนของพอร์ต ต่าง
ๆ ที่ใช้งานอยู่ของเราเตอร์
ไฟล์นี้เองที่เราจะต้องเปิดดูผ่าน browser
เพื่อดูทราฟฟิกของพอร์ตต่าง ๆ
2. png file
เป็นไฟล์ภาพที่ใช้แสดงกราฟของทราฟฟิก
3. log file
ซึ่งถ้าเราเปิดดู html
ไฟล์ในตอนนี้เราจะเห็นแต่กราฟว่างเปล่า
เป็นเพราะว่าตอนนี้คำสั่ง
/usr/local/mrtg-2/bin/mrtg
/home/mrtg/cfg/mrtg.cfg
จะทำงานแค่ครั้งเดียวตอนที่เราพิมพ์ไปเท่านั้น
วิธีที่จะให้มีกราฟเกิดขึ้นคุณจะต้องพิมพ์คำสั่ง
/usr/local/mrtg-2/bin/mrtg
/home/mrtg/cfg/mrtg.cfg
อยู่ทุกช่วงเวลา ให้คุณลองทิ้งเวลาไปซัก 5 นาที
แล้วให้พิมพ์คำสั่ง
/usr/local/mrtg-2/bin/mrtg
/home/mrtg/cfg/mrtg.cfg
อีกครั้งคุณก็จะเห็นกราฟของทราฟฟิกเกิดขั้นมานิดหน่อย
และข้างบนของกราฟให้สังเกตว่าค่าเวลาในการแสดงผลจะเปลี่ยนไปตามเวลาที่เราพิมพ์คำสั่ง
จะเห็นว่าถ้าจะให้มานั่งพิมพ์คำสั่งดังกล่าวอยู่ทุกช่วงเวลาคงจะไม่ใช่สิ่งที่ควรทำแน่
ๆ ดังนั้นเราจะต้องหาวิธีให้ MRTG
รันทุกช่วงเวลาให้ได้
การทำให้ MRTG
รันทุกช่วงเวลา
ขั้นแรกก็ให้เพิ่มออฟชั่นต่อไปนี้
(เป็น script
หนึ่งบรรทัด) ไว้ในส่วนบน ๆ ของ config file (mrtg.cfg)
RunAsDaemon: yes
จากนั้นก็ให้ลองรัน mrtg
ใหม่อีกครั้งดังนี้
/usr/local/mart-2/bin/mrtg /home/mrtg/cfg/mrtg.cfg
--loging /var/log/mrtg.log
คำสั่งข้างบนนี้ จะเป็นการสั่งให้
mrtg รันทุกช่วงเวลาครับ
ซึ่งค่า default จะมีการรันทุก
5 นาที ดังนั้นหลังจากนี้ไปผลของกราฟจะมีการเปลี่ยนแปลงทุก ๆ 5
นาที (ยกเว้นมีการปิดเครื่อง)
ให้ดูเวลาบนกราฟประกอบครับ
ในคำสั่งข้างบนมีออฟชันเพิ่มคือ --logging
/var/log/mrtg.log
ซึ่งเป็นการสั่งให้มีการเก็บ
log file
ลงในไฟล์
/var/log/mrtg.log
นั่นเอง
ถ้าคุณเอา mrtg ไปติดตั้งบน
Web Server
ที่วางอยู่บนอินเตอร์เน็ตหรือจะเป็นอินทราเน็ตก็แล้วแต่
ก็จะทำให้สามารถดูผลของกราฟ จากที่ไหนก็ได้ครับ
นั่นคือในตอนสร้างไฟล์ config
ก็ให้เปลี่ยนไดเร็คทอรี่ที่ใช้เก็บ html page
ไปเป็นตำแหน่งของ document
root (หรือไดเร็กทอรี่ย่อยภายใต้
document root) ของ Web Server
หรือตำแหน่งอื่น ๆ ผ่านคำสั่ง
Alias บนไฟล์
config ของ Apache Web Server
จากที่กล่าวมาเมื่อใดที่คุณมีการปิดเครื่องหรือ
restart เครื่องที่ได้ลง
MRTG ไว้ ก็จะส่งผลให้
Service ของ
MRTG ถูกปิดไปด้วย
ซึ่งวิธีการที่จะรัน MRTG
ขึ้นมาใหม่ก็ต้องมีการพิมพ์คำสั่ง
/usr/local/mart-2/bin/mrtg /home/mrtg/cfg/mrtg.cfg
--loging /var/log/mrtg.log
ทุกครั้งไป
ซึ่งจะไม่สะดวกนักสำหรับเครื่องที่ต้องมีการปิด-เปิด
บ่อย ๆ วิธีการที่ทำให้สะดวกขึ้นก็คือการเอาสั่ง
ดังกล่าวไปเก็บไว้ในไฟล์
/etc/rc.d/rc.local เพื่อให้มีการรัน
mrtg
ทุกครั้งที่มีการเปิดเครื่อง