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/
然而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/
相关文章推荐
- effective c++ 确定对象被使用前已经被初始化
- Android Studio之版本管理工具Git
- 重磅消息:JavaFX官方文档翻译完毕
- Python 的列表排序
- Java 调用 matlab 程序
- cipher加密套件(openssl)
- SQL Server之SQLEXPRESS和MSSQLSERVER两个服务的问题
- mac 环境反编译android apk
- 作为产品经理,我是这样构思一个产品的!
- 面试
- 从eclipse到Android studio/迁移eclipse的Android项目到Android studio平台的注意事项
- (不连续)最大公共子序列POJ 1458Common Subsequence
- 生成N位格雷码的递归和递推写法
- Effective C++——条款29(第5章)
- c# xml序列化和反序列化
- asp.net MVC 中枚举创建下拉列表?
- MVC 引擎优化
- JOOQ初学-简单的增删改查demo
- 苹果团队App开发流程|Fake it till you make it
- 双层嵌套json字符串(即json对象内嵌json数组)解析为Map