MRTG(1)监测linux网卡流量
MRTG(Multi Router Traffic Grapher)是一个监控网络链路流量负载的工具软件,通过SNMP协议得到设备的流量信息,并将流量负载以包含PNG格式的图形的HTML文档方式显示给用户,以非常直观的形式显示流量负载。
MRTG最早的版本是在1995年春天所推出,以perl所写成,因此可以跨平台使用,它利用了SNMP的OID来获取网络设备的相关信息,因此被监测设备本身需要支持SNMP。MRTG再以所收集到的信息产生HTML文件并以GIF或PNG格式绘制出图形,并以日、月、周等单位分别绘出。原来MRTG只能绘出网络设备的流量图,后来发展了各种plug-in,因此网络设备以外的设备也可由MRTG监控,例如服务器的硬盘使用量、CPU的负载等。
MRTG的安装使用
搭建工具软件的平台是opensuse12
- 安装前准备工作
MRTG为使用perl写成,需要以下工具支持
- perl(perl-5.0.xx以上)
- zlib(zlib-1.1.3-xx以上)
- gd(gd-1.3.xx以上)
- libpng
- apache httpd
查看系统上是否安装上述软件,可以使用以下rpm命令来确认:
-
- rpm -qa|grep perl
- rpm -qa|grep zlib
- rpm -qa|grep gd
- rpm -qa|grep libpng
如果没有安装的话,可以使用zypper search/install命令来安装相应的软件。
- 另外,通过浏览器的方式展示监控图表,需要部署好web服务器apache。apache的部署在本文中就不在阐述。
- 开始安装MRTG
- MRTG需要snmp进行监控,所以需要snmp软件,在linux下我选择了net-snmp。通过使用zypper search/install net-snmp安装net-snmp软件。安装后,对net-snmp做相应的配置设置
- 修改/etc/snmp/snmp.conf文件中的配置,如果需要修改相关配置的话,对该配置文件进行修改即可。我在这里保持默认配置。
- 启动net-snmp:使用service snmpd start命令启动snmp。使用netstat -aonup|grep 161可以查看snmp已启动。
- 安装MRTG
- 使用zypper search/install mrtg即可安装mrtg。
- 使用mkdir -p /usr/local/apache2/htdocs/mrtg/net命令创建目录,该目录用来放置mrtg监测的结果。
- 运行cfgmaker --output=/usr/local/apache2/htdocs/mrtg/net/mrtg.cfg public@127.0.0.1命令来创建配置文件
- 使用vi /usr/local/apache2/htdocs/mrtg/net/mrtg.cfg修改该配置文件,把配置文件中的如下几行注释去掉,并修改成自己的配置,如下图。修改workdir和options。
- 运行命令mrtg /usr/local/apache2/htdocs/mrtg/net/mrtg.cfg,开始运行监测程序。可以多运行几次,如果运行有问题,需要修改mrtg.cfg
- 对生成的mrtg.cfg中的html部分的内容的注释和单个空格全去掉,保存。
- 运行命令indexmaker --output=/usr/local/apache2/htdocs/mrtg/net/index.html --title=linux net report /usr/local/apache2/htdocs/mrtg/net/mrtg.cfg,这个命令用来创建web服务器中显示的页面。
- 使用crontab来设置定期执行检测。修改/etc/crontab,在其中加入以下行(每5分钟监测一次网卡流量)
- 上述配置完成后,就可以通过http://yourIP/mrtg/net/index.html来访问网卡流量监测结果啦。
我的流量监测显示图如下: