EZy Linux

Use SNMP and MRTG to monitor CPU, MEM and Disk use status

Written on September 10, 2007 – 9:22 pm | by Tum. |

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

ขั้นแรกให้ทำการแก้ไขไฟล์ .conf ก่อนเพื่อทำการเปิด service เกี่ยวกับพวก information ต่างๆของเครื่อง ดังข้างล่าง

#vi /etc//snmpd.conf

com2sec local 127.0.0.1/32 public
com2sec local 10.10.10.0/24 public
group MyROGroup v1 local
group MyROGroup v2c local
group MyROGroup usm local
view all included .1 80
access MyROGroup “” any noauth exact all none none
syslocation (MyLocation)
syscontact (Me )

ขั้นต่อมาให้ทำการแก้ไขค่าของ apache สำหรับใช้งานกับ โดยเฉพาะ โดยใช้ไปแก้ไขที่ไฟล์
#vi /etc/httpd/conf/httpd.conf

แล้วทำการเพิ่มข้อความด้านล่างลงไป

DocumentRoot “/var/www/html/

ต่อมาใช้คำสั่งด้านล่างสร้างไฟล์ config เกี่ยวกับการ Monitor traffic ของ network

/usr/bin/cfgmaker \
–output=/etc//traffic.cfg \
–ifdesc=ip \
–ifref=descr \
–global “WorkDir: /var/www/html//traffic” \
–global “Options[_]: bits,growright” \
public@localhost

หลังจากนั้นมาถึงการสร้างไฟล์ config เพื่อ monitor cpu กันแล้วครับ ใช้คำสั่ง #vi /etc//cpu.cfg สร้างและใส่รายละเอียดของการ config ดังข้างล่าง

WorkDir: /var/www/html//cpu
LoadMIBs: /usr/share//mibs/UCD--MIB.txt
Target[localhost.cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@127.0.0.1 + ssCpuRawSystem.0&ssCpuRawSystem.0:public@127.0.0.1 + ssCpuRawNice.0&ssCpuRawNice.0:public@127.0.0.1
RouterUptime[localhost.cpu]: public@127.0.0.1
MaxBytes[localhost.cpu]: 100
Title[localhost.cpu]: CPU Load
PageTop[localhost.cpu]: Active CPU Load %
Unscaled[localhost.cpu]: ymwd
ShortLegend[localhost.cpu]: %
YLegend[localhost.cpu]: CPU Utilization
Legend1[localhost.cpu]: Active CPU in % (Load)
Legend2[localhost.cpu]:
Legend3[localhost.cpu]:
Legend4[localhost.cpu]:
LegendI[localhost.cpu]: Active
LegendO[localhost.cpu]:
Options[localhost.cpu]: growright,nopercent

ต่อมาจะเป็นการ config การ Monitor อุณหภูมิของ cpu ด้วยการสร้างไฟล์ก้วยคำสั่ง #vi /etc//cpu-temp.cfg และใส่ข้อมูลข้างล่างลงในไฟล์นี้

LoadMIBs: /usr/share//mibs/LM-SENSORS-MIB.txt
Target[localhost.cpu-temp]: .1.3.6.1.4.1.2021.13.16.2.1.3.1&.1.3.6.1.4.1.2021.13.16.2.1.3.1:public@localhost
PageTop[localhost.cpu-temp]: CPU Temperature
WorkDir: /var/www/html//temp
Options[localhost.cpu-temp]: nopercent,growright,gauge,noinfo,pngdate,nobanner
Factor[localhost.cpu-temp]: 0.001
PNGTitle[localhost.cpu-temp]: CPU Temperature
Title[localhost.cpu-temp]: CPU Temperature
kMG[localhost.cpu-temp]: C
MaxBytes[localhost.cpu-temp]: 100000
YLegend[localhost.cpu-temp]: Temperature (c)
ShortLegend[localhost.cpu-temp]: C
LegendI[localhost.cpu-temp]: CPU Temperature:
LegendO[localhost.cpu-temp]:
Legend1[localhost.cpu-temp]: CPU Temperature
Legend2[localhost.cpu-temp]:
#Unscaled[localhost.cpu-temp]: ymwd
#WithPeak[localhost.cpu-temp]: ymwd
XSize[localhost.cpu-temp]: 360
YSize[localhost.cpu-temp]: 75
#YTics[localhost.cpu-temp]: 10
Colours[localhost.cpu-temp]: DKBLUE#61A0DF,DKBLUE#0000DD,DARKGREEN#006600,VIOLET#FF00FF

ขั้นตอนนี้จะเป็นการ monitor memory และ swap โดยเพิ่มไฟล์ /etc//mem.cfg และ /etc//swap.cfg ดังข้างล่าง

#vi /etc//mem.cfg

LoadMIBs: /usr/share//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]: Free Memory
WorkDir: /var/www/html//mem
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

#vi /etc//swap.cfg

LoadMIBs: /usr/share//mibs/UCD--MIB.txt
Target[localhost.swap]: memAvailSwap.0&memAvailSwap.0:public@localhost
PageTop[localhost.swap]: Swap Memory
WorkDir: /var/www/html//swap
Options[localhost.swap]: nopercent,growright,gauge,noinfo
Title[localhost.swap]: Free Memory
MaxBytes[localhost.swap]: 1000000
kMG[localhost.swap]: k,M,G,T,P,X
YLegend[localhost.swap]: bytes
ShortLegend[localhost.swap]: bytes
LegendI[localhost.swap]: Free Memory:
LegendO[localhost.swap]:
Legend1[localhost.swap]: Swap memory avail, in bytes

ขั้นตอนนี้เป็นการใส่การ Ping เข้าไปใน เพื่อทำการ Monitor โดยใส่ข้อมูลในไฟล์ /etc//ping.cfg ดังรายละเอียดด้านล่าง

#vi /etc//ping.cfg

WorkDir: /var/www/html//ping
Title[localhost.ping]: Round Trip Time
PageTop[localhost.ping]: Round Trip Time
Target[localhost.ping]: `/etc//ping.sh`
MaxBytes[localhost.ping]: 2000
Options[localhost.ping]: growright,unknaszero,nopercent,gauge
LegendI[localhost.ping]: Pkt loss %
LegendO[localhost.ping]: Avg RTT
YLegend[localhost.ping]: RTT (ms)

เมื่อทำการใส่รายละเอียดค่า config ของการ ping แล้วจะยังไม่สามารถใช้งานได้ครับ จะต้องเขียน script การ ping ขึ้นมาก่อนดังข้างล่างครับ

vi /etc//ping.sh

#!/bin/sh
PING=”/bin/ping”
# Google, for example
ADDR=”google.com”
DATA=`$PING -c10 -s500 $ADDR -q `
LOSS=`echo $DATA | awk ‘{print $18 }’ | tr -d %`
echo $LOSS
if [ $LOSS = 100 ];
then
echo 0
else
echo $DATA | awk -F/ ‘{print $5 }’
fi

ขั้นตอนนี้เป็นการเริ่มการรัน ด้วยคำสั่งด้านล่าง แต่จะยังไม่มีข้อมูลแสดงที่กราฟนะครับ

# env LANG=C /usr/bin/ /etc//cpu.cfg
# env LANG=C /usr/bin/ /etc//cpu-temp.cfg
# env LANG=C /usr/bin/ /etc//mem.cfg
# env LANG=C /usr/bin/ /etc//swap.cfg
# env LANG=C /usr/bin/ /etc//ping.cfg
# env LANG=C /usr/bin/ /etc//traffic.cfg

ต่อมาขั้นตอนนี้เป็นการไฟล์ Index เพื่อทำการลิ้งค์ไปยังเพจที่ใช้ monitor ต่างๆโดยพิมพ์ตามคำสั่งด้านล่างครับ

/usr/bin/indexmaker –output=/var/www/html//index.html \
–title=”Power Under Control :)” \
–sort=name \
–enumerate \
/etc//traffic.cfg \
/etc//cpu.cfg \
/etc//cpu-temp.cfg \
/etc//mem.cfg \
/etc//swap.cfg \

