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/",進行查看了!