IDC机房部署MRTG网络监控
MRTG (multi router traffic grapher) 是一款比较流行的网络流量监控工具, 很多ISP都喜欢用它来监控接口负载。本文侧重描述在复杂环境下, 部署MRTG网络监控。
1 环境描述
总共700来台在线服务器, 托管在5个不同的IDC机房, 所有的服务器都是连接在cisco交换机上, 交换机支持网络管理。为了方便管理和减少单点故障的影响, 所有的服务器和交换机都设置全球唯一单播IP地址, 另外, 所有的服务器的操作系统都是RedHat linux或sun solaris。
2 实际处理步骤
第一步:确认服务器的IP标签是否与实际的机器IP一致。把一台服务器接上显示器和键盘, 登录系统查看一下本机的IP地址, 运行命令#ifconfig a。使用ssh工具登录到另外的服务器, 运行命令#eject弹出光驱来确定机器, 验证一下IP地址是否跟贴在上面的标签相符。网关确认, 运行命令#iproute, 知道整个网络的上联网关的IP地址。
第二步:确定交换机的连接拓扑。登录某个交换机, 进入特权模式, 运行命令#show cdb neighbors显示邻居。看下面的一个输出信息:
tj_010#show cdp neighbors Capability Codes:R-Router, T-Trans Bridge, B-Source Route BridgeS-Switch, H-Host, I-IGMP, r-Repeater, P-PhoneDevice IDLocal IntrfceHoldtmeCapability Platform Port IDtj_ex02Gig 0/1138S IWS-C2950G-Gig 0/2
可以清晰的看出, 交换机的Gig0/1与交换机tj_ex02的端口Gig0/2端口直连。重复这个步骤直到把所有交换机的邻接状态查完, 得到一个详细的交换机端口间的连接拓扑。
因为M R T G需要交换机的S N M P支持, 把每个交换机的SNMP功能启用。运行配置命令tj_010 (config) #snmp-server community server ro, 把社区字设成”server”且属性为只读。
第三步:查找所有服务器的mac和IP地址对应值。Linux自带了一个很好的网络工具Nmap, 登陆网内的某台服务器, 运行命令#nmap200.200.X.1-254>/tmp/ipscan.txt, 把扫描结果输出到文件/tmp/ipscan.txt, 以便于后面的分析工作。
在进行这个过程的时候, 有个网段扫描出来的结果没有mac这个值, 而另外一个机房的网段却是有的。究其原因, 是因为Nmap的版本不同所致。没有mac是没有任何用处的, 运行命令#nmap 200.200.X.1-254, 等输出还没有全部显示的时候运行命令#arpa>/tmp/arpinfo.txt将显示所有服务器的ip和mac地址的信息。
到这一步, 可以得到一个IP与mac一一对应的关系文件。
第四步:查每个交换机端口学习来的服务器mac。登录每一个交换机, 运行命令#show mac-address-table将输出mac与端口号对应的行。由于每个端口都与服务器直连, 如果出现某个端口与多个mac相匹配, 则此端口一定是上联端口或交换机间的连接端口。
第五步:根据第四和第五步的结果得出交换机端口与连接在端口上服务器的IP地址。根据IP与mac对应表和Mac与port对应表, 以mac为桥梁, 把ip与端口port一一对应。
第六步:在网内一台linux服务器安装、配置M R T G.进行监控服务。
(1) 安装:redhat linux安装光盘附带mrtg rpm安装包, 运行命令#rpm–ivh mrtg-2.9.17-3.i386.rpm。
(2) 配置mrtg。在mrtg安装目录运行命令#/usr/local/mrtg/bin/cfgmaker–global“WorkDir:/var/www/html/mrtg”–global“options[]:growright, bits”–show-op-down–ifref=nr–output=/etc/mrtg/mrtg1.cfg sever@200.200.X..254;每个交换机生成各自的一个配置文件。
(3) 生成访问交换机的页面文件。运行命令#/usr/local/mrtg/bin/indexmaker/etc/mrtg/mrtg1.cfg--output=/var/www/mrtg/index1.html, 依次生成页面文件。
(4) 配置apache服务。通过编辑文件/etc/httpd/conf/httpd.conf文件, 启用apache验证, 然后运行命令#htpasswd/var/www/html/.htpasswd server, 添加有效用户server。
(5) 把mrtg加入自动启动任务里。
第七步:起用服务。
(1) 启用apache服务:#service httpd start。
(2) 启用mrtg。
第八步:手工修改页面文件。根据第五步得出的结果, 把各页面文件的端口后标识其对应的服务器的IP地址。再编辑一个页面文件/var/www/html/mrtg/index.html, 把各个页面文件链接在这个页面文件中。在任意客户端的机器的浏览器里输入url:http://<监控服务器的IP>/mrtg/index.html, 监控所有服务器的网络负载。
3 结语
作为网络工程师或网络管理员, 需要随时了解网络的各种状态, 以判断网络是否处于健康状态或随时了解网络的流量、每个路由器的流量、每个交换机端口的流量, 通过MRTG进行网络流量监控, 可以帮助网管人员有的放矢地预判和解决网络故障。
摘要:本文介绍MRTG监控技术, 以及该技术在IDC机房中的部署。
关键词:MRTG,IDC,Liunx
参考文献
[1] 赵建民.计算机网络原理[M].高等教育出版社, 2001 (7) .
[2] 何小阳.计算机监控原理及技术[M].重庆大学出版社, 2003 (1) .