#yum install mrtg net-snmp net-snmp-utils
配置SNMP,配置完成后重启snmpd (因为网络接口转而采用了脚本采集,所以snmp就不配置了)
com2sec notConfigUser localhost public
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
access notConfigGroup "" any noauth exact all all none
view all included .1 80
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
因为功能需求,我们再编写三个插件脚本,分别监视eth0、cpu和内存。
监视eth接口脚本内容
#!/bin/bash # (c) 2002 Denis Kolisnichenko # Usage: /usr/bin/count iface /bin/grep "$1" /proc/net/dev | /bin/awk -F ":" '{ print $2 }' | /bin/awk '{ print $1 "\n" $9 }' UPTIME=`/usr/bin/uptime | /bin/awk -F " " '{ print $3 }'` echo $UPTIME echo $1
监视CPU脚本内容
#!/usr/bin/perl system ("/usr/bin/sar -u 1 3|grep Average >cpu_info_file"); open (CPUINFO,"cpu_info_file"); @cpuinfo=<CPUINFO>; close (CPUINFO); foreach $line(@cpuinfo) { @cpustatus=split(/ +/,$line); } $cpuused=$cpustatus[2]+$cpustatus[4]; $cpuidle=$cpustatus[5]; print "$cpuused\n"; print "$cpuidle"; system ("uptime"); system ("uname -n");
监视MEM脚本内容
#!/usr/bin/perl system ("/usr/bin/free -m | grep Mem >mem_info_file"); open (MEMINFO,"mem_info_file"); @meminfo=<MEMINFO>; close (MEMINFO); foreach $line(@meminfo) { @memstatus=split(/ +/,$line); } $memused=$memstatus[2]; $memtotal=$memstatus[1]; print "$memused\n"; print "$memtotal\n"; system ("uptime"); system ("uname -n");
配置/etc/mrtg/mrtg.cfg
EnableIPv6: no WorkDir: /var/www/mrtg/ # eth0 monitor Target[eth0]: `/etc/mrtg/bin/count.sh eth0` Options[eth0]: nopercent,growright,bits Title[eth0]: Server eth0 Traffic PageTop[eth0]: <h1>Eth0 - interface</h1> MaxBytes[eth0]: 99999999 kilo[eth0]: 1024 YLegend[eth0]: bits per second ShortLegend[eth0]: bit/s LegendO[eth0]: out: LegendI[eth0]: in : # CPU monitor Target[localhost_cpu]: `/etc/mrtg/bin/mrtg.cpu` Ytics[localhost_cpu]: 10 YticsFactor[localhost_cpu]: 10 MaxBytes[localhost_cpu]:100 Title[localhost_cpu]:CPU State PageTop[localhost_cpu]:<H1>Server CPU </H1> ShortLegend[localhost_cpu]: % YLegend[localhost_cpu]: CPU (%) Legend1[localhost_cpu]: Used Legend2[localhost_cpu]: Total LegendI[localhost_cpu]: CPU Used LegendO[localhost_cpu]: CPU IDEL Options[localhost_cpu]: growright,gauge,nopercent # Mem monitor Target[localhost_mem]: `/etc/mrtg/bin/mrtg.mem` Ytics[localhost_mem]:5 YticsFactor[localhost_mem]: 1 MaxBytes[localhost_mem]: 1000 Title[localhost_mem]:Memory State of TestServer PageTop[localhost_mem]:<H1>Server Mem </H1> ShortLegend[localhost_mem]: B kmg[localhost_mem]: M YLegend[localhost_mem]: Memory Usage Legend1[localhost_mem]: Used Legend2[localhost_mem]: Total LegendI[localhost_mem]: Used LegendO[localhost_mem]: Total Options[localhost_mem]: growright,gauge,nopercent
生成index.html
#indexmaker --output=/var/www/mrtg/index.html /etc/mrtg/mrtg.cfg
添加crontab计划
#cat /etc/cron.d/mrtg */5 * * * * root LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok
注:可以先运行一遍该命令,立即生成数据
/usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok
修改httpd的配置中mrtg的网址Allow from 部分
访问MRTG
http://youripaddres/mrtg/
引用
参考资料:
http://pm4u.narod.ru/en/mrtg.htm
http://www.php-oa.com/2009/11/01/centos-rhel-mrtg.html
http://oss.oetiker.ch/mrtg/doc/mrtg-reference.en.html
http://hi.baidu.com/wangli19880718/blog/item/b0cd9c514c47dd190cf3e3df.html