Problem Description
When running MRTG at the command line:
LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok
You receive errors similar to this:
Subroutine SNMP_Session::pack_sockaddr_in6 redefined at /usr/local/share/perl5/Exporter.pm line 66.
at /usr/bin/../lib/mrtg2/SNMP_Session.pm line 149.
Subroutine SNMP_Session::unpack_sockaddr_in6 redefined at /usr/local/share/perl5/Exporter.pm line 66.
at /usr/bin/../lib/mrtg2/SNMP_Session.pm line 149.
Subroutine SNMPv1_Session::pack_sockaddr_in6 redefined at /usr/local/share/perl5/Exporter.pm line 66.
at /usr/bin/../lib/mrtg2/SNMP_Session.pm line 604.
Subroutine SNMPv1_Session::unpack_sockaddr_in6 redefined at /usr/local/share/perl5/Exporter.pm line 66.
at /usr/bin/../lib/mrtg2/SNMP_Session.pm line 604.
This KB article explains how to fix these errors.
Resolution
The following step will make changes to the SNMP_Session.pm files. There are several copies of these files so first we must find them:
find /usr/ -name SNMP_Session.pm | grep mrtg
Which should output something like:
/usr/lib64/mrtg2/SNMP_Session.pm
/usr/lib/mrtg2/SNMP_Session.pm
Edit the first file:
vi /usr/lib64/mrtg2/SNMP_Session.pm
This opens the vi text editor.
Type /pack_sockaddr_in6 on the keyboard and press enter
This will take you to the section we want to edit.
Confirm that the line that looks like this:
Socket6->import(qw(pack_sockaddr_in6 inet_pton getaddrinfo));
Press i on the keyboard to go into insert mode.
Change the line so it looks like this:
Socket6->import(qw(inet_pton getaddrinfo inet_ntop));
Press Escape on the keyboard to exit insert mode.
There may be multiple lines in the file that contain pack_sockaddr_in6, repeat the above steps to find any other lines and update them.
Type :wq and then press Enter (this will save the file and exit vi).
Repeat the above steps for all the SNMP_Session.pm files you found with the first command.
After completing these steps run MRTG again to ensure the errors are no longer produced.
LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok
If you no longer receive the errors the problem has been resolved.
Final Thoughts
For any support related questions please visit the Nagios Support Forums at: