RHEL5.3下MRTG+SNMP的搭建

网友投稿 286 2022-09-15


RHEL5.3下MRTG+SNMP的搭建

一、MRTG的简介

Mrtg(Multi Router Traffic Grapher,MRTG)是一个监控网络链路流量负载的工具软件,它通过snmp协议从设备得到设备的流量信息,并将流量负载以包含PNG格式的图形的HTML文档方式显示给用户,以非常直观的形式显示流量负载(可以在网站得到。

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的主页是Network Management Protocol,SNMP),其定义了传送管理信息的协议消息格式及管理站和设备代理相互之间进行消息传送的规程。

出于业界对网络管理协议标准化的迫切要求的驱动,IETF于1990发布了SNMPv1的正式RFC文档;其设计思想重点放在保证协议的简单性、灵活性和可扩展性上,并希望把SNMP作为一个过渡性的网管协议来作为实现对互连的网络设备进行管理时遵循的标准,待OSI的网络管理协议—CMIP的开发、实现和标准化成熟和完善到可以在业界推广之后,再用CMIP来替换SNMP。但是由于各种的原因,CMIP并没有替代SNMP,而SNMP发展为业界的标准。

SNMP一共发展有3个主版本,分别为SNMPv1 ,SNMPv2和SNMPv3。其中SNMPv2又分为若干个子版本,其中SNMPv2c应用最为广泛:

SNMPv1: 是第一个正式协议版本,在RFC1155-RFC1158中定义,该版本采用了基于共同体名的安全机制;

SNMPv2c: 这个版本被称为基于共同体名的SNMPv2,使用基于共同体名的安全机制和SNMPv2p做出的协议操作方面的扩充,由RFC1901-RFC1906定义;

SNMPv3: 该协议版本采用基于用户的安全机制,其安全机制是在SNMPv2u和SNMPv2*基础上进行大量的评议以后进行了更新,并且对协议机的逻辑功能模块的进行了划分而保证了良好的可扩充性,由RFC2271-RFC2275所定义。

运行SNMP管理系统的原理及SNMP协议

使用SNMP协议的网络管理系统管理结构工作一般包括:管理进程通过定时向各个设备的设备代理进程发送查询请求消息(以轮询方式),来跟踪各个设备的状态;而当设备出现异常事件如设备冷启动等时,设备代理进程主动向管理进程发送陷阱消息,汇报出现的异常事件。这些轮询消息和陷阱消息的发送和接受规程及其格式定义都是由SNMP协议定义的;而被管理设备将其各种管理对象的信息都存放在一个称为管理信息库(Management Information Base)库结构中。

其中SNMP协议是运行在UDP协议之上,它利用的是UDP协议的161/162端口。其中161端口被设备代理监听,等待接受管理者进程发送的管理信息查询请求消息;162端口由管理者进程监听等待设备代理进程发送的异常事件报告陷阱消息,如Trap。

设备的所有的需要被管理的信息被看作一个各种被管理对象的集合,这些被管理对象由OSI定义在一个被称作管理信息库(Management Information Base,MIB)的虚拟的信息库中。

管理对象库MIB

MIB是一个按照层次结构组织的树状结构(定义方式类似于域名系统),管理对象为定义为树中的相应叶子节点。管理对象是按照模块的形式组织,每个对象的父节点表示该种对象属于上层的哪一个模块。而且OSI为树中每一层的每个节点定义唯一的一个数字标识,每层中的该数字标识从1开始递增,这样树中的每个节点都可以用从根开始到目的节点的相应的标识对应的一连串的数字来表示,如1.3.6.1.2.1.1表示了MIBII中系统组子树,而1.3.6.1.2.1.1.1.0表示系统组中的系统描述(sytem Descrption)对象。每个对象的一连串数字表示被称为对象标识符(Object Indentifier,OID)。

相关的一组对象的集合被定义为一个MIB模块。这些模块使用OSI的抽象语法标记(Abstract Syntax Notation One,ASN.1)的一个子集写成。该子集被定义为管理信息结构(Management Information,SMI)。

SNMP的消息在发送和传输时消息是采用基本编码规则(BER)对消息进行编码。

SNMP基本的标准MIB库是MIBII,具体请参考RFC 1213。

SNMP协议操作

SNMP提供有三类操作,分别为Get,Set和Trap。

Get操作实现对被管理对象所表示的管理信息的读操作。在SNMPv1中,GET操作具体一共有两种形式

Get和GetNext操作: Get操作指示直接读取操作参数指定的OID所表示的被管理对象的管理信息值。GetNext操作指示读取操作参数指定的OID所表示的被管理对象在MIB树中按照字典顺序的下一个被管理对象的管理信息的值。在SNMPv2中,增加了一种GetBulk操作,其是Get和GetNext的综合,是为了提高对被管理信息的访问的效率而增加的。

