1.安装/设置snmpd服务html
使用如下命令安装snmpd:apache
# cd /usr/ports/net-mgmt/net-snmp # make install clean
而后开始进行相关的设置工做,首先创建snmpd.conf文件,并设置为可写:网络
# cd /usr/local/share/snmp # cp snmpd.conf.example snmpd.conf # chmod 644 snmpd.conf
而后修改snmpd.conf文件,设置如下内容:tcp
com2sec local localhost public disk / disk /home
要设置snmpd服务在系统启动后自动执行,须要在"/etc/rc.conf"中添加:ui
# snmpd server snmpd_enable="YES"
2.安装/设置MRTG编码
使用如下命令安装MRTG:.net
# cd /build/ports/net-mgmt/mrtg # make install clean
首先创建mrtg.cfg,并设置为可写:rest
# cd /usr/local/etc/mrtg # cp mrtg.cfg.sample mrtg.cfg # chmod 644 mrtg.cfg
将mrtg.cfg文件按如下内容进行设置:code
# haijd Server MRTG config # ### Global Config EnableIPv6: no WorkDir: /home/www/mrtg Language: utf-8 LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt,/usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt,/usr/share/snmp/mibs/TCP-MIB.txt ###################################################################### # System: server.haijd.net # Description: FreeBSD 7.0-RELEASE (haijd_server) #0: Thu Mar 6 11:21:36 CST 2008 # Contact: haijd <haijd.yuyi(AT)gmail.com> # Location: Unknown (edit /usr/local/share/snmp/snmpd.conf) ###################################################################### #================================================================================ # 监控网卡1 # Descr: 'fxp0' | Name: '' | Ip: '192.168.0.50' | Eth: '00:02:b3:90:6f:a7' #================================================================================ Target[fxp0_lan]: /192.168.0.50:public@localhost: Options[fxp0_lan]: growright Directory[fxp0_lan]: fxp0 MaxBytes[fxp0_lan]: 100000000 Kmg[fxp0_lan]: ,k,M,G,T,P YLegend[fxp0_lan]: Bytes per Second ShortLegend[fxp0_lan]: B/s Legend1[fxp0_lan]: 每秒流入量 (单位 Bytes) Legend2[fxp0_lan]: 每秒流出量 (单位 Bytes) LegendI[fxp0_lan]: 流入: LegendO[fxp0_lan]: 流出: Title[fxp0_lan]: fxp0网络流量[流入+流出] PageTop[fxp0_lan]: <H1>fxp0网络流量[流入+流出]</H1> <TABLE> <TR><TD>系统 :</TD><TD>server.haijd.net</TD></TR> <TR><TD>描述 :</TD><TD>网络接口fxp0的网络流量(Bytes/s)</TD></TR> <TR><TD>位置 :</TD><TD>Shenzhen</TD></TR> <TR><TD>最大值:</TD><TD>100 MBytes/s</TD></TR> <TR><TD>管理员:</TD><TD>haijd.yuyi(AT)gmail.com</TD></TR> <TR><TD>说明 :</TD><TD>fxp0 ip=192.168.0.50</TD></TR> </TABLE> #================================================================================ # 监控网卡2 # Descr: 'rl0' | Name: '' | Ip: '192.168.1.1' | Eth: '00:14:85:95:d3:3e' #================================================================================ #Target[rl0_lan]: /192.168.1.1:public@localhost: #Options[rl0_lan]: growright #Directory[rl0_lan]: rl0 #MaxBytes[rl0_lan]: 2000000 #Kmg[rl0_lan]: ,k,M,G,T,P #YLegend[rl0_lan]: Bytes per Second #ShortLegend[rl0_lan]: B/s #Legend1[rl0_lan]: 每秒流入量 (单位 Bytes) #Legend2[rl0_lan]: 每秒流出量 (单位 Bytes) #LegendI[rl0_lan]: 流入: #LegendO[rl0_lan]: 流出: #Title[rl0_lan]: fxp0网络流量[流入+流出] #PageTop[rl0_lan]: <H1>rl0网络流量[流入+流出]</H1> # <TABLE> # <TR><TD>系统 :</TD><TD>server.haijd.net</TD></TR> # <TR><TD>描述 :</TD><TD>网络接口rl0的网络流量(Bytes/s)</TD></TR> # <TR><TD>位置 :</TD><TD>Shenzhen</TD></TR> # <TR><TD>最大值:</TD><TD>2 MBytes/s</TD></TR> # <TR><TD>管理员:</TD><TD>haijd.yuyi(AT)gmail.com</TD></TR> # <TR><TD>说明 :</TD><TD>rl0 ip=192.168.1.1</TD></TR> # </TABLE> #================================================================================ # 监控主机连续运行时间[运行天数] # 注:不能从SNMP中直接取得数据,使用perl script采集数 (/usr/local/etc/mrtg/mrtg-upday.pl) #================================================================================ Target[upday]: `/usr/local/etc/mrtg/mrtg-updays.pl` Options[upday]: gauge,nopercent,growright Directory[upday]: upday MaxBytes[upday]: 1000 YLegend[upday]: Up Days ShortLegend[upday]: 天 Legend1[upday]: 主机连续运行时间(天) Legend2[upday]: LegendI[upday]: 运行时间: LegendO[upday]: Title[upday]: 主机连续运行时间[运行天数] PageTop[upday]: <h1>主机连续运行时间[运行天数]</h1> <TABLE> <TR><TD>系统:</TD><TD>server.haijd.net</TD></TR> <TR><TD>描述:</TD><TD>主机连续运行的时间(天)</TD></TR> <TR><TD>位置:</TD><TD>ShenZhen</TD></TR> <TR><TD>最大值:</TD><TD>1000天</TD></TR> <TR><TD>管理员:</TD><TD>haijd.yuyi(AT)gmail.com</TD></TR> <TR><TD>说明:</TD><TD> </TD></TR> </TABLE> #================================================================================ # 监控系统负载[1分钟+15分钟] # MIB: .iso.org.dod.internet.private.enterprises.ucdavis.laTable.laEntry.laLoadInt # 注:打开snmpd中的监控功能,在snmpd.conf中加入 # view systemview included .1.3.6.1.4.1.2021.10.1.5 #================================================================================ Target[systemload]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.3:public@localhost: Options[systemload]: gauge,nopercent,growright Directory[systemload]: load MaxBytes[systemload]: 3000 YLegend[systemload]: System Load ShortLegend[systemload]: Legend1[systemload]: 最近1分钟系统负载(x 100) Legend2[systemload]: 最近15分钟系统负载(x 100) LegendI[systemload]: 1分钟负载: LegendO[systemload]: 15分钟负载: Title[systemload]: 系统负载(x100)[1分钟+15分钟] PageTop[systemload]: <h1>系统负载(x100)[1分钟+15分钟]</h1> <TABLE> <TR><TD>系统:</TD><TD>server.haijd.net</TD></TR> <TR><TD>描述:</TD><TD>系统负载(x100)[1分钟+15分钟]</TD></TR> <TR><TD>位置:</TD><TD>Shenzhen</TD></TR> <TR><TD>最大值:</TD><TD>30 (x 100)</TD></TR> <TR><TD>管理员:</TD><TD>haijd.yuyi(AT)gmail.com</TD></TR> <TR><TD>说明:</TD><TD> </TD></TR> </TABLE> #================================================================================ # 监控CPU负载[用户+闲置] # MIB: .iso.org.dod.internet.private.enterprises.ucdavis.systemStats # 注:打开snmpd中的监控功能,在snmpd.conf中加入 # view systemview included .1.3.6.1.4.1.2021.11 #================================================================================ Target[cpuload]: .1.3.6.1.4.1.2021.11.50.0&1.3.6.1.4.1.2021.11.53.0:public@localhost: Options[cpuload]: nopercent,growright Directory[cpuload]: cpu MaxBytes[cpuload]: 100 Unscaled[cpuload]: dwym YLegend[cpuload]: CPU Utilization ShortLegend[cpuload]: %; Legend1[cpuload]: CPU用户负载(%) Legend2[cpuload]: CPU闲置(%) LegendI[cpuload]: 用户: LegendO[cpuload]: 闲置: Title[cpuload]: CPU负载[用户+闲置] PageTop[cpuload]: <h1>CPU负载[用户+闲置]</h1> <TABLE> <TR><TD>系统:</TD><TD>server.haijd.net</TD></TR> <TR><TD>描述:</TD><TD>CPU负载[用户+闲置]</TD></TR> <TR><TD>位置:</TD><TD>Shenzhen</TD></TR> <TR><TD>最大值:</TD><TD>100</TD></TR> <TR><TD>管理员:</TD><TD>haijd.yuyi(AT)gmail.com</TD></TR> <TR><TD>说明:</TD><TD></TD></TR> </TABLE> #================================================================================ # 监控内存使用量[Mem+Swap] # MIB: .iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed # 注:打开snmpd中的监控,在snmpd.conf中加入 # view systemview included .1.3.6.1.2.1.25.2.3.1.6 #================================================================================ Target[memory]: .1.3.6.1.2.1.25.2.3.1.6.2&.1.3.6.1.2.1.25.2.3.1.6.3:public@localhost: Options[memory]: gauge,growright Directory[memory]: mem MaxBytes1[memory]: 975510 MaxBytes2[memory]: 1024000 Kmg[memory]: k,M,G,T,P Kilo[memory]: 1024 Unscaled[memory]: dwym YLegend[memory]: Bytes ShortLegend[memory]: B Legend1[memory]: 已用Mem (Bytes) Legend2[memory]: 已用Swap(Bytes) LegendI[memory]: 已用Mem : LegendO[memory]: 已用Swap: Title[memory]: 内存使用量[Mem+Swap] PageTop[memory]: <h1>内存使用量[Mem+Swap]</h1> <TABLE> <TR><TD>系统:</TD><TD>server.haijd.net</TD></TR> <TR><TD>描述:</TD><TD>Memory和Swap的使用量(Bytes)</TD></TR> <TR><TD>位置:</TD><TD>Shenzhen</TD></TR> <TR><TD>最大值:</TD><TD>Mem=502M,Swap=512M</TD></TR> <TR><TD>管理员:</TD><TD>haijd.yuyi(AT)gmail.com</TD></TR> <TR><TD>说明:</TD><TD> </TD></TR> </TABLE> #================================================================================ # 监控系统进程数[进程数] # MIB: .iso.org.dod.internet.mgmt.mib-2.host.hrSystem.hrSystemProcesses # 注:打开snmpd中的系统进程数监控,在snmpd.conf中加入 # view systemview included .1.3.6.1.2.1.25.1.6 #================================================================================ Target[process]: .1.3.6.1.2.1.25.1.6.0&.1.3.6.1.2.1.25.1.6.0:public@localhost: Options[process]: gauge,nopercent,growright Directory[process]: process MaxBytes[process]: 1000 YLegend[process]: Processes ShortLegend[process]: 个 Legend1[process]: 系统进程数(个) Legend2[process]: LegendI[process]: 进程数: LegendO[process]: Title[process]: 系统进程数[进程数] PageTop[process]: <h1>系统进程数[进程数]</h1> <TABLE> <TR><TD>系统:</TD><TD>server.haijd.net</TD></TR> <TR><TD>描述:</TD><TD>系统进程数(个)</TD></TR> <TR><TD>位置:</TD><TD>Shenzhen</TD></TR> <TR><TD>最大值:</TD><TD>1000个</TD></TR> <TR><TD>管理员:</TD><TD><a href='mailto:haijd.yuyi(AT)gmail.com'>haijd.yuyi(AT)gmail.com</a></TD></TR> <TR><TD>说明:</TD><TD> </TD></TR> </TABLE> #================================================================================ # 监控硬盘空间[系统盘+数据盘] # MIB: .iso.org.dod.internet.private.enterprises.ucdavis.dskTable.dskEntry.dskUsed # 注1:打开snmpd中的监控功能,在snmpd.conf中加入 # view systemview included .1.3.6.1.4.1.2021.9.1.8 # 注2:打开snmpd中的系统盘和数据盘监控功能,在snmpd.conf中加入 # disk / # disk /home #================================================================================ Target[disk]: .1.3.6.1.4.1.2021.9.1.8.1&.1.3.6.1.4.1.2021.9.1.8.2:public@localhost: Options[disk]: gauge,growright Directory[disk]: disk MaxBytes1[disk]: 5077038 MaxBytes2[disk]: 61263456 Kmg[disk]: k,M,G,T,P Kilo[disk]: 1024 Unscaled[disk]: dwym YLegend[disk]: Bytes ShortLegend[disk]: B Legend1[disk]: 系统盘已用空间 Legend2[disk]: 数据盘已用空间 LegendI[disk]: 系统已用: LegendO[disk]: 数据已用: Title[disk]: 硬盘空间[系统盘+数据盘] PageTop[disk]: <h1>硬盘空间[系统盘+数据盘]</h1> <TABLE> <TR><TD>系统:</TD><TD>server.haijd.net</TD></TR> <TR><TD>描述:</TD><TD>系统盘=/(/dev/ad0s1a); 数据盘=/home(/dev/ad0s1g)</TD></TR> <TR><TD>位置:</TD><TD>Shenzhen</TD></TR> <TR><TD>最大值:</TD><TD>系统盘=5GB; 数据盘=60GB</TD></TR> <TR><TD>管理员:</TD><TD>haijd.yuyi(AT)gmail.com</TD></TR> <TR><TD>说明:</TD><TD> </TD></TR> </TABLE> #================================================================================ # 监控打开的TCP链接数[TCP链接数] # MIB: .iso.org.dod.internet.mgmt.mib-2.tcp.tcpCurrEstab # 注:打开snmpd中的监控功能,在snmpd.conf中加入 # view systemview included .1.3.6.1.2.1.6.9 #================================================================================ Target[tcpopen]: .1.3.6.1.2.1.6.9.0&.1.3.6.1.2.1.6.9.0:public@localhost: Options[tcpopen]: gauge,nopercent,growright Directory[tcpopen]: tcpopen MaxBytes[tcpopen]: 1000 YLegend[tcpopen]: Tcp Connections ShortLegend[tcpopen]: 个 Legend1[tcpopen]: 打开的TCP链接数(个) Legend2[tcpopen]: LegendI[tcpopen]: TCP链接数: LegendO[tcpopen]: Title[tcpopen]: TCP链接数[TCP链接数] PageTop[tcpopen]: <h1>TCP链接数[TCP链接数]</h1> <TABLE> <TR><TD>系统:</TD><TD>server.haijd.net</TD></TR> <TR><TD>描述:</TD><TD>打开的TCP链接数(个)</TD></TR> <TR><TD>位置:</TD><TD>Shenzhen</TD></TR> <TR><TD>最大值:</TD><TD>1000个</TD></TR> <TR><TD>管理员:</TD><TD>haijd.yuyi(AT)gmail.com</TD></TR> <TR><TD>说明:</TD><TD> </TD></TR> </TABLE>
而后根据设置创建工做目录:server
# mkdir /home/www/mrtg
创建"mrtg-updays.pl"文件,并设置权限为可运行:
# touch mrtg-updays.pl # chmod 755 mrtg-updays.pl
"mrtg-updays.pl"文件的内容以下:
#!/usr/bin/perl $machine = `/bin/hostname`; $uptime1 = `/usr/bin/uptime`; $uptime2 = $uptime1; $uptime1 =~ /up (.*?) day/; $upday = int($1); $uptime2 =~ /up (.*?) load/; $uptime = $1; print "$upday\n"; print "$upday\n"; print "$uptime\n"; print $machine."\n";
按照mrtg.cfg的设置生成相关文件和数据:
# env LANG=C /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
要想让数据定时更新,还须要在"/etc/crontab"文件中添加以下内容:
*/5 * * * * root env LANG=C /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
最后生成MRTG的首页:
# indexmaker --output /home/www/mrtg/index.html --title="server.haijd.net" /usr/local/etc/mrtg/mrtg.cfg
因为生成的首页默认是"iso-8859-15"编码,而咱们的mrtg.cfg中设置的是"utf-8",因此还要修改首页文件,将里面的:
<meta http-equiv="content-type" content="text/html; charset=iso-8859-15" >
修改成:
<meta http-equiv="content-type" content="text/html; charset=utf-8" >
3.设置Apache
虽然如今数据以及首页都已经生成了,但尚未办法查看。须要在Apache的配置文件中添加以下内容:
Alias /mrtg "/home/www/mrtg"
而后重启Apache:
# apachectl restart
就能够使用地址"http://192.168.0.50/mrtg/",进行查看了!