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

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