Page 1 of 7

check_snmp not working but snmpget works

Posted: Thu Nov 06, 2014 8:23 pm
by Kerflumpre
Nagios is 4.0.8 with plugins 2.0.3. If I run check_snmp it times out. If I run snmpget it works. What might be the cause?

Code: Select all

root@nagios:/usr/local/nagios/libexec# ./check_snmp -P 1 -C COMMUNITY -H 192.168.1.1 -o iso.3.6.1.2.1.31.1.1.1.16.1
CRITICAL - Plugin timed out while executing system call

root@nagios:/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
iso.3.6.1.2.1.31.1.1.1.16.1 = INTEGER: 1

Re: check_snmp not working but snmpget works

Posted: Fri Nov 07, 2014 3:59 am
by rhassing
I cannot reproduce your problem

Code: Select all

[rhg@mona plugins]$ ./check_snmp -P 1 -c public -H 172.16.161.1 -o iso.3.6.1.2.1.31.1.1.1.16.1
SNMP OK - true(1) | 
[rhg@mona plugins]$ snmpget -v 1 -c public 172.16.161.1 iso.3.6.1.2.1.31.1.1.1.16.1
IF-MIB::ifPromiscuousMode.1 = INTEGER: true(1)
This system is also running Nagios 4.0.8 with plugins 2.0.3

Could you try running check_snmp with strace?

Code: Select all