และสุดท้านเป็นการสั่งให้ระบบทำงานตามกำหนดเวลาครับ ด้วยคำสั่ง crontab -e และพิมพ์ข้อมูลด้านล่างลงไปครับ

*/3 * * * * /usr/bin/env LANG=C /usr/bin/ /etc//cpu.cfg
*/3 * * * * /usr/bin/env LANG=C /usr/bin/ /etc//cpu-temp.cfg
*/3 * * * * /usr/bin/env LANG=C /usr/bin/ /etc//mem.cfg
*/3 * * * * /usr/bin/env LANG=C /usr/bin/ /etc//swap.cfg
*/3 * * * * /usr/bin/env LANG=C /usr/bin/ /etc//ping.cfg
*/3 * * * * /usr/bin/env LANG=C /usr/bin/ /etc//cpu.cfg
*/5 * * * * /usr/bin/env LANG=C /usr/bin/ /etc//traffic.cfg

หลังจากทำการ config เสร็จเรียบร้อยแล้วรอสักระยะหนึ่งครับ เวลาเข้าไปดูให้เข้าไปที่ http://SERVERorIP ของท่านครับ

เป็นยังไงครับไม่ยากเลยนะครับ

ลินุกซ์ง่ายนิดเดียว…

Tags: ,

Post a Comment

ขอความร่วมมือ

ขอความร่วมมือ อย่า copy บทความที่ทางเราได้เขียนเอาไว้ไปไว้ในเวปของท่านโดยไม่ได้รับอนุญาติ ถ้าต้องการบทความใดให้ติดต่อที่ webmaster@ezylinux.com ได้ตลอดเวลา เพื่อจะได้ทำการพิจารณาเป็นครั้งๆไป

ขอบคุณสำหรับความร่วมมือครับ

ทีมงาน EzyLinux.com


Sponsor Links