Cisco交换机都支持SNMP协议,只需要简单的设置即可开启,例如:snmp-server community snmppasswd RO。更加详细的设置,参考网上相关文章。此文就是应用snmp协议来对交换机进行监控。1. 交换机开启snmp功能
附注:一般开启SNMP协议需要以下几个步骤:
第一步:登录到核心设备CISCO上,进入命令管理模式。 第二步:输入snmp-server community lixinwei RO命令来设置一个SNMP团体名为lixinwei,并且团体权限为“只读”。 第三步:输入snmp-server trap-source FastEthernet0/1命令来指定以FA0/1端口为监控源接口,如果不输入此行也是可以的,将以设备自身的router ID作为监控源。 第四步:输入snmp-server contact lixinwei1973@163.com命令设置SNMP协议的联系人,这里输入网络管理员的电子邮件地址即可。 第五步:输入snmp-server host 10.91.30.45 lixinwei命令来设置管理机为10.91.30.45,同时容许该管理机以团体名lixinwei访问。 实际上设置完这个命令后我们通过PRTG依然可以在别的IP地址的计算机上读取出Cisco设备的SNMP信息,这是因为我们设置的团体名为RO只读权限,当然默认很多团体名权限设置为public读写权限,这是存在安全隐患的,容易造成设备被黑客入侵,所以提醒设置的读者一定要把自己的团体名community改成RO只读权限。 第六步:输入snmp-server enable traps命令启动监视控制功能。 第七步:保存设置并退出后即可完成在cisco设备上的所有配置。
2. 本以为可以在Nagios服务端设置了,但发现/usr/local/nagios/libexec目录下居然无check_snmp模块。
原来,Linux 系统默认没有装 net-snmp 相关包,net-snmp-libs net-snmp-devel net-snmp net-snmp-utils , 特别是 net-snmp-utils 这个包 官方文档:说是net-snmp及net-snmp-utils两个包。只能按照官方要求,安装此两包后再重新编译生成check_snmp模块后复制过来。
[iyunv@lixinwei plugins]# yum -y install net-snmp-utils
重新配置参数及make编译:注意不要用make install重新安装,不然会把原配置文件都覆盖。 [iyunv@lixinwei nagios-plugins-1.5]# ./configure --prefix=/usr/local/nagios --with-snmpget-command=/usr/bin/snmpwalk --with-snmpgetnext-command=/usr/bin/snmpwalk 而后把check_snmp拷贝至nagios/libexec目录下。
3. 在服务端上配置,观察监控结果
a. 在nagios.cfg中启用switch.cfg。把注释去掉。
b. 在switch.cfg文件中配置被监控交换机的IP地址。
居然用默认的设置报了两个错,一个报没有MRTG日志错误。
1.既然没有MRTG日志文件,就提供MRTG日志给它
我们要监控的Cisco设备IP为:172.16.240.252,Apache主目录是/usr/local/apache/htdocs。首先来生成cfg文件
[iyunv@lixinwei htdocs]# cfgmaker public@172.16.240.252 >/usr/local/apache/htdocs/mrtg.cfg。
编辑生成的mrtg.cfg
更改WorkDir为/usr/local/apache/htdocs
去掉Options[_]: growright, bits前面的#
并加入Language:Chinese使之支持中文
保存并退出
接着运行/usr/local/mrtg/bin/mrtg /var/www/html/mrtg.cfg (如需在命令前加env LANG=C 在执行的时候系统会给出提示)连续执行三次以上直到不再显示错误为止
后执行/usr/local/mrtg/bin/indexmaker –output=/var/www/html/index.html –title=标题 /var/www/html/mrtg.cfg 生成页面文件。启动你的Apache,访问看看吧~!哈哈,成功的感觉来啦
为了让数据自动刷新,还需要让程序在后台定时运行,
crontab -e 在其中输入 */5 * * * * env LANG=C /usr/local/mrtg/bin/mrtg /var/www/html/mrtg/mrtg.cfg (注:如之前未加env LANG=C的话,则这里也不用加) 该句表示让系统在后台每五分钟执行一次env LANG=C /usr/local/mrtg/bin/mrtg /var/www/html/mrtg/mrtg.cfg 即每5分钟刷新一次
最后修改switch.cfg中的命令,把相应的log文件赋给它。
打开浏览器观察OK!
2. 还有一个是报命令出错。 察看交换机端口状况,原来是不存在ifOperStatus.1。
修改switch.cfg,从snmpwalk命令可以看到,交换机无ifOperStatus.1,改为ifOperStatus.5。观察OK!
|