在fedora中使用MRTG進行系統監控(zt)
*MRTG是什麼
*MRTG特點
*MRTG安裝與配置
*如何使用MRTG進行簡易監控
*MRTG監控網路配置檔案例項
*MRTG監控網路配置檔案例項詳解
*如何配置SNMP來配合MRTG進行監控CPU,記憶體等系統狀況
*如何使用SNMP的translate工具
一. MRTG是什麼
MRTG = Multi Router Traffic Grapher
是一個監控網路鏈路流量負載的工具軟體, 它透過snmp協議從裝置得到裝置的流量資訊,並將流量負載以包含PNG格式的圖形的 HTML文件方式顯示給使用者,以非常直觀的形式顯示流量負載.
mrtg 的輸出結果示例:
另外,MRTG也可以監控LINUX主機的執行狀態,用於系統管理.例如:監控伺服器的CPU使用效率,SQUID代理伺服器的流量統計等
官方網站:
二. 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
//初始執行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
Order deny,allow
# Deny from all
Allow from localhost
# Allow from .example.com
注:修改後重啟httpd服務#service httpd restart
//透過瀏覽器監控網路流量資訊
//配置檔案/etc/mrtg/mrtg.cfg舉例(注:取消了註釋部分)
EnableIPv6: no
WorkDir:/var/www/mrtg
Target[localhost_2]: :
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]:
Traffic Analysis for 2 -- abc.com.cn
System: | abc.com.cn in Unknown (edit /etc/snmp/snmpd.conf) |
Maintainer: | Root <> (configure /etc/snmp/snmp.local.conf) |
Description: | eth0 |
ifType: | ethernetCsmacd (6) |
ifName: | |
Max Speed: | 12.5 MBytes/s |
五. MRTG監控網路配置檔案例項
//為了使網路監控更加易懂實用,手工修改配置檔案/etc/mrtg/mrtg.cfg
WorkDir: /var/www/mrtg
Language: gb2312
#監控網路流量[LAN介面eth0]
Target[eth0]: :
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]:
網路流量[LAN介面eth0]
系統 : | host.abc.com |
描述 : | 內部網路介面eth0的網路流量(Bytes/s) |
位置 : | Shanghai |
最大值: | 12.5 MBytes/s |
管理員: | abc@abc.com |
說明 : |
六. 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程式碼,用於定製網頁
以空格開始的
七. 如何配置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]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245712/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在Linux中,如何進行系統效能監控?Linux
- 在Linux中,如何進行系統資源的監控?Linux
- 在Linux中,如何進行系統效能的持續監控?Linux
- Linux伺服器---流量監控MRTGLinux伺服器
- 在Linux中,如何進行使用者行為監控?Linux
- 在Linux中,如何進行磁碟效能監控?Linux
- 在Linux中,如何監控系統資源使用情況?Linux
- 使用Prometheus和Grafana進行系統監控和預測 - flightawarePrometheusGrafana
- 在Linux中,如何進行硬體效能監控?Linux
- 一種對雲主機進行效能監控的監控系統及其監控方法
- 在Linux中,如何監控系統的效能?Linux
- 使用 iotop 監控哪些程式在進行I/O操作
- 使用 Eclipse 在 Fedora 上進行 PHP 開發EclipsePHP
- 在Linux中,如何進行網路服務的監控?Linux
- Python對系統資料進行採集監控——psutilPython
- 【Zabbix】如何使用Zabbix進行IPMI監控?
- 監控影片行為分析系統
- 在Fedora 30系統中安裝深度DDE桌面
- 在Linux中,如何使用指令碼進行系統配置和部署?Linux指令碼
- 使用cAdvisor+Influxdb+Grafana監控系統UXGrafana
- Zabbix監控使用進階
- 在Linux中,如何進行系統故障排查?Linux
- 在Linux中,如何進行系統安全加固?Linux
- 使用Powershell對目標進行螢幕監控
- 在 Fedora 系統上設定 zsh
- 在k8s中快速搭建基於Prometheus監控系統K8SPrometheus
- 如何進行監控設計?
- IT監控(進階篇):運維監控系統手把手部署教學運維
- 在 Fedora 中利用 ffsend 使用 Firefox SendFirefox
- 在Kubernetes中監控NginxNginx
- 使用 Skywalking 對 Kubernetes(K8s)中的微服務進行監控K8S微服務
- 如何進行網站的真實使用者監控(RUM)?怎麼進入監控網站網站
- 使用Python建立一個系統監控程式Python
- 實時監控系統,統一監控企業APIAPI
- 在Linux中,如何進行系統效能調優?Linux
- 在Linux中,如何進行系統故障恢復?Linux
- 在linux系統中對檔案進行分割Linux
- 使用aop來監控方法進行增強處理
- centos7使用ntopng進行流量監控和分析CentOS