strace ./check_snmp -P 1 -c public -H 172.16.161.1 -o iso.3.6.1.2.1.31.1.1.1.16.1
execve("./check_snmp", ["./check_snmp", "-P", "1", "-c", "public", "-H", "172.16.161.1", "-o", "iso.3.6.1.2.1.31.1.1.1.16.1"], [/* 22 vars */]) = 0
brk(0)                                  = 0x9b08000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7721000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=37881, ...}) = 0
mmap2(NULL, 37881, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7717000
close(3)                                = 0
open("/lib/libpthread.so.0", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\3554\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=133312, ...}) = 0
mmap2(0x34a000, 107044, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x34a000
mmap2(0x361000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16) = 0x361000
mmap2(0x363000, 4644, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x363000
close(3)                                = 0
open("/lib/libdl.so.2", O_RDONLY)       = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`:4\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=19784, ...}) = 0
mmap2(0x343000, 16500, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x343000
mmap2(0x346000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2) = 0x346000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\16\34\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1906348, ...}) = 0
mmap2(0x1aa000, 1665452, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x1aa000
mprotect(0x33a000, 4096, PROT_NONE)     = 0
mmap2(0x33b000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x190) = 0x33b000
mmap2(0x33e000, 10668, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x33e000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7716000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7715000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7716b30, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
access("/etc/sysconfig/32bit_ssse3_memcpy_via_32bit_ssse3_memmove", F_OK) = -1 ENOENT (No such file or directory)
access("/etc/sysconfig/32bit_ssse3_memcpy_via_32bit_ssse3_memmove", F_OK) = -1 ENOENT (No such file or directory)
mprotect(0x361000, 4096, PROT_READ)     = 0
mprotect(0x346000, 4096, PROT_READ)     = 0
mprotect(0x33b000, 8192, PROT_READ)     = 0
mprotect(0x1a6000, 4096, PROT_READ)     = 0
munmap(0xb7717000, 37881)               = 0
set_tid_address(0xb7716b98)             = 2687
set_robust_list(0xb7716ba0, 0xc)        = 0
futex(0xbfb23c34, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0xbfb23c34, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, bfb23c44) = -1 EAGAIN (Resource temporarily unavailable)
rt_sigaction(SIGRTMIN, {0x34e770, [], SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x34ec70, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=10240*1024, rlim_max=RLIM_INFINITY}) = 0
uname({sys="Linux", node="mona.somedomain.nl", ...}) = 0
brk(0)                                  = 0x9b08000
brk(0x9b29000)                          = 0x9b29000
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=99158544, ...}) = 0
mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7515000
close(3)                                = 0
time(NULL)                              = 1415350229
rt_sigaction(SIGALRM, {0x804e4a0, [ALRM], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
alarm(10)                               = 0
getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=4*1024}) = 0
pipe([3, 4])                            = 0
pipe([5, 6])                            = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb7716b98) = 2688
close(4)                                = 0
close(6)                                = 0
read(3, "IF-MIB::ifPromiscuousMode.1 = IN"..., 4096) = 47
read(3, "", 4096)                       = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
read(5, "", 4096)                       = 0
close(3)                                = 0
waitpid(2688, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 2688
alarm(0)                                = 10
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7720000
write(1, "SNMP OK - true(1) | \n", 21SNMP OK - true(1) | 
)  = 21
exit_group(0)                           = ?

Re: check_snmp not working but snmpget works

Posted: Fri Nov 07, 2014 6:28 am
by Kerflumpre
Result

Code: Select all

strace ./check_snmp -P 1 -c COMMUNITY -H 192.168.1.1 -o iso.3.6.1.2.1.31.1.1.1.16.1
execve("./check_snmp", ["./check_snmp", "-P", "1", "-c", "COMMUNITY", "-H", "192.168.1.1", "-o", "iso.3.6.1.2.1.31.1.1.1.16.1"], [/* 15 vars */]) = 0
brk(0)                                  = 0x255a000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff01be7f000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=25871, ...}) = 0
mmap(NULL, 25871, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ff01be78000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\\\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=131107, ...}) = 0
mmap(NULL, 2208672, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff01ba46000
mprotect(0x7ff01ba5d000, 2093056, PROT_NONE) = 0
mmap(0x7ff01bc5c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7ff01bc5c000
mmap(0x7ff01bc5e000, 13216, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff01bc5e000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\r\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=14768, ...}) = 0
mmap(NULL, 2109696, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff01b842000
mprotect(0x7ff01b844000, 2097152, PROT_NONE) = 0
mmap(0x7ff01ba44000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7ff01ba44000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\357\1\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1595408, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff01be77000
mmap(NULL, 3709016, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff01b4b8000
mprotect(0x7ff01b638000, 2097152, PROT_NONE) = 0
mmap(0x7ff01b838000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x180000) = 0x7ff01b838000
mmap(0x7ff01b83d000, 18520, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff01b83d000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff01be76000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff01be75000
arch_prctl(ARCH_SET_FS, 0x7ff01be76700) = 0
mprotect(0x7ff01b838000, 16384, PROT_READ) = 0
mprotect(0x7ff01ba44000, 4096, PROT_READ) = 0
mprotect(0x7ff01bc5c000, 4096, PROT_READ) = 0
mprotect(0x7ff01be81000, 4096, PROT_READ) = 0
munmap(0x7ff01be78000, 25871)           = 0
set_tid_address(0x7ff01be769d0)         = 31118
set_robust_list(0x7ff01be769e0, 0x18)   = 0
futex(0x7fffcb05676c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, 7ff01be76700) = -1 EAGAIN (Resource temporarily unavailable)
rt_sigaction(SIGRTMIN, {0x7ff01ba4bad0, [], SA_RESTORER|SA_SIGINFO, 0x7ff01ba55030}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x7ff01ba4bb60, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7ff01ba55030}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
brk(0)                                  = 0x255a000
brk(0x257b000)                          = 0x257b000
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1534672, ...}) = 0
mmap(NULL, 1534672, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ff01bcfe000
close(3)                                = 0
time([1415359964])                      = 1415359964
rt_sigaction(SIGALRM, {0x407ad0, [ALRM], SA_RESTORER|SA_RESTART, 0x7ff01b4ea4f0}, {SIG_DFL, [], 0}, 8) = 0
alarm(10)                               = 0
getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=4*1024}) = 0
pipe([3, 4])                            = 0
pipe([5, 6])                            = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7ff01be769d0) = 31119
close(4)                                = 0
close(6)                                = 0
read(3, 0x7fffcb055560, 4096)           = ? ERESTARTSYS (To be restarted)
--- SIGALRM (Alarm clock) @ 0 (0) ---
open("/usr/share/locale/locale.alias", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff01be7e000
read(4, "# Locale name alias data base.\n#"..., 4096) = 2570
read(4, "", 4096)                       = 0
close(4)                                = 0
munmap(0x7ff01be7e000, 4096)            = 0
open("/usr/local/nagios/share/locale/en_US.UTF-8/LC_MESSAGES/nagios-plugins.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/nagios/share/locale/en_US.utf8/LC_MESSAGES/nagios-plugins.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/nagios/share/locale/en_US/LC_MESSAGES/nagios-plugins.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/nagios/share/locale/en.UTF-8/LC_MESSAGES/nagios-plugins.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/nagios/share/locale/en.utf8/LC_MESSAGES/nagios-plugins.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/nagios/share/locale/en/LC_MESSAGES/nagios-plugins.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff01be7e000
write(1, "CRITICAL - Plugin timed out whil"..., 56CRITICAL - Plugin timed out while executing system call
) = 56
write(1, "\n", 1
)                       = 1
exit_group(2)                           = ?


Re: check_snmp not working but snmpget works

Posted: Fri Nov 07, 2014 7:19 am
by rhassing
I get the same output if the community is not correct, or if the ip address is not correct.
Are you 100% sure there is no typo in the community?

Re: check_snmp not working but snmpget works

Posted: Fri Nov 07, 2014 8:10 am
by Kerflumpre
Absolutely. Comparing one line to the next from the snmpget command.

Re: check_snmp not working but snmpget works

Posted: Fri Nov 07, 2014 8:20 am
by rhassing
Strange, does check_cnmp work with other oid's? Or do you get timeouts on all oid's on this server?
Does check_snmp work on another server/device, or do you get timeouts on other devices as well?

Re: check_snmp not working but snmpget works

Posted: Fri Nov 07, 2014 8:32 am
by Kerflumpre
It appears that check_snmp won't work against any device or oid.

Re: check_snmp not working but snmpget works

Posted: Fri Nov 07, 2014 9:14 am
by rhassing
Maybe something went wrong with the compilation of the check?
Which distribution and version are you using?

Re: check_snmp not working but snmpget works

Posted: Fri Nov 07, 2014 9:28 am
by Kerflumpre
4.0.8 on Debian 7

Re: check_snmp not working but snmpget works

Posted: Fri Nov 07, 2014 9:56 am
by rhassing
Did you compile the check yourself, or did you install a package?
I only have CentOS 6.5 i686 systems.