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

在fedora中使用MRTG進行系統監控(2004-02-13更新)

  在fedora中使用MRTG進行系統監控(2004-02-13更新) VictorYan指北系列之MRTG入門篇 主要內容: *MRTG是什麼 *MRTG特點 *MRTG安裝與配置 *如何使用MRTG進行簡易監控 *MRTG監控網絡配置文件實例 *MRTG監控網絡配置文件實例詳解 *如何配置SNMP來配合MRTG進行監控CPU,內存等系統狀況 *如何使用SNMP的translate工具 參考文章: 網絡流量監控器mrtg全攻略 http://www.fengnet.com/showart.ASP?...5&cat_id=10 參考圖例: 見附件 一. MRTG是什麼 MRTG = Multi Router Traffic Grapher 是一個監控網絡鏈路流量負載的工具軟件, 它通過snmp協議從設備得到設備的流量信息,並將流量負載以包含PNG格式的圖形的 Html文檔方式顯示給用戶,以非常直觀的形式顯示流量負載. mrtg 的輸出結果示例: http://www.stat.ee.ethz.ch/mrtg/ 另外,MRTG也可以監控Linux主機的運行狀態,用於系統管理.例如:監控服務器的CPU使用效率,SQUID代理服務器的流量統計等 官方網站: http://people.ee.ethz.ch/~oetiker/weBTools/mrtg http://www.mrtg.org 二. MRTG特點 *可移植性 目前可以運行在大多數Unix系統和Windows NT之上。 *源碼開放 Mrtg是用perl編寫的,源代碼完全開放。 *高可移植性的SNMP支持 Mrtg采用了Simon Leinen編寫的具有高可移植性的SNMP實現模塊,從而不依賴於操作系統的SNMP模塊支持。 *支持SNMPv2c MRTG可以讀取SNMPv2c的64位的記數器,從而大大減少了記數器回轉次數。 *可靠的接口標識 被監控的設備的接口可以以IP地址、設備描述、SNMP對接口的編號及Mac地址來標識。 *常量大小的日志文件 *MRTG的日志不會變大,因為這裡使用了獨特的數據合並算法。 *自動配置功能 *MRTG自身有配置工具套件,使得配置過程非常簡單。 *性能 *時間敏感的部分使用C代碼編寫,因此具有很好的性能。 *PNG格式圖形 *圖形采用GD庫直接產生PNG格式。 *輸出可定制性 *MRTG產生的web頁面是完全可以定制的。 *兼容性 mrtg軟件可以運行在大部分的操作系統上: *可監控的網絡設備 只要支持SNMP協議的設備就都可以使用MRTG來監控 三. MRTG安裝與配置 *MRTG安裝 基本環境: Fedora 1 MRTG軟件: Fedora自帶mrtg-2.10.5-1 #rpm -ivh mrtg-2.10.5-1* *配置SNMP服務 //檢查軟件 $ rpm -qa grep net-snmp net-snmp-5.1-2.1 net-snmp-utils-5.1-2.1 net-snmp-devel-5.1-2.1 net-snmp-perl-5.1-2.1 //修改配置文件/etc/snmp/snmpd.conf,允許mrtg讀取網絡接口的流量數據。 將 view systemview included .1.3.6.1.2.1.1


view systemview included .1.3.6.1.2.1.25.1.1 修改為: view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.2 view systemview included .1.3.6.1.2.1.25.1.1 注: .1.3.6.1.2.1.1 = SNMPv2-MIB::system .1.3.6.1.2.1.2 = IF-MIB::interfaces //打開SNMPD服務 # chkconfig snmpd on # service snmpd start 四. 如何使用MRTG進行簡易監控 //生成mrtg配置文件/etc/mrtg/mrtg.cfg #cfgmaker --global "WorkDir:/var/www/mrtg" --output /etc/mrtg/mrtg.cfg public@localhost //初始運行MRTG,在工作目錄下創建初始的流量圖和web頁面 #mrtg /etc/mrtg/mrtg.cfg #mrtg /etc/mrtg/mrtg.cfg #mrtg /etc/mrtg/mrtg.cfg 注:初次運行需要連續運行三次,每次會產生一些警告信息,這是以後再運行就正常了 //每隔5分鐘自動運行mrtg來生成統計信息 編輯/etc/cron.d/mrtg文件: 0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg --logging /var/log/mrtg.log //產生網頁索引文件 #indexmaker /etc/mrtg/mrtg.cfg --output /var/www/mrtg/index.html //編輯/etc/httpd/conf.d/mrtg.conf,允許主機通過網絡監控網絡流量信息;默認只允許本台主機,且主機名=localhost查看 Alias /mrtg /var/www/mrtg <Location /mrtg> Order deny,allow # Deny from all Allow from localhost # Allow from .example.com </Location> 注:修改後重啟httpd服務#service httpd restart //通過浏覽器監控網絡流量信息 http://localhost/mrtg //配置文件/etc/mrtg/mrtg.cfg舉例(注:取消了注釋部分) EnableIPv6: no WorkDir:/var/www/mrtg Target[localhost_2]: 2ublic@localhost: SetEnv[localhost_2]: MRTG_INT_IP="" MRTG_INT_DESCR="eth0" MaxBytes[localhost_2]: 12500000 Title[localhost_2]: Traffic Analysis for 2 -- abc.com.cn PageTop[localhost_2]: <H1>Traffic Analysis for 2 -- abc.com.cn</H1> <TABLE> <TR><TD>System:</TD> <TD>abc.com.cn in Unknown (edit /etc/snmp/snmpd.conf)</TD></TR> <TR><TD>Maintainer:</TD> <TD>Root <root@localhost> (configure /etc/snmp/snmp.local.conf)</TD></TR> <TR><TD>Description:</TD><TD>eth0 </TD></TR> <TR><TD>ifType:</TD> <TD>ethernetCsmacd (6)</TD></TR> <TR><TD>ifName:</TD> <TD></TD></TR> <TR><TD>Max Speed:</TD> <TD>12.5 MBytes/s</TD></TR> </TABLE> 五. MRTG監控網絡配置文件實例 //為了使網絡監控更加易懂實用,手工修改配置文件/etc/mrtg/mrtg.cfg WorkDir: /var/www/mrtg Language: gb2312 #監控網絡流量[LAN接口eth0] Target[eth0]: 2ublic@localhost: Options[_]: growright Directory[eth0]: eth0 MaxBytes[eth0]: 12500000 Kmg[eth0]: ,k,M,G,T,P YLegend[eth0]: Bytes per Second ShortLegend[eth0]: B/s

