Setup MRTG to monitor CPU workload , Memory and Disk use status with IOSTAT.

Posted In Network - By Tum. On Monday, September 10th, 2007 With 0 Comments

การติดตั้ง 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 ของท่านครับ เป็นยังไงครับไม่ยากเลยนะครับ

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

คำค้นยอดนิยม: mrtg iostat, iostat mrtg, mrtg cpu, mrtg disk io, iostat KB_Read mrtg
Tags: ,

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

*