歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

mrtg的調試和使用

  出處:http://www.LinuxByte.net/ 作者:jogs(LinuxByte) 發布日期:2004-7-27 最近研究了下mrtg的使用 關於mrtg是干嗎的就不說了,直接進入正題 安裝: mrtg需要有以下包 gcc,Perl,gd,libpng,zlib 安裝過程: ./configure --prefix=/usr/local/mrtg make make install 配置: mrtg重要的只有2個地方 一是就是它的conf文件 二是獲取參數的源 它可以從snmp或者自寫腳本來取得數據,不過linux下感覺snmp獲得數據有一定的誤差,感覺數據出來的但是實際mrtg根本拿不到,所以我以下都使用腳本方式來獲得數據 生成配置文件: 由於生成mrtg配置文件默認帶有網卡流量監控,需要snmp,所以首先需要修改下snmp的配置文件 vi /etc/snmp/snmpd.conf 將 #view systemview included mib2 修改為: view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc Access notConfigGroup "" any noauth exact systemview none none 修改為: access notConfigGroup "" any noauth exact mib2 none none 保存,重起snmpd 首先先建立一個mrtg工作的主目錄,由於mrtg使用web方式,所以需要建立在apache的主目錄下 mkdir /var/www/mrtg 然後使用mrtg的cfgmaker命令生成mrtg的配置文件 /usr/local/mrtg/bin/cfgmaker --output /etc/mrtg.cfg [email protected] 此處192.168.0.1為本機ip mrtg.cfg配置文件生成後,會默認包含本機所有網卡的監控信息,如不需要可以刪除 vi /etc/mrtg.cfg 將 # for UNIX # WorkDir: /home/http/mrtg 修改為 # for UNIX WorkDir: /var/www/mrtg 此處為我們的mrtg主目錄 加入 Language: gb2312 指定頁面顯示語言為中文 制作首頁 /usr/local/mrtg/bin/indexmaker --output=/var/www/mrtg/index.Html /etc/mrtg.cfg indexmaker會依據你的mrtg.cfg自動創建一個訪問頁面 正確保存配置文件後執行 /usr/local/mrtg/bin/mrtg /etc/mrtg.cfg 此時會報告錯誤,不用理會,連續執行3次後錯誤應該會消失,如還繼續保錯,則應為配置文件出錯 注意:只有使用mrtg命令時,mrtg才會依據mrtg.cfg裡的設置取值. 到這裡,基本的mrtg已配置完成,確認snmp和httpd都已啟動,打開浏覽器,輸入http://192.168.0.1/mrtg就 可以看到你的網卡流量圖了. 此時的mrtg只可以監控網卡流量,如果需要監控其他則需要自己編寫腳本和mrtg.cfg來實現 以下是一個apache連接的例子 首先再mrtg.cfg裡加入apache連接的配置段 Target[apache_conn]: `/bin/mrtg.apa.pl` Options[apache_conn]: gauge,nopercent,growright Directory[apache_conn]:apache_conn MaxBytes[apache_conn]: 4000 YLegend[apache_conn]: apache連接數 ShortLegend[apache_conn]: 個 LegendI[apache_conn]: apache總連接數: LegendO[apache_conn]: apache當前連接數 Title[apache_conn]: apache連接數 PageTop[apache_conn]: <h1>apache連接數</h1>


Target指的是mrtg從那裡取畫曲線的值,此處可以從snmp和腳本取值,如從腳本取值需注意,需要前後用`來指定腳本路徑而不是' . []指這個配置段的名稱,這裡為apache_conn,屆時會在mrtg的workdir裡建立同名的目錄 Maxbytes指mrtg取值後能表現的最大值 YLegend指再圖標中縱向的名稱 ShortLegend指在圖標中數值後面所跟的單位 LegendI 傳遞過去的第一個值 LegendO 傳遞過去的第二個值 Title 網頁title Pagetop 網頁顯示名稱 mrtg.apa.pl #!/usr/bin/perl $hostname=`hostname`; $hostname=~s/\s+$//; $apache_all_conn=`netstat -angrep 192.168.0.1:80wc -l`; $apache_conn=`netstat -angrep 192.168.0.1:80grep ESTABLISHEDwc -l`; $apache_all_conn=~s/\n$//; $apache_conn=~s/\n$//; $apache_all_conn=~s/^\s+\s+$//; $apache_conn=~s/^\s+\s+$//; $gettime=`uptimeawk '{print \$1" "\$3" "\$4}'`; $gettime=~s/\,\n$//g; print("$apache_all_conn\n"); print("$apache_conn\n"); print("$gettime\n"); print("$hostname\n"); 以上腳本為perl編寫,由於apache的連接可以使用netstat查看,所以我用裡一個簡單的shell命令組合來獲取apache的總連接數和當前建立連接的連接數. 需要注意以下幾點 1) 使用命令傳遞值給mrtg時,mrtg只能接受4個參數,真正用於畫圖的只有2個 2) 4個參數必須依次為 值1,值2,運行時間,主機名 3) 4個參數後不得有\n等換行符 由於mrtg.cfg的改變,所以必須依次使用以下命令 /usr/local/mrtg/bin/indexmaker --output=/var/www/mrtg/index.html /etc/mrtg.cfg 使用mrtg的indexmaker重生成index.html文件,否則你無法看到新加入的apache連接的監控. /usr/local/mrtg/bin/mrtg /etc/mrtg.cfg 使用mrtg命令傳入數值,同樣會報3次錯,忽略即可 再打開浏覽器,輸入地址,應該可以看到首頁除了網卡的流量外再下方會加入apache連接的圖 確認無誤後,可再/etc/mrtg.cfg裡加入 RunAsDaemon: Yes 在使用一次 /usr/local/mrtg/bin/mrtg /etc/mrtg.cfg mrtg就會使用daemon方式運行 你以後要做的只是每次使用浏覽器看看圖就可以了,是不是很輕松 最後附上我目前能做到監控的一些信息,由於屏幕有限所以沒法截完整,目前已做到可以監控如下信息 網卡,tcp連接數,系統進程數,內存使用,swap使用,cpu負載,pop連接數,smtp連接數,diskio等 如果大家需要我可以貼出所有腳本



由於mrtg.cfg的改變,所以必須依次使用以下命令 /usr/local/mrtg/bin/indexmaker --output=/var/www/mrtg/index.html /etc/mrtg.cfg 使用mrtg的indexmaker重生成index.html文件,否則你無法看到新加入的apache連接的監控. /usr/local/mrtg/bin/mrtg /etc/mrtg.cfg 使用mrtg命令傳入數值,同樣會報3次錯,忽略即可 再打開浏覽器,輸入地址,應該可以看到首頁除了網卡的流量外再下方會加入apache連接的圖 確認無誤後,可再/etc/mrtg.cfg裡加入 RunAsDaemon: Yes 在使用一次 /usr/local/mrtg/bin/mrtg /etc/mrtg.cfg mrtg就會使用daemon方式運行 你以後要做的只是每次使用浏覽器看看圖就可以了,是不是很輕松 最後附上我目前能做到監控的一些信息,由於屏幕有限所以沒法截完整,目前已做到可以監控如下信息 網卡,tcp連接數,系統進程數,內存使用,swap使用,cpu負載,pop連接數,smtp連接數,diskio等 如果大家需要我可以貼出所有腳本



Copyright © Linux教程網 All Rights Reserved