使用MRTG畫(huà)圖進(jìn)行監(jiān)控
使用MRTG畫(huà)圖進(jìn)行監(jiān)控
MRTG通常認(rèn)為是一個(gè)性能監(jiān)控工具,有著很長(zhǎng)的使用歷史,很多網(wǎng)管都使用它來(lái)對(duì)系統(tǒng)進(jìn)行監(jiān)控。實(shí)際上,它真正的作用是一個(gè)畫(huà)圖工具。它可以接受一些數(shù)值參數(shù),并根據(jù)這些值構(gòu)建一個(gè)二維圖形以供監(jiān)控使用。最常見(jiàn)的就是獲取設(shè)備的snmp信息,例如網(wǎng)絡(luò)流量,然后生成圖形。還可以從腳本得到CPU、Disk I/O、內(nèi)存的數(shù)據(jù),而呈現(xiàn)直觀的圖形。
雖然其功能有限,而且已經(jīng)逐步被rrdtool代替。但因?yàn)榇蟛糠职l(fā)行版都自帶MRTG軟件包,使用也非常簡(jiǎn)單,所以,在小范圍的網(wǎng)絡(luò)環(huán)境中,還是有其用武之地的。
為方便說(shuō)明,我先以一個(gè)最簡(jiǎn)單的例子:從snmp獲取網(wǎng)絡(luò)流量,使用MRTG顯示為例來(lái)說(shuō)明。及后再補(bǔ)充從其他方式獲取數(shù)據(jù)的方式。
一、系統(tǒng)平臺(tái)
以紅旗DC Server 5.0為例:
- # rpm -qa|grep mrtg
- mrtg-2.10.15-1
此外,為從設(shè)備得到網(wǎng)絡(luò)數(shù)據(jù),最簡(jiǎn)單的方式就是從snmp獲取信息。還有,mrtg會(huì)生成png文件,并需要放到web上顯示,所以,最少需要有如下的支持包:
引用
- net-snmp gd-1.8.4-4 gd-devel-1.8.4-4 perl-5.6.0-17 perl-CGI mod_perl-1.24_01-3 libpng-1.0.12-2 libpng-devel-1.0.12-2 httpd(apache)
包括但不限于以上版本和文件。
二、打開(kāi)SNMP權(quán)限
是否打開(kāi)SNMP服務(wù),并不是MRTG使用的條件。從SNMP獲取設(shè)備信息是比較方便而標(biāo)準(zhǔn)的辦法。
Linux下通常就是使用net-snmp(原稱(chēng)ucd-snmp),默認(rèn)情況,其提供一個(gè)public的community供使用,但并沒(méi)有打開(kāi)允許接入的權(quán)限。
snmp的agent配置文件在:/etc/snmp/snmpd.conf
1、允許mib2庫(kù)讀取信息
修改:
- # group context sec.model sec.level prefix read write notif
- access notConfigGroup "" any noauth exact systemview none none
為:
- # group context sec.model sec.level prefix read write notif
- access notConfigGroup "" any noauth exact mib2 none none
2、使snmp信息通過(guò)mib2庫(kù)顯示
修改:
- #view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
為:
- view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
3、修改標(biāo)識(shí)
把:
- syslocation Unknown (edit /etc/snmp/snmpd.conf)
- syscontact Root (configure /etc/snmp/snmp.local.conf)
修改為可標(biāo)識(shí)該主機(jī)的信息:
- syslocation PrintServer
- syscontact Root
MRTG可以讀到該信息的。
4、啟動(dòng)snmpd服務(wù)
- # service snmpd start
校驗(yàn):
- # netstat -ln|grep 199
- tcp 0 0 0.0.0.0:199 0.0.0.0:* LISTEN
三、配置MRTG
MRTG分如下兩部分:
a)工作目錄,存放圖形數(shù)據(jù),供httpd顯示
b)配置文件
1、創(chuàng)建工作目錄
- # mkdir /var/www/html/mrtg
存在于/var/www/mrtg目錄可以不用理會(huì)。
2、生成配置文件
在/etc/mrtg目錄有一個(gè)mrtg.cfg文件,但太簡(jiǎn)單,我們需要重新生成一個(gè)。
- # cfgmaker --output=/etc/mrtg/mailmrtg.cfg public@192.168.228.153
其中,public是snmp的community,192.168.228.153是其對(duì)應(yīng)的主機(jī)IP地址。
3、設(shè)定全局參數(shù)
上述命令會(huì)通過(guò)snmp搜索主機(jī)上所有的網(wǎng)絡(luò),并自動(dòng)生成對(duì)應(yīng)的參數(shù)??筛鶕?jù)實(shí)際情況排除不必要的網(wǎng)絡(luò)接口,例如:sit0、lo等,然后修改剩余的標(biāo)識(shí)。
- # vi mailmrtg.cfg
設(shè)定工作目錄:
- WorkDir: /var/www/html/mrtg
4、設(shè)定網(wǎng)絡(luò)標(biāo)識(shí)
以其中一個(gè)網(wǎng)卡為例:
- Target[192.168.228.153_2]: 2:public@192.168.228.153:
- SetEnv[192.168.228.153_2]: MRTG_INT_IP="192.168.228.153" MRTG_INT_DESCR="bond0"
- MaxBytes[192.168.228.153_2]: 12500000
- Title[192.168.228.153_2]: Traffic Analysis for 2 -- printserver
- PageTop[192.168.228.153_2]:
- System: printserver in Unknown (edit /etc/snmp/snmpd.conf)
- Maintainer: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
- Description: bond0
- ifType: ethernetCsmacd (6)
- ifName:
- Max Speed: 12.5 MBytes/s
- Ip: 192.168.228.153 (printserver)
其中:
[192.168.228.153_2]:是一個(gè)關(guān)鍵標(biāo)識(shí),屬于該標(biāo)識(shí)的都屬于同一組;
2:public@192.168.228.153:是從那里獲取snmp信息,前面的2用于區(qū)分多個(gè)網(wǎng)卡設(shè)備,與snmp端相同;
SetEnv:是從snmp獲取網(wǎng)絡(luò)信息的參數(shù);
MaxBytes:標(biāo)識(shí)圖中***的縱向數(shù)據(jù)值;
Title:圖的標(biāo)題
PageTop:詳細(xì)內(nèi)容
修改為:
- Target[192.168.228.153_2]: 2:public@192.168.228.153:
- SetEnv[192.168.228.153_2]: MRTG_INT_IP="192.168.228.153" MRTG_INT_DESCR="bond0"
- MaxBytes[192.168.228.153_2]: 12500000
- Title[192.168.228.153_2]: Traffic Analysis for bond0 -- printserver
- PageTop[192.168.228.153_2]:
System:
其余的網(wǎng)卡可注釋?zhuān)騽h除,或參考配置。
5、生成index.html
- # indexmaker --output=/var/www/html/mrtg/index.html --title=PrintServer /etc/mrtg/mailmrtg.cfg
6、由數(shù)據(jù)生成圖表
- # mrtg /etc/mrtg/mailmrtg.cfg
※注:由于開(kāi)始沒(méi)有舊的日志數(shù)據(jù),所以前兩次會(huì)報(bào)警告:
引用
- Rateup WARNING: /usr/bin//rateup could not read the primary log file for 192.168.228.153_2
- Rateup WARNING: /usr/bin//rateup The backup log file for 192.168.228.153_2 was invalid as well
當(dāng)再運(yùn)行兩次后即會(huì)正常。若出現(xiàn)Error信息,請(qǐng)重新查看前面的配置是否有誤!
7、修改默認(rèn)httpd的mrtg配置
修改/etc/httpd/conf.d/mrtg.conf為:
- Alias /mrtg /var/www/html/mrtg
- Order deny,allow
- #Deny from all
- #Allow from 127.0.0.1
- #Allow from ::1
- # Allow from .example.com
- Allow from all
重啟httpd服務(wù):
- # service httpd restart
※注:僅用于說(shuō)明演示,并沒(méi)有考慮太多的權(quán)限問(wèn)題,請(qǐng)自行解決。
8、查看輸出頁(yè)面
9、加入計(jì)劃任務(wù)
若一切正常,則把mrtg命令加入計(jì)劃任務(wù)即可。
在/etc/cron.d/mrtg加入:
引用
- */5 * * * * root /usr/bin/mrtg /etc/mrtg/mailmrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok
表示每5分鐘執(zhí)行一次。
【編輯推薦】