Set操作实现对被管理对象的管理信息进行写操作,其实现直接对操作参数指定的OID所表示的被管理对象对应的管理信息的值的设置。

前面几种消息是由管理工作站主动实现对被管理设备进行轮询访问时发出以得到被管理设备的各种信息;而在被管理设备出现异常事件需要及时向管理工作站报告时,就需要Trap操作,该操作实现被管理设备向管理工作站报告设备上出现的异常事件,如网络接口出现故障或恢复工作,设备重新启动等信息。另外在SNMPv2中新增加了一种Inform操作来实现管理站与管理站之间的通信。

其中上述操作的消息都可以在操作参数中一次指定一个或多个管理对象OID信息,也就是说一个消息一次可以实现对多个被管理对象的操作。

SNMPv1和SNMPv2c采用了一种简单的基于共同体名的安全机制:

管理站和被管设备上都存储有该充当密码作用的共同体名;消息发送者(一般是管理者)在要发送的消息中的共同体名字段中填入对应于接收者的共同体名,然后以明文方式在网络上发送消息,接收方(被管理设备)接收到消息以后,如果消息格式是正确的,则读取该字段,与自身保存的共同体名相比较,来实现对发送消息者的认证。在一些实现中,对应于每个共同体名还有一个机器地址列表,来表示只有地址在这个列表中的机器使用该共同体名发送的消息才认为是可信的。这里的共同体名就担任密码的作用。同时对应于每个共同体名都有一个访问控制权限,可能值为读或读写。只有请求的操作和使用的共同体名的权限一致才允许进行。

详细情况请参考RFC 1157、RFC 1902、RFC 2273、RFC 2274。

三、配置MRTG+SNMP

1、检查软件包(都在RHEL5光盘中)

gd-2.0.33-9.4.el5 gd-devel-2.0.33-9.4.el5 perl-5.8.8-18.el5 mod_perl-2.0.4-6.el5 libpng-1.2.10-7.1.el5 libpng-devel-1.2.10-7.1.el5 gcc-4.1.2-44.el5 gcc-c++-4.1.2-44.el5 zlib-1.2.3-3 zlib-devel-1.2.3-3 net-snmp-5.3.2.2-5.el5 mrtg-2.11.1.tar.gz 这个我们用源代码包 检查装有没有上面rpm包,没安装的话使用yum安装

2、配置SNMP

被管理站地址为:192.168.0.5

[root@localhost Server]# vi /etc/snmp/snmpd.conf

把文件89行的#去掉

view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc

在修改文件62行

access notConfigGroup "" any noauth exact systemview none none

改成

access notConfigGroup "" any noauth exact mib2 none none

在文件最后添加

rocommuntity public

3、配置MRTG

配置mrtg,实现对网络设备的监控。mrtg的配置信息都是保存在mrtg.cfg文件中的,创建该文件并且在其中定义希望的监控特性。幸运的是一般不需要直接手工编辑该配置文件,因为mrtg软件包提供有cfgmaker配置工具,这是一个脚本文件,根据运行参数可以自动生成mrtg.cfg配置文件。在mrtg源码目录的bin子目录下你可以得到该工具。

[root@localhost media]# tar -zxvf mrtg-2.11.1.tar.gz -C /usr/local/src/

[root@localhost media]# cd /usr/local/src/mrtg-2.11.1/

[root@localhost mrtg-2.11.1]# ./configure --prefix=/usr/local/mrtg

[root@localhost mrtg-2.11.1]# make && make install

首先在Server]# mkdir /var/~]# mkdir /var/~]# cd /usr/local/src/mrtg-2.11.1/

[root@localhost mrtg-2.11.1]# cp ./images/* /var/mrtg-2.11.1]# /usr/local/mrtg/bin/cfgmaker

public@192.168.0.5 --global "WorkDir: /var/mrtg-2.11.1]# vi /var/growright, bits前面的#去掉,在最后加上Language: GB2312 下来运行程序

# /usr/local/mrtg/bin/mrtg /var/env LANG=C /usr/local/mrtg/bin/mrtg /var/ 制作首页:

#/usr/local/mrtg/bin/indexmaker --output=/var/--title="CrazyLinux's mrtg server" /var/ #crontab -e 编辑模式输入

[root@localhost Server]# crontab -e

*/5 * * * * /usr/local/mrtg/bin/mrtg /var/Server]# service snmpd start

[root@localhost Server]# service start


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:(更新)2009.5.23 软考 网络管理员 上午试题 答案 讨论
下一篇:springboot 设置CorsFilter跨域不生效的解决
相关文章

 发表评论

暂时没有评论,来抢沙发吧~