Legend1[eth0]: 每秒流入量 (單位 Bytes) Legend2[eth0]: 每秒流出量 (單位 Bytes) LegendI[eth0]: 流入: LegendO[eth0]: 流出: Title[eth0]: 網絡流量[LAN接口eth0] PageTop[eth0]: <H1>網絡流量[LAN接口eth0]</H1> <TABLE> <TR><TD>系統 :</TD> <TD>host.abc.com</TD></TR> <TR><TD>描述 :</TD> <TD>內部網絡接口eth0的網絡流量(Bytes/s)</TD></TR> <TR><TD>位置 :</TD> <TD>Shanghai</TD></TR> <TR><TD>最大值:</TD> <TD>12.5 MBytes/s</TD></TR> <TR><TD>管理員:</TD> <TD>[email protected]</TD></TR> <TR><TD>說明 :</TD> <TD> </TD></TR> </TABLE> 六. MRTG監控網絡配置文件實例詳解 WorkDir設置工作目錄,存放mrtg采集的數據和生成的統計文件 Language設置WEB頁面顯示的語言=中文gb2312 growright指示流量圖隨時間的變化向右增長 Target指示監控的設備; 設備的表示方式=port:community@router; commnunity表示snmp通訊密碼 Directory指示該監控設備的相關文件保存的位置=/var/www/mrtg/eth0/; 默認保存在WorkDir工作目錄下 MaxBytes指示被采集的數據的最大值. 如果采集的數據大於該值,MRTG將忽略,並保持上次采集的數據值 Kmg指示乘數單位(默認每千位跳一個單位) YLegend指示Y軸的單位標記(不能用中文) ShortLegend指示數據的單位標記 Legend1,2,3,4分別指示四條不同顏色的統計線的文字說明 Legend1: 每5分鐘數據平均流入量的文字說明 Legend2: 每5分鐘數據平均流出量的文字說明 Legend3: 每5分鐘數據最大流入量的文字說明 Legend4: 每5分鐘數據最大流出量的文字說明 LegendI,O分別說明數據的流出和流出的文字說明 WithPeak指示如何顯示流量圖 共有四條不同顏色的統計線,綠色表示平均流入,藍色表示平均流出,墨綠色表示最大流入,紫色表示最大流出 n代表不設置w代表每周圖表,代表每月圖表,y代表每年圖表 不設置WithPeak,只有綠色流入和藍色流出 PageTop指示增加到Web頁頭部的HTML代碼,用於定制網頁 以空格開始的<TABLE></TABLE>部分都是PageTop的內容,都直接作為HTML代碼 七. 如何配置SNMP來配合MRTG進行監控CPU,內存等系統狀況 *SNMP簡介 SNMP(Simple Network Management Protocol)是一種專門用於網絡管理的通訊協議. SNMP一共發展有3個主版本,分別為SNMPv1 ,SNMPv2和SNMPv3。 其中SNMPv2又分為若干個子版本,其中SNMPv2c應用最為廣泛 SNMP協議是運行在UDP協議之上,它利用的是UDP協議的161/162端口。 設備的所有的需要被管理的信息稱作管理信息庫(Management Information Base,MIB) MIB 是一個按照層次結構組織的樹狀結構(定義方式類似於域名系統),管理對象為定義為樹中的相應葉子節點。 SNMP基本的標准MIB庫是MIBII *配置SNMP,監控系統內存的使用情況 已用內存的MIB變量=.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.2 已用內存的OID值=.1.3.6.1.2.1.25.2.3.1.6.2 已用內存的MIB文件=/usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt //打開snmpd中的已用內存監控,在/etc/snmp/snmpd.conf中加入 view systemview included .1.3.6.1.2.1.25.2.3.1.6.2 注1: 在snmpd.conf文件中查找 “view systemview included”行,加在後面 注2: 修改後重啟snmpd服務生效# service snmpd start //檢查當前的已用內存 #snmpwalk -v 1 -c public localhost .1.3.6.1.2.1.25.2.3.1.6.2 注: -v 1表示使用SNMPv1協議, -c public localhost表示使用public作為共同體名向主機localhost查詢 八. 如何使用SNMP的translate工具 //查詢: MIB名-->OID值 $snmptranslate -On SNMPv2-MIB::sysUpTime.0

