check_snmp not working but snmpget works

Support forum for Nagios Core, Nagios Plugins, NCPA, NRPE, NSCA, NDOUtils and more. Engage with the community of users including those using the open source solutions.
User avatar
rhassing
Posts: 416
Joined: Sat Oct 05, 2013 10:29 pm
Location: Netherlands

Re: check_snmp not working but snmpget works

Post by rhassing »

Could you please do the check_snmp again with the -vvv option and post the output?
Did you recompile the check_snmp also?
Rob Hassing
Image
Kerflumpre
Posts: 30
Joined: Fri Apr 22, 2011 6:50 pm

Re: check_snmp not working but snmpget works

Post by Kerflumpre »

I even fired up a whole new VM with Debian 7.7 and Nagios 4.0.8 and plugins 2.0.3 and I get the same results.

Code: Select all

root@nagios-core:/usr/local/nagios/libexec# ./check_snmp -P 1 -C COMMUNITY -H 192.168.1.1 -vvv -o iso.3.6.1.2.1.31.1.1.1.16.1
/usr/bin/snmpget -Le -t 1 -r 5 -m ALL -v 1 [authpriv] 192.168.1.1:161 iso.3.6.1.2.1.31.1.1.1.16.1
CRITICAL - Plugin timed out while executing system call
I think something in the check_snmp isn't passing the community string or is passing it incorrectly. If I run the following directly:

Code: Select all

/usr/bin/snmpget -Le -t 1 -r 5 -m ALL -v 1 -c COMMUNITY 192.168.1.1:161 iso.3.6.1.2.1.31.1.1.1.16.1
It works. But if I put the wrong community, I get the timeout.
User avatar
rhassing
Posts: 416
Joined: Sat Oct 05, 2013 10:29 pm
Location: Netherlands

Re: check_snmp not working but snmpget works

Post by rhassing »

Could you do

Code: Select all

/usr/bin/snmpget -V
Rob Hassing
Image
Kerflumpre
Posts: 30
Joined: Fri Apr 22, 2011 6:50 pm

Re: check_snmp not working but snmpget works

Post by Kerflumpre »

root@nagios-core:/usr/local/nagios/libexec# /usr/bin/snmpget -V
NET-SNMP version: 5.4.3
User avatar
rhassing
Posts: 416
Joined: Sat Oct 05, 2013 10:29 pm
Location: Netherlands

Re: check_snmp not working but snmpget works

Post by rhassing »

I had the same problem you have with net-snmp 5.4.3.
Let me prove it:

I have two different versions installed, 1 is from the debian package (version 5.4.3) and 1 is installed from source (version 5.7.2):

Code: Select all

root@debian64:~# /usr/local/bin/snmpget -V
NET-SNMP version: 5.7.2
root@debian64:~# /usr/bin/snmpget -V
NET-SNMP version: 5.4.3
root@debian64:~# snmpget -V
NET-SNMP version: 5.7.2
root@debian64:~# 
Both version work with a normal snmpget:

Code: Select all

root@debian64:~# /usr/local/bin/snmpget -Le -t 1 -v 1 -r 5 -c public 192.168.122.1 iso.3.6.1.2.1.31.1.1.1.16.1
IF-MIB::ifPromiscuousMode.1 = INTEGER: false(2)
root@debian64:~# /usr/bin/snmpget -Le -t 1 -v 1 -r 5 -c public 192.168.122.1 iso.3.6.1.2.1.31.1.1.1.16.1
iso.3.6.1.2.1.31.1.1.1.16.1 = INTEGER: 2
With the newer version the check_snmp does work:

Code: Select all

root@debian64:~# /home/rob/Downloads/nagios-plugins-2.0.3/plugins/check_snmp -P 1 -H 192.168.122.1 -o iso.3.6.1.2.1.31.1.1.1.16.1 -vvv
/usr/local/bin/snmpget -Le -t 1 -r 5 -m ALL -v 1 [authpriv] 192.168.122.1:161 iso.3.6.1.2.1.31.1.1.1.16.1
IF-MIB::ifPromiscuousMode.1 = INTEGER: false(2)
Processing oid 1 (line 1)
  oidname: IF-MIB::ifPromiscuousMode.1
  response: INTEGER: false(2)
SNMP OK - false(2) | 
root@debian64:~# 
And if I remove the newer version of the snmpget file and use the same version you have installed:

Code: Select all

