b.snmp + mrtg实现对网络负载的监测:
上述的操作方法是利用了一些闭源的商业软件在Windows下进行性能监测,对于一些经费充足的企业,这种方案不乏考虑的价值。
不过在了解了snmp协议的基本工作原理和配置方法之后,我们来看一下利用snmp在Linux操作系统上进行监测的解决方案。提到在Linux上的开源方案,不得不提及一个老牌的网络流量监测工具mrtg。
Mrtg(Multi Router Traffic Grapher,MRTG)是一个完全免费的监测网络链路流量负载的工具软件, 它通过snmp协议从设备得到流量信息,并将流量负载以包含PNG格式图形的HTML 文文件以Web页面显示给用户。Mrtg能够以非常直观的形式显示流量负载,而且在工作过程中所占用的系统资源很低。
下面我们将演示如何通过mrtg来获得以snmp协议所监测到的网络流量方面的信息,为了更好地说明在企业环境中的应用,我们会通过一台运行MRTG的网管工作站同时获取两台被监测服务器的网络流量信息来仿真企业对多台服务器的网络流量监测方式。
基本结构如下:
网管工作站:RHEL5u2 192.168.1.10
被监测主机1:RHEL5u2 192.168.1.100
被监测主机2:RHEL5u2 192.168.1.200
首先在被监测主机192.168.1.100和192.168.1.200上分别配置并开启snmpd服务(过程同上例)。为了简化配置我只使用上面的v1版本的SNMP配置方法。同时需要在开启服务之后关闭防火墙以及保证主机之间的连通性。
之后在网管工作站上安装并且配置mrtg。由于在RHEL5u2中mrtg是系统自带的软件包,所以可直接使用rpm安装。
# rpm -ihv mrtg-2.14.5-2.i386.rpm
安装完成之后需要运行命令cfgmaker针对两台被监测主机各自生成mrtg的配置文件,在该例子中配置文件分别是test1.cfg和test2.cfg,存放在/etc/mrtg目录中。
#cfgmaker --global "WorkDir: /var/www/html/mrtg" \
> --global "Options[_]: growright,bits" \
> --ifref=ip \
> --output /etc/mrtg/test1.cfg \
> public@192.168.1.100
#cfgmaker --global "WorkDir: /var/www/html/mrtg" \
> --global "Options[_]: growright,bits" \
> --ifref=ip \
> --output /etc/mrtg/test2.cfg \
> public@192.168.1.200
上述的命令定义了生成配置文件test1.cfg和test2.cfg的全局参数,包括配置文件的主目录,页面存放的主目录,snmp团体信息和建立绘图时指定绘图方式的一些必须参数,如绘制向右方增长的统计图和统计图的计量单位等。
之后执行下面的命令将两个配置文件的内容合并到主配置文件/etc/mrtg/mrtg.cfg里面。
# cat test1.cfg >> mrtg.cfg
# cat test2.cfg >> mrtg.cfg
并根据配置文件的需求在/var/www/html目录下建立mrtg页面的主目录:
# mkdir /var/www/html/mrtg
以及针对mrtg.cfg配置文件运行命令来启动mrtg,注意,在默认的UTF-8语言字符集下这个启动命令无法执行成功,因此需要设置语言环境变量为env=C:
[root@localhost mrtg]# env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg
该命令需要执行三次以建立正确的mrtg数据库文件。
最后要做的工作是按照配置文件内容在mrtg页面的主目录下生成正确的index檔,命令如下:
# indexmaker --output /var/www/html/mrtg/index.html \
> --title=MRTG \
> /etc/mrtg/mrtg.cfg
同时也要按照mrtg.cfg的配置修改和启动apache并最终为mrtg能够定期进行数据采集建立一个每五分钟执行一次的任务计划:
# cat /etc/httpd/conf/httpd.conf | grep DocumentRoot
DocumentRoot "/var/www/html/mrtg"
# service httpd start
# chkconfig httpd on
# crontab -l
*/5 * * * * /usr/bin/env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg /dev/null 2>&1
在启动apache之后,即可以在网管工作站或者是任何可以访问到192.168.1.10的主机上以http://192.168.1.10的方式打开MRTG的页面。可以很直观地看到两台主机的流量页面以及详细信息。