分类: LINUX
2009-12-25 11:49:11
安装配置mrtg监控网络
1.SNMP简介
SNMP是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用
层协议。SNMP可以提高网络管理员管理网络的效率,发现并解决网络问题,以及规划网络增长。通过SNMP接收随机消息(及事
件报告)网络管理系统获知网络出现问题。简单网络管理协议(SNMP)首先是由Internet工程任务组织(Internet Engineeri
ng Task Force)(IETF)的研究小组为了解决Internet上的路由器管理问题而提出的。许多人认为SNMP在IP上运行的原因是
Internet运行的是TCP/IP,然而事实并不是这样的。SNMP被设计成与协议无关,所以它可以在IP, IPX, AppleTalk, OSI,
以及其他用到的传输协议上被使用。
SNMP运行在UDP之上,它利用的是UDP的161/162端口。其中161端口被设备代理监听,等待接受管理者进程发送的管理信息--查
询请求消息;162端口由管理者进程监听等待设备代理进程发送的异常事件报告--陷阱消息,如Trap等。SNMP提供三类操作,
分别为Get、Set和Trap。
2.MRTG监控过程
服务器的操作系统多种多样,使用较多的一般是UNIX类或Windows类操作系统,它们都支持SNMP。例如,对于Windows系统而
言,只要增加“管理和监控工具”中的Windows组件,就有了对SNMP的支持。
服务器启动SNMP后,就会开放161/162端口。管理员如果要监控这台机器,就要在自己的机器上安装MRTG,然后通过MRTG向
服务器的161/162端口发出查询等请求,取得数据后会生成图形及HTML文档的流量报告。这就是MRTG简单的监控过程
3 、Linux下MRTG的安装与配置
MRTG通过SNMP从设备中得到使用设备(如交换机)的网络流量信息,并把PNG格式图形以HTML方式显示出来,便于网络管理
员对所监控设备(交换机)进行管理。目前市场上可网管型(智能)的交换机都支持SNMP,可以通过MRTG进行网络流量监控。
下面以Centos5.2 x_64为例介绍MRTG的安装与配置。
(1)、安装基础软件包
要安装MRTG软件包必须首先安装gcc, perl, gd, libpng, zlib, freetype等软件包。
(2)、安装配置net-snmp
这里我就不说了,因为在我的前面文章,cacti监控中有介绍对与net-snmp的安装和配置都有介绍。
(3)、安装配置MRTG
a、 安装tar软件包
# tar zvxf mrtg-2.16.0.tar
# cd mrtg-2.16.0
#./configure --prefix=/usr/local/mrtg --with-gd=/usr/include --with-gd-lib=/usr/lib --with-gd-inc=/usr/include --with-png=/usr/include
--with-zlib=/usr/include
# make &&make install
b、生成配置文件
/usr/local/mrtg/bin/cfgmaker moniter@192.168.168.254 --global "HtmlDir:/webserver/www/168.254" --output
168.254.cfg
我们在/webserver/下创建www和168.254文件。
修改168.254.cfg文件
EnableIPv6: no 下添加如下:
Language: GB2312
到文件的最后,在HtmlDir:/webserver/www/168.254下面添加
ImageDir:/webserver/www/168.254/images
LogDir:/webserver/www/168.254/logs
保存退出。
c、 设置MRTG定期执行方式
执行“crontab-e”,加入如下行:
*/5 * * * * /bin/env LANG=en_US /usr/local//mrtg/bin/mrtg /usr/local/mrtg/bin/168.254.cfg
以上命令设定每隔5分钟监控一次配置文件xxx.cfg中所定义的服务器。5分钟是一个比较合理的值,也可以按自己的需求重新定义。
d、建立索引页面
执行以下命令还可以生成一个索引页面:
#cd /usr/local/mrtg/bin
#/usr/local/mrtg/bin/indexmaker 168.254.cfg >/webserver/www/168.254/index.html
到此为止,配置完毕,重新启动snmp和httpd服务,访问,就能看到网络流量图了。
e、apache虚拟机下带验证的访问
#vi /usr/local/apache/conf/extra/httpd-vhost.conf
ServerAdmin fuqinag@mail.haoyisheng.com
DocumentRoot "/webserver/www"
Servername 192.168.168.133
Options Indexes MultiViews
AllowOverride AuthConfig
Order allow,deny
Allow from all
AuthName "hysh monitor"
AuthType Basic
AuthUserFile /usr/local/mrtg/htpasswd.user
Require valid-user
生成密码文件
/usr/local/apache/bin/htpasswd -c /usr/local/mrtg/htpasswd.user logs
New password:(输入密码)
Re-type new password:(再次输入)
我们重新启动apache就生效了.
(4)建立MRTG监控中心
在实际应用中,企业可能有多台服务器,通常需要管理员24小时不间断地对服务器的流量进行监控。如果这时还是简单地在管理员的机器上
使用MRTG就不适用了。最好的方法是建立一个MRTG监控中心。
MRTG监控中心可以是一台专用的服务器,也可以由其他服务器兼作MRTG监控中心。用于监控中心的机器和其他服务器都位于防火墙背后,由于
SNMP也很容易成为攻击的目标,所以在防火墙的规则中,要禁止外界对服务器161/162端口的访问。这样便保证了MRTG监控中心担负起监控
其他所有服务器的责任。MRTG监控中心将不断产生流量报告,以Web页面的形式发送给管理员。当然,该Web页面是带有身份认证功能的,
以确保只有拥有账号的管理员才能查看相应的流量报告。
使用这样的MRTG监控中心,可以带来以下好处:
24小时不间断地工作,能保证产生详细、全面的流量报告;
提供带身份认证的Web浏览界面,管理员凭账号可以随时随地通过互联网查看流量报告;
免去管理员安装MRTG的烦恼,只需通过浏览器就能查看流量报告;
只允许MRTG监控中心机器访问服务器161/162端口,安全性更高。
通过三步,已经完成了对一台服务器的监控设定,如果还有其他服务器需要流量监控,重复第三步(安装配置MRTG)即可。如果这些服务器都是
位于防火墙后面,还要修改一个防火墙的规则,即开放MRTG监控中心对外的80端口,同时过滤掉所有外界对SNMP服务端口的访问。以上安装配置
完成,用户可以通过浏览器访问MRTG监控中心。MRTG监控中心会要求输入用户名、密码才能进入,而Apache的日志会记录相关的事件,以备日后
对登录情况进行审查。到此为止,已经可以应用一个简单的MRTG监控中心实现集中管理,并且拥有身份认证。管理员还可以通过编写CGI程序来
实现更多的功能。比如详细记录访问情况、提供更直观的监控报告等。此外,还可以使用SSL加密页面来传输数据。