root@debian64:~# mv /usr/local/bin/snmpget /usr/local/bin/snmpget.572
root@debian64:~# cp /usr/bin/snmpget /usr/local/bin/snmpget
root@debian64:~# /home/rob/Downloads/nagios-plugins-2.0.3/plugins/check_snmp -P 1 -H 192.168.122.1 -o iso.3.6.1.2.1.31.1.1.1.16.1 -vvv
/usr/local/bin/snmpget -Le -t 1 -r 5 -m ALL -v 1 [authpriv] 192.168.122.1:161 iso.3.6.1.2.1.31.1.1.1.16.1
CRITICAL - Plugin timed out while executing system call

root@debian64:~# 
So it is definitely the snmpget version you are using that causes the problem.

There are some things you could do:
  • Compile the latest version of net-snmp on your system.
  • Switch over to CentOS, I never had these kind of problems on CentOS.
  • Don't use check_snmp, and write your own scripts using the snmpget you have.
Rob Hassing
Image
Kerflumpre
Posts: 30
Joined: Fri Apr 22, 2011 6:50 pm

Re: check_snmp not working but snmpget works

Post by Kerflumpre »

Did you have any trouble compiling net-snmp on Debian? I'm getting stuck with this:

Code: Select all

/usr/bin/ld: cannot find -lperl
collect2: error: ld returned 1 exit status
make[1]: *** [libnetsnmpagent.la] Error 1
make[1]: Leaving directory `/root/downloads/net-snmp-5.7.2.1/agent'
make: *** [subdirs] Error 1
User avatar
rhassing
Posts: 416
Joined: Sat Oct 05, 2013 10:29 pm
Location: Netherlands

Re: check_snmp not working but snmpget works

Post by rhassing »

I had that problem as well.
This is my apt-get history:

Code: Select all

apt-get install libc6
apt-get install libnet-snmp-perl
apt-get install automake autoconf make gcc gcc-multilib libtool m4 perl bzip2
apt-get install libperl-dev
apt-get install libsensors4-dev
I think the last two are most important, but you could best install all packages I installed. :-)
Rob Hassing
Image
Kerflumpre
Posts: 30
Joined: Fri Apr 22, 2011 6:50 pm

Re: check_snmp not working but snmpget works

Post by Kerflumpre »

Looks promising. And how did you get check_snmp to use the new version?
User avatar
rhassing
Posts: 416
Joined: Sat Oct 05, 2013 10:29 pm
Location: Netherlands

Re: check_snmp not working but snmpget works

Post by rhassing »

I just recompiled all plugins and after that it used the one in /usr/local/bin/ instead of the one /usr/bin/.
Rob Hassing
Image
Kerflumpre
Posts: 30
Joined: Fri Apr 22, 2011 6:50 pm

Re: check_snmp not working but snmpget works

Post by Kerflumpre »

Getting a slightly different result now:

Code: Select all

root@nagios-core:/usr/local/nagios/libexec# ./check_snmp -P 1 -c COMMUNITY -H 192.168.1.1 -vvv -o iso.3.6.1.2.1.31.1.1.1.16.1
/usr/local/bin/snmpget -Le -t 1 -r 5 -m ALL -v 1 [authpriv] 192.168.1.1:161 iso.3.6.1.2.1.31.1.1.1.16.1
External command error: Timeout: No Response from 192.168.1.1:161.
But I'm seeing it in the tcpdump now:

Code: Select all

14:11:45.459696 IP 192.168.1.2.55798 > 192.168.1.1.snmp:  GetRequest(31)  31.1.1.1.16.1
14:11:46.461420 IP 192.168.1.2.55798 > 192.168.1.1.snmp:  GetRequest(31)  31.1.1.1.16.1
14:11:47.463562 IP 192.168.1.2.55798 > 192.168.1.1.snmp:  GetRequest(31)  31.1.1.1.16.1
14:11:48.465881 IP 192.168.1.2.55798 > 192.168.1.1.snmp:  GetRequest(31)  31.1.1.1.16.1
14:11:49.468139 IP 192.168.1.2.55798 > 192.168.1.1.snmp:  GetRequest(31)  31.1.1.1.16.1
14:11:50.469115 IP 192.168.1.2.55798 > 192.168.1.1.snmp:  GetRequest(31)  31.1.1.1.16.1
Here is the same with snmpget:

Code: Select all

root@nagios-core:/usr/local/nagios/libexec# snmpget -v 1 -c COMMUNITY 192.168.1.1 iso.3.6.1.2.1.31.1.1.1.16.1
IF-MIB::ifPromiscuousMode.1 = INTEGER: true(1)

Code: Select all

14:16:38.671152 IP 192.168.1.2.38381 > 192.168.1.1.snmp:  C=COMMUNITY GetRequest(31)  31.1.1.1.16.1
14:16:38.673382 IP 192.168.1.1.snmp > 192.168.1.2.38381:  C=COMMUNITY GetResponse(32)  31.1.1.1.16.1=1
Locked