由 victoryan 在 02-13-2004 17:07 发表:
在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
二. 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
1<location mrtg="">
2
3Order deny,allow
4
5# Deny from all
6
7Allow from localhost
8
9# Allow from .andsky.com
10
11</location>
注:修改后重启httpd服务#service httpd restart
//通过浏览器监控网络流量信息
http://localhost/mrtg
//配置文件/etc/mrtg/mrtg.cfg举例(注:取消了注释部分)
EnableIPv6: no
WorkDir:/var/www/mrtg
Target[localhost_2]: 2 ublic@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]:
1<h1>Traffic Analysis for 2 -- abc.com.cn</h1>
1<table>
2<tr><td>System:</td> <td>abc.com.cn in Unknown (edit /etc/snmp/snmpd.conf)</td></tr>
3<tr><td>Maintainer:</td> <td>Root <root@localhost> (configure /etc/snmp/snmp.local.conf)</td></tr>
4<tr><td>Description:</td><td>eth0 </td></tr>
5<tr><td>ifType:</td> <td>ethernetCsmacd (6)</td></tr>
6<tr><td>ifName:</td> <td></td></tr>
7<tr><td>Max Speed:</td> <td>12.5 MBytes/s</td></tr>
8</table>
五. MRTG监控网络配置文件实例
//为了使网络监控更加易懂实用,手工修改配置文件/etc/mrtg/mrtg.cfg
WorkDir: /var/www/mrtg
Language: gb2312
#监控网络流量[LAN接口eth0]
Target[eth0]: 2 ublic@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]:
1<h1>网络流量[LAN接口eth0]</h1>
1<table>
2<tr><td>系统 :</td> <td>host.abc.com</td></tr>
3<tr><td>描述 :</td> <td>内部网络接口eth0的网络流量(Bytes/s)</td></tr>
4<tr><td>位置 :</td> <td>Shanghai</td></tr>
5<tr><td>最大值:</td> <td>12.5 MBytes/s</td></tr>
6<tr><td>管理员:</td> <td>[email protected]</td></tr>
7<tr><td>说明 :</td> <td> </td></tr>
8</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代码,用于定制网页
以空格开始的
1<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