.1.3.6.1.2.1.1.3.0 //查詢: MIB部分名-->OID值 $snmptranslate -On -IR sysUpTime.0 .1.3.6.1.2.1.1.3.0 $snmptranslate -Ib 'sys.*ime' SNMPv2-MIB::sysORUpTime $snmptranslate -TB 'sys.*ime' SNMPv2-MIB::sysORUpTime SNMPv2-MIB::sysUpTime HOST-RESOURCES-MIB::hrSystemUptime //查詢: OID值-->MIB名 $snmptranslate .1.3.6.1.2.1.1.3.0 SNMPv2-MIB::sysUpTime.0 //查詢: MIB全名 $snmptranslate -Of .1.3.6.1.2.1.1.3.0 .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.0 //查詢: MIB信息 $snmptranslate -Td .1.3.6.1.2.1.1.3.0 SNMPv2-MIB::sysUpTime.0 sysUpTime OBJECT-TYPE -- FROM SNMPv2-MIB, RFC1213-MIB SYNTAX TimeTicks MAX-Access read-only STATUS current DESCRIPTION "The time (in hundredths of a second) since the network management portion of the system was last re-initialized." ::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) sysUpTime(3) 0 } //查詢: MIB信息樹 $snmptranslate -Tp -IR system +--system(1) +-- -R-- String sysDescr(1) Textual Convention: DisplayString Size: 0..255 +-- -R-- ObjID sysObjectID(2) +-- -R-- TimeTicks sysUpTime(3) +-- -RW- String sysContact(4) Textual Convention: DisplayString Size: 0..255 +-- -RW- String sysName(5) Textual Convention: DisplayString Size: 0..255 +-- -RW- String sysLocation(6) Textual Convention: DisplayString Size: 0..255 +-- -R-- INTEGER sysServices(7) Range: 0..127 +-- -R-- TimeTicks sysORLastChange(8) Textual Convention: TimeStamp +--sysORTable(9) +--sysOREntry(1) Index: sysORIndex +-- ---- INTEGER sysORIndex(1) Range: 1..2147483647 +-- -R-- ObjID sysORID(2) +-- -R-- String sysORDescr(3) Textual Convention: DisplayString Size: 0..255 +-- -R-- TimeTicks sysORUpTime(4) Textual Convention: TimeStamp [myimg]upload/mrtg1.png[/myimg]



+-- -RW- String sysContact(4) Textual Convention: DisplayString Size: 0..255 +-- -RW- String sysName(5) Textual Convention: DisplayString Size: 0..255 +-- -RW- String sysLocation(6) Textual Convention: DisplayString Size: 0..255 +-- -R-- INTEGER sysServices(7) Range: 0..127 +-- -R-- TimeTicks sysORLastChange(8) Textual Convention: TimeStamp +--sysORTable(9) +--sysOREntry(1) Index: sysORIndex +-- ---- INTEGER sysORIndex(1) Range: 1..2147483647 +-- -R-- ObjID sysORID(2) +-- -R-- String sysORDescr(3) Textual Convention: DisplayString Size: 0..255 +-- -R-- TimeTicks sysORUpTime(4) Textual Convention: TimeStamp [myimg]upload/mrtg1.png[/myimg]



+-- -RW- String sysContact(4) Textual Convention: DisplayString Size: 0..255 +-- -RW- String sysName(5) Textual Convention: DisplayString Size: 0..255 +-- -RW- String sysLocation(6) Textual Convention: DisplayString Size: 0..255 +-- -R-- INTEGER sysServices(7) Range: 0..127 +-- -R-- TimeTicks sysORLastChange(8) Textual Convention: TimeStamp +--sysORTable(9) +--sysOREntry(1) Index: sysORIndex +-- ---- INTEGER sysORIndex(1) Range: 1..2147483647 +-- -R-- ObjID sysORID(2) +-- -R-- String sysORDescr(3) Textual Convention: DisplayString Size: 0..255 +-- -R-- TimeTicks sysORUpTime(4) Textual Convention: TimeStamp [myimg]upload/mrtg1.png[/myimg]



Copyright © Linux教程網 All Rights Reserved