ก่อนการติดตั้ง mrtg ต้องติดตั้ง service snmp ก่อน
การติดตั้ง SNMP
1. ติดตั้ง snmp
yum install net-snmp net-snmp-utils net-snmp-devel
2. เมื่อติดตั้ง snmp ได้แล้วจะได้ไฟล์ /etc/snmp/snmpd.conf ให้ทำการเพิ่มบรรทัดด่อไปนี้เข้าไป
view systemview included .1
ตัวอย่าง
# Make at least snmpwalk -v 1 localhost -c public system fast again.
# name incl/excl subtree mask(optional)
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
view systemview included .1 #เพิ่มบรรทัดนี้เข้าไป
3. สั่งให้ snmpd ทำงานทุกครั้งเมื่อเปิดเครื่องด้วยคำสั่ง
chkconfig snmpd on
4. เช็คว่า snmpd ทำงานอยู่หรือเปล่าด้วยคำสั่ง
/etc/init.d/snmpd status #เช็คสถานะของ snmpd
/etc/init.d/snmpd start # start snmpd
/etc/init.d/snmpd restart # restart snmpd
5. ทดสอบ snmpd ด้วยคำสั่ง snmpwalk
snmpwalk -v 1 localhost -c public system
จะมี responds กลับมาประมาณด้านล่าง
[root@eng ~]# snmpwalk -v 1 localhost -c public system
SNMPv2-MIB::sysDescr.0 = STRING: Linux eng.ru.ac.th 2.6.9-55.ELsmp #1 SMP Wed May 2 14:28:44 EDT 2007 i686
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (960677) 2:40:06.77
SNMPv2-MIB::sysContact.0 = STRING: Mr.Montree Phomkam
SNMPv2-MIB::sysName.0 = STRING: eng.ru.ac.th
SNMPv2-MIB::sysLocation.0 = STRING: Faculty Of Engineering,Ramkhamhaeng University
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (6) 0:00:00.06
.....................
จบ snmpd
การติดตั้ง MRTG
1. ติดตั้ง mrtg ด้วยคำสั่ง
yum install mrtg
หรือ
apt-get install mrtg
จะได้
/var/www/mrtg และ /etc/mrtg
2. แก้ไขไฟล์ /etc/httpd/conf.d/mrtg.conf
Deny from all
#Allow from 127.0.0.1 #ใส่ comment หน้าบรรทัดนี้
Allow from all
# Allow from .example.com
</Location>
3. สั่ง restart httpd
/etc/init.d/httpd restart
เปิด browser แล้วลองเข้า http://192.168.200.210/mrtg
4.มาเริ่มสร้างไฟล์ config โดยในตัวอย่างจะเป็นการจับ Traffic ของ Server ที่เป็น localhost สั่ง
ตั้งค่า locale ไม่ให้เป็น utf-8 ด้วยคำสั่ง
export LANG=en_US <<สำคัญมากอย่าลืมพิมพ์
echo "export LANG=en_US" >> /etc/rc.local
ให้ทุกครั้งที่เปิดเครื่องจะได้ export LANG=en_US ทุกครั้ง สร้าง directory สำหรับเก็บไฟล์ของ
mrtg mkdir /var/www/mrtg/traffic
สั่งสร้างไฟล์ config ด้วยคำสั่ง
cfgmaker -global "options[_]:bits,growright" --global "workdir: /var/www/mrtg/traffic" public@localhost > /etc/mrtg/traffic.cfg
*****มาเข้าใจโครงสร้างของ cfgmaker
"options[_]:bits,growright" << ส่วนนี้โดยปกติถ้าไม่กำหนดจะมันจะสร้างกราฟจากซ้ายไปขวาซึ่งทำให้ดูยาก จึงกำหนด growright เพื่อให้สร้างกราฟจากด้านขวาไปซ้าย ซึ่งแทน
"workdir: /var/www/mrtg/traffic" << ตรงส่วนนี้หมายถึงตำแหน่งที่เราต้องการจะเก็บไฟล์ .html กับกราฟที่เป็น .png ซึ่งก็คือ Directory ที่เราต้องการจะเก็บเว็ป mrtg นั้นเอง
"public@localhost" <<ส่วนนี้หมายถึง service name ของ snmp โดยปกติจะเป็น public ส่วน localhost หมายถึงกำหนดให้เป็นเครื่องตัวเองหรืออาจใส่ 127.0.0.1 ก็ได้
"> /etc/mrtg/traffic.cfg" << ตรงส่วนนี้เป็นการ redirection output เพื่อไปเขียนไฟล์ config ซึ่งระบบเป็น /etc/mrtg/traffic.cfg ก็หมายถึงให้สร้างไฟล์ชื่อ traffic.cfg ใน /etc/mrtg นั้นเอง
เมื่อสั่งคำสั่งด้านบนไปแล้วเราจะได้ไฟล์ /etc/mrtg/traffic.cfg มา
cat /etc/mrtg/traffic.cfg ก็จะแสดงรายละเอียดของไฟล์ออกมา
5. สั่งให้ mrtg สร้าง html และ graph มีโครงสร้างดังนี้
/usr/bin/mrtg /where/your/config/file << ตามด้วยที่อยู่ของไฟล์ config ตัวอย่าง
/usr/bin/mrtg /etc/mrtg/traffic.cfg
เมื่อสั่งไปแล้วจะมีข้อความแจ้ง warning นิดหน่อเพราะมันไม่สามารถเขียนทับไฟล์เก่าได้เนื่องจากเราสั่งเป็นครั้งแรก สั่งคำสั่งเดิมซ้ำอีก 2 รอบ warning ก็จะหายไป
ซึ่งตอนเราสร้างไฟล์ config เราได้กำหนด workdir เป็น /var/www/mrtg/traffic หลังจากสั่ง /usr/bin/mrtg /etc/mrtg/traffic.cfg ไปแล้วมันก็จะสร้างไฟล์ .html กับ .png ให้ซึ่งอยู่ใน /var/www/mrtg/traffic
ls -al /var/www/mrtg/traffic
-rw-r--r-- 1 root root 1592 Feb 15 21:15 localhost_2-day.png
-rw-r--r-- 1 root root 6546 Feb 15 21:15 localhost_2.html
-rw-r--r-- 1 root root 48211 Feb 15 21:15 localhost_2.log
ทดลองเรียก
http://202.41.164.210/mrtg/traffic/localhost_2.html
ก็จะแสดงกราฟออกมา ซึ่งจะยังไม่มีเส้นเพราะเพิ่งสร้างเป็นครั้งแรก การเรียก url แบบนี้หลายๆ ครั้งคงจำกันลำบาก ต่อไปเรามาสร้าง index ไฟล์เพื่อให้เรียกดูง่ายๆ กันโดยสั่ง
indexmaker --column=1 --output=/var/www/mrtg/traffic/index.html /etc/mrtg/traffic.cfg
มาเข้าใจโครงสร้างของ indexmaker กัน
"--column=1 " << ส่วนนี้คือจำนวนคอลัมน์ของกราฟที่ต้องการแสดง
"--output=/var/www/mrtg/traffic/index.html" << "/var/www/mrtg/traffic/" คือตำแหน่งที่เราจำสร้าง index.html นั้นเอง
"/etc/mrtg/traffic.cfg" <<คือตำแหน่งที่อยู่ของไฟล์ config ทีนี้ลองเปิดดูกราฟใหม่โดยเรียก
http://192.168.200.210/mrtg/traffic
มันจะ index หน้ากราฟมาให้เราดูโดยที่เราไม่ต้องกรอกชื่อเต็มๆ ของกราฟตัวนั้น ซึ่งเรามาสามารถคลิกที่รูปกราฟเพื่อดูรายละเอียดได้ สังเกตได้ว่ากราฟที่เราเปิดดูจะยังไม่มีเส้นแสดงรายละเอียดนั้นเป็นเพราะเราเพิ่งสร้างกราฟนั้นเป็นครั้งแรก
ต่อไปก็มาตั้งเวลาให้ mrtg สร้างกราฟให้เราทุกๆ 5 นาทีโดยใช้ crontab เข้ามาช่วยซึ่งโดยปกติ crond จะเป็น service ที่ start เองเมื่อเราเปิดเครื่องอยู่แล้วแต่เพื่อกันความผิดพลาดก่อนอื่นลองมาตรวจสอบว่า crond ได้ทำงานอยู่หรือไม่
/etc/init.d/crond status
ถ้าหากมันรายงาน pid ก็แสดงว่า crond ทำงานอยู่ ต่อไปมาสร้างตารางเวลาให้ mrtg ทำงานทุกๆ 5 นาที
crontab -e
มันจะเปิดหน้าจอ vi มาให้เรากด i แล้วพิมพ์บรรทัดต่อไปนี้เข้าไป
*/5 * * * * /usr/bin/mrtg /etc/mrtg/traffic.cfg
พิมพ์เสร็จแล้วกด esc ตามด้วย :wq เพื่อ save และออกจาก cronedit ดูรายละเอียดที่เราพิมพ์ไปเมื่อกี้ด้วยคำสั่ง
crontab -l
จะแสดงรายละเอียดของงานทั้งหมดที่ตั้งไว้ใน crontab สั่งให้ crond เริ่มทำงานใหม่ด้วย
/etc/init.d/crond restart
ดังนั้นทุกๆ 5 นาที mrtg จะสร้างกราฟให้เราใหม่ซึ่งก็จะทำให้กราฟมีเส้นที่แสดงอย่างต่อเนื่อง เปิด
browser : http://192.168.200.210/mrtg/traffic/index.html มันจะ refresh ตัวเองทุกๆ 5 นาที
#################################################################
ให้สร้างไฟล์ /etc/mrtg/cpu.cfg โดยมีรายละเอียดดังนี้
WorkDir: /var/www/mrtg/traffic
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt
Target[myhost-cpu]:ssCpuIdle.0&laLoadInt.1:public@localhost
RouterUptime[myhost-cpu]: public@localhost
MaxBytes[myhost-cpu]: 10000
Title[myhost-cpu]: Idle CPU and Load average
PageTop[myhost-cpu]: <H1>Idle CPU and Load average</H1>
ShortLegend[myhost-cpu]: %
YLegend[myhost-cpu]: CPU and Load Utilization
Legend1[myhost-cpu]: Idle CPU
Legend2[myhost-cpu]: Load average
LegendI[myhost-cpu]: Idle
LegendO[myhost-cpu]: Load
Options[myhost-cpu]: gauge, nopercent, growright
ตัวอย่างการใช้ mrtg ตรวจสอบการใช้งาน memory
ให้สร้างไฟล์ /etc/mrtg/mem.cfg โดยมีรายละเอียดดังนี้
LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
Target[localhost.mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:public@localhost
PageTop[localhost.mem]:<H1>Memory</H1>
WorkDir: /var/www/mrtg/traffic/
Options[localhost.mem]: nopercent,growright,gauge,noinfo
Title[localhost.mem]: Free Memory
MaxBytes[localhost.mem]: 1000000
KMG[localhost.mem]: k,M,G,T,P,X
YLegend[localhost.mem]: bytes
ShortLegend[localhost.mem]: bytes
LegendI[localhost.mem]: Free Memory:
LegendO[localhost.mem]:
Legend1[localhost.mem]: Free memory, not including swap, in bytes
ตัวอย่างการใช้ mrtg ตรวจสอบ tcp connection
ให้สร้างไฟล์ /etc/mrtg/tcp.cfg โดยมีรายละเอียดดังนี้
WorkDir: /var/www/mrtg/traffic/
LoadMIBs: /usr/share/snmp/mibs/TCP-MIB.txt
Target[myhost-tcpestab]: tcpCurrEstab.0&tcpCurrEstab.0:public@localhost
RouterUptime[myhost-tcpestab]: public@localhost
MaxBytes[myhost-tcpestab]: 1000000
Title[myhost-tcpestab]: TCP Current Establish
PageTop[myhost-tcpestab]: <H1>TCP Current Establish </H1>
ShortLegend[myhost-tcpestab]: conns
YLegend[myhost-tcpestab]: conns
LegendI[myhost-tcpestab]: Current:
LegendO[myhost-tcpestab]:
Legend1[myhost-tcpestab]: Current, numbers of connections
Legend2[myhost-tcpestab]:
Options[myhost-tcpestab]: nopercent, growright, gauge
ตัวอย่างการใช้ mrtg ตรวจสอบ uptime
ให้สร้างไฟล์ /etc/mrtg/uptime.cfg โดยมีรายละเอียดดังนี้
WorkDir: /var/www/mrtg/traffic/
Target[server-uptime]: `/etc/mrtg/mrtg_uptime.pl`
Colours[server-uptime]: LIGHT BLUE#7AAFFF,BLUE#1000FF,DARK GREEN#006000,VIOLET#FF00FF
Options[server-uptime]: gauge,noinfo, nopercent, growright, unknaszero
MaxBytes[server-uptime]: 200
Title[server-uptime]: server uptime
YLegend[server-uptime]: Days
ShortLegend[server-uptime]: Days
Legend1[server-uptime]: Uptime
Legend2[server-uptime]:
LegendI[server-uptime]:
LegendO[server-uptime]: uptime :
PageTop[server-uptime]:<H1>Uptime in days</H1>
และสร้างไฟล์ /etc/mrtg/mrtg_uptime.pl โดยมีรายละเอียดดังนี้
#!/usr/bin/perl
#Affichage de l'uptime en nombre de jours pour MRTG
$uptime = `uptime`;
$uptime =~ /up (.*?) day/;
$up = int($1);
print "$up\n";
print "$up\n";
จากนั้น chmod 7777 /etc/mrtg/mrtg_uptime.pl
อย่าลืมเพิ่มคำสั่งใน crontab ด้วย
crontab -e
*/5 * * * * /usr/bin/mrtg /etc/mrtg/traffic.cfg
*/5 * * * * /usr/bin/mrtg /etc/mrtg/cpu.cfg
*/5 * * * * /usr/bin/mrtg /etc/mrtg/mem.cfg
*/5 * * * * /usr/bin/mrtg /etc/mrtg/tcp.cfg
*/5 * * * * /usr/bin/mrtg /etc/mrtg/uptime.cfg
การสั่งให้สร้างหน้า index ให้มีกราฟหลายๆ รูปทำได้ดังนี้
indexmaker --column=2 --output=/var/www/mrtg/traffic/index.html /etc/mrtg/traffic.cfg /etc/mrtg/cpu.cfg /etc/mrtg/mem.cfg /etc/mrtg/tcp.cfg /etc/mrtg/uptime.cfg
1 ความคิดเห็น:
บทความดี มีประโยชน์ เขียนไว้เยอะๆ วันหลังลืม จะได้กลับมาดูได้เน๊อะ ^__^
พี่คอมเมนท์มีสาระดีม่ะ อิอิ
แสดงความคิดเห็น