您的位置:首页 > 其它

MRTG配置中遇到的问题

2015-09-07 12:06 218 查看
安装nagios后,一般会自动安装上MRTG,并且将其加入到cron.d中对网络流量监控。

然而cron daemon却老是发邮件报错,信息如下:

Subroutine IO::Socket::INET6::sockaddr_in6 redefined at

/usr/share/perl5/Exporter.pm line 67. at

/usr/share/perl5/IO/Socket/INET6.pm line 21. Subroutine

SNMP_Session::pack_sockaddr_in6 redefined at

/usr/share/perl5/Exporter.pm line 67. at

/usr/bin/../lib/mrtg2/SNMP_Session.pm line 149. Subroutine

SNMP_Session::unpack_sockaddr_in6 redefined at

/usr/share/perl5/Exporter.pm line 67. at

/usr/bin/../lib/mrtg2/SNMP_Session.pm line 149. Subroutine

SNMPv1_Session::pack_sockaddr_in6 redefined at

/usr/share/perl5/Exporter.pm line 67. at

/usr/bin/../lib/mrtg2/SNMP_Session.pm line 604. Subroutine

SNMPv1_Session::unpack_sockaddr_in6 redefined at

/usr/share/perl5/Exporter.pm line 67. at

/usr/bin/../lib/mrtg2/SNMP_Session.pm line 604.

首先,为了阻止邮件不停的发送,先将mrtg从cron中移除。到/etc/cron.d目录下,编辑mrtg文档,将里面的内容注释掉。然后通过如下两个步骤:

1) 解决第一条问题。该问题据说是bug,在IO::Socket::INET6的2.68之后的版本中就已解决,因此解决办法就是去cpan下载最新的版本,手动安装。Bug 地址

注:本来尝试用cpanm进行卸载或更新,但都显示找不到文件,原因应该是该文件被安装在/usr/share/perl5/目录下,而cpan的工具默认搜索路径是/usr/local/lib64/perl5以及/usr/local/share/perl5

2)处理后面的问题,首先将mrtg版本升级到2.17,目前为止是不能通过yum直接升级mrtg到2.17版本的,方法如下:

备份/etc/mrtg/mrtg.cfg文件

建立RepoForge库,以获得更多最新的安装文件。建库方法自行google

编辑/etc/yum.repos.d/rpmforge.repo,将RepoForge下的enable=1改成enable=0,确保新库不会在需要用常规库时被意外使用。

必须先删除旧的mrtg-libs文件,通过命令”rpm -e mrtg-libs –nodeps”

安装2.17版本的mrtg:”yum –enablerepo=rpmforge-extras update mrtg“

如果有必要的话,恢复mrtg.cfg的备份

完成上面的操作,通过”env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg”启动mrtg,如果已经没有出现错误,则以下步骤可以忽略。假如还有类似提示,那么说明更新了mrtg还不够。还需如下操作:

通过”cpanm Net::SNMP”更新perl模块,如果已经是最新版本,则不会更新。先备份一份/usr/bin/mrtg文件,然后编辑vim /usr/bin/mrtg,将其中的”import Socket6”替换成”Socket6->import(qw(pack_sockaddr_in6 inet_pton getaddrinfo));”

同样的,编辑修改/usr/lib64(lib)/mrtg/SNMP_Session.pm,将”Socket6->import(qw(pack_sockaddr_in6 inet_pton getaddrinfo)); ”或者是“import Socket6”替换成“Socket6->import(qw(inet_pton getaddrinfo));”

再尝试通过”env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg”启动mrtg,假如没有报错,应该就可以了,再重新启用cron.d/mrtg.

相关链接:

http://repoforge.org/use/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: