Setup MRTG to monitor CPU workload , Memory and Disk use status with IOSTAT.
การติดตั้ง mrtg ในการ monitor สถานะต่างๆ ที่จะพูดถึงต่อไปนี้เป็นการนำ monitor tools มาประยุกต์ใช้งานในกับ mrtg ซึ่งการติดตั้งจำเป็นจะต้องเขียน script ขึ้นมาสำหรับการ monitor hardware นั้นๆ เพื่อให้ไม่เป็นการเสียเวลาเรามาเริ่มการติดตั้ง mrtg โดยใช้ IOSTAT tools หันเลยดีกว่าครับ
ขั้นแรกให้ทำการแก้ไขค่าของ apache web server สำหรับใช้งานกับ mrtg โดยเฉพาะ โดยใช้ไปแก้ไขที่ไฟล์
#vi /etc/httpd/conf/httpd.conf
แล้วทำการเพิ่มข้อความด้านล่างลงไป
DocumentRoot “/var/www/html/mrtg”
จากนั้นทำการสร้าง directory เพื่อใช้ในการเก็บข้อมูลเพื่อที่จะแสดงผลใน web
# mkdir /var/www/html/mrtg/cpu
# mkdir /var/www/html/mrtg/mem
# mkdir /var/www/html/mrtg/disk
จากนั้นทำการเขียน scripts เพื่อใช้ในการ Monitor ตามตัวอย่างด้านล่าง
สร้าง script monitor cpu
#vi /usr/local/mrtg/mrtg_cpu.sh
#!/bin/bash
cpuuser=`/usr/bin/sar -u 3 | grep Average | awk ‘{print $3}’`
cpusystem=`/usr/bin/sar -u 3 | grep Average | awk ‘{print $5}’`
UPtime=`/usr/bin/uptime | awk ‘{print $3″” $4″” $5}’`
echo $cpuuser
echo $cpusystem
echo $UPtime
hostname
สร้าง script monitor memory
#vi /usr/local/mrtg/mrtg_mem.sh
#!/bin/bash
#run this script to check the mem usage.
totalmem=`/usr/bin/sar -u -r 3 | grep Average |awk ‘{print $3}’`
usedmem=`/usr/bin/sar -u -r 3 | grep Average |awk ‘{print $3}’`
UPtime=`/usr/bin/uptime | awk ‘{print $3″” $4″” $5}’`
echo $totalmem
echo $usedmem
echo $UPtime
hostname
สร้าง script monitor disk
#vi /usr/local/mrtg/mrtg_disk.sh
#!/bin/bash
hd=sda
disk=/dev/$hd
UPtime=`/usr/bin/uptime |awk ‘{print $3″”$4″”$5}’`
KBread_sec=`iostat -x $disk|grep $hd |awk ‘{print $8}’`
KBwrite_sec=`iostat -x $disk|grep $hd |awk ‘{print $9}’`
echo $KBread_sec
echo $KBwrite_sec
echo $UPtime
hostname
จากนั้นทำการแก้ไข permission ของไฟล์ที่เราได้สร้างขึ้นมาด้วยคำสั่ง
#chmod 755 /usr/local/mrtg/mrtg_cpu.sh /usr/local/mrtg/mrtg_mem.sh /usr/local/mrtg/mrtg_disk.sh
ขั้นตอนต่อมาจะเป็นการสร้างไฟล์ config ของ mrtg เพื่อทำการ Monitor สถานะต่างๆ
Monitor CPU
#vi /var/www/mrtg/mrtg_cfg_cpu
WorkDir: /var/www/html/mrtg/cpu
Target[ip server หรือ ip server หรือ localhost]: `/usr/local/mrtg/mrtg_cpu.sh`
MaxBytes[ip server หรือ localhost]: 100
Options[ip server หรือ localhost]: gauge,nopercent,growright
YLegend[ip server หรือ localhost]: CPUloading(%)
ShortLegend[ip server หรือ localhost]: %
LegendO[ip server หรือ localhost]: CPU_USED_LOAD;
LegendI[ip server หรือ localhost]: CPU_SYSTEM_LOAD;
Title[ip server หรือ localhost]:CPUWORKLOAD
PageTop[ip server หรือ localhost]:
Monitor Memory
#vi /var/www/mrtg/mrtg_cfg_mem
WorkDir: /var/www/html/mrtg/mem
#Language:GB2313
Target[ip server หรือ localhost]: `/usr/local/mrtg/mrtg_mem.sh`
MaxBytes[ip server หรือ localhost]: 2048000
kmg[ip server หรือ localhost]: KB,MB
kilo[ip server หรือ localhost]: 1024
Options[ip server หรือ localhost]: gauge,nopercent,growright
YLegend[ip server หรือ localhost]: Memory Usage:
Legend1[ip server หรือ localhost]: Total Memory:
Legend2[ip server หรือ localhost]: Used Memory:
LegendI[ip server หรือ localhost]: Total Memory:
LegendO[ip server หรือ localhost]: Used Memory:
Title[ip server หรือ localhost]: MEMORYWORKLOAD
#PageTop[ip server หรือ localhost]: Memory
Monitor Disk
#vi /var/www/mrtg/mrtg_cfg_disk
WorkDir: /var/www/html/mrtg/disk
Target[disk]: `/usr/local/mrtg/mrtg_disk.sh`
Title[disk]: Disk HDA I/O Utilization Report
#Unscaled[disk]: dwym
MaxBytes[disk]: 10240000
PageTop[disk]: Disk I/O Utilization Report
kmg[disk]: KB,MB,GB
LegendI[disk]: Disk I/O KBread/sec
LegendO[disk]: Disk I/O KBwrite/sec
Legend1[disk]: Disk I/O KBread/sec
Legend2[disk]: Disk I/O KBwrite/sec
YLegend[disk]: Megabytes
ShortLegend[disk]: &
Options[disk]: growright,gauge,nopercent
ขั้นต่อมาทำการรันคำสั่งเพื่อเริ่มต้นการใช้งาน mrtg ครับด้วยคำสั่งด้านล่าง(ขั้นตอนนี้ข้อมูลในกราฟจะยังไม่ครับเนื่องจากเป็นการรันครั้งแรกครับ)
# env LANG=C /usr/bin/mrtg /var/www/mrtg/mrtg_cfg_cpu
# cd /var/www/html/mrtg/cpu
# mv localhost.html index.html
# env LANG=C /usr/bin/mrtg /var/www/mrtg/mrtg_cfg_mem
# cd /var/www/html/mrtg/mem
# mv localhost.html index.html
# env LANG=C /usr/bin/mrtg /var/www/mrtg/mrtg_cfg_disk
# cd /var/www/html/mrtg/disk
# mv localhost.html index.html
ขั้นตอนสุดท้ายแล้วครับ ให้ใส่คำสั่งบางส่วนของข้างบนใน crontab ครับ เพื่อตั้งเวลาการรันคำสั่ง
#crontab -e
*/3 * * * * /usr/bin/env LANG=C /usr/bin/mrtg /var/www/mrtg/mrtg_cfg_cpu
*/3 * * * * /usr/bin/env LANG=C /usr/bin/mrtg /var/www/mrtg/mrtg_cfg_mem
*/3 * * * * /usr/bin/env LANG=C /usr/bin/mrtg /var/www/mrtg/mrtg_cfg_disk
หลังจากทำการ config เสร็จเรียบร้อยแล้วรอสักระยะหนึ่งครับ เวลาเข้าไปดูให้เข้าไปที่ http://SERVER หรือ IP ของท่านครับ เป็นยังไงครับไม่ยากเลยนะครับ
ลินุกซ์ง่ายนิดเดียว…