Solved

Ubuntu / Nagios3 issue with receiving updates from custom Perl plugin

Posted on 2011-09-23
9
1,613 Views
Last Modified: 2012-05-12
Hi Guys!

I'm a first time user of Nagios3 (or any Nagios for that matter).  I've successfully got the Ubuntu host of Nagios and 2 Windows Servers being monitored.
The 2 Windows Servers have iLO2 cards and I'd like to be able to monitor temps, fans etc.

Now I did some research online and came across this plugin;

http://exchange.nagios.org/directory/Plugins/Hardware/Server-Hardware/HP-%28Compaq%29/check_ilo2_health/details

which I installed (including having to install the Perl plugins as guided by the above link) and the iLO card but I am getting a "(Service check did not exit properly)" status (and hense a critical against the service).

The /var/log/nagios3/nagios.log says the following;

[1316793185] Nagios 3.2.3 starting... (PID=7867)
[1316793185] Local time is Fri Sep 23 16:53:05 BST 2011
[1316793185] LOG VERSION: 2.0
[1316793185] Finished daemonizing... (New PID=7868)
[1316793365] Warning:  Check of service 'iLO remote management card' on host 'iLO_RS2' did not exit properly!
[1316793665] Warning:  Check of service 'iLO remote management card' on host 'iLO_RS2' did not exit properly!
[1316793965] Warning:  Check of service 'iLO remote management card' on host 'iLO_RS2' did not exit properly!
[1316794265] Warning:  Check of service 'iLO remote management card' on host 'iLO_RS2' did not exit properly!
[1316794565] Warning:  Check of service 'iLO remote management card' on host 'iLO_RS2' did not exit properly!

I've checked the logs for the iLO card I'm trying to connect to and can't find any entry for the nagios user.

Now as I say I am very green when it comes to Nagios and so I do not know where to start on this.

Any ideas?
0
Comment
Question by:sjb79
  • 6
  • 3
9 Comments
 
LVL 38

Expert Comment

by:wesly_chen
ID: 36588603
When you manually run the following command, what is the output
check_ilo2_health.pl -H <host> -u <username> -p <password>
  where <host> must be an iLO2 management controller!
0
 

Author Comment

by:sjb79
ID: 36597641
Hi Wesly,

I got the following error message;

rs3@RS3:/usr/lib/nagios/plugins$ ./check_ilo2_health.pl  -H rs2 -u nagios -p password
Can't locate IO/Socket/SSL.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at ./check_ilo2_health.pl line 78.
BEGIN failed--compilation aborted at ./check_ilo2_health.pl line 78.

Not entirely sure what that means but it doesn't look too promosing...?
0
 

Author Comment

by:sjb79
ID: 36597651
I've checked the code for check_ilo2_health.pl and the line is "use IO::Socket::SSL;"
0
 

Author Comment

by:sjb79
ID: 36598048
I think I can see what the issue might be (correct me if I'm wrong) but it appears to be looking for elements of perl in;

/etc/perl
/usr/local/lib/perl/5.10.1
/usr/local/share/perl/5.10.1
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.10
/usr/share/perl/5.10
/usr/local/lib/site_perl

The file in question being Simple.pm I think, but Ubuntu has the following layout;

/usr/share/perl5/LWP/Simple.pm
/usr/share/perl/5.10.1/Filter/Simple.pm
/usr/share/perl/5.10.1/Locale/Maketext/Simple.pm
/usr/share/perl/5.10.1/Test/Simple.pm
/usr/share/perl/5.10.1/Pod/Simple.pm
/usr/share/perl/5.10.1/Log/Message/Simple.pm

so I guess the question is where can I change where it's looking....?
0
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 
LVL 38

Accepted Solution

by:
wesly_chen earned 500 total points
ID: 36609641
What's your perl version on Ubuntu?

run
which perl
perl -v


If "perl -v" shows "v5.10.1", then change the first line of check_ilo2_health.pl to
#!/usr/bin/perl
   where is the output of 'which perl'
0
 

Author Comment

by:sjb79
ID: 36708223
got the following output;

rs3@RS3:~$ which perl -v
/usr/bin/perl
rs3@RS3:~$ perl -v

This is perl, v5.10.1 (*) built for x86_64-linux-gnu-thread-multi
(with 53 registered patches, see perl -V for more detail)

Copyright 1987-2009, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

rs3@RS3:~$ perl -V
Summary of my perl5 (revision 5 version 10 subversion 1) configuration:

  Platform:
    osname=linux, osvers=2.6.24-29-server, archname=x86_64-linux-gnu-thread-multi
    uname='linux crested 2.6.24-29-server #1 smp wed mar 16 19:04:28 utc 2011 x86_64 x86_64 x86_64 gnulinux '
    config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.10 -Darchlib=/usr/lib/perl/5.10 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.10.1 -Dsitearch=/usr/local/lib/perl/5.10.1 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -DDEBUGGING=-g -Doptimize=-O2 -Dplibpth=/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu -Duseshrplib -Dlibperl=libperl.so.5.10.1 -Dd_dosuid -des'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2 -g',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.5.2', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu /lib /usr/lib /lib64 /usr/lib64
    libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
    perllibs=-ldl -lm -lpthread -lc -lcrypt
    libc=, so=so, useshrplib=true, libperl=libperl.so.5.10.1
    gnulibc_version='2.13'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector'


Characteristics of this binary (from libperl):
  Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
                        PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_64_BIT_ALL
                        USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
                        USE_PERLIO USE_REENTRANT_API
  Locally applied patches:
        DEBPKG:debian/arm_thread_stress_timeout - http://bugs.debian.org/501970 Raise the timeout of ext/threads/shared/t/stress.t to accommodate slower build hosts
        DEBPKG:debian/cpan_config_path - Set location of CPAN::Config to /etc/perl as /usr may not be writable.
        DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS default for modules installed from CPAN.
        DEBPKG:debian/db_file_ver - http://bugs.debian.org/340047 Remove overly restrictive DB_File version check.
        DEBPKG:debian/doc_info - Replace generic man(1) instructions with Debian-specific information.
        DEBPKG:debian/enc2xs_inc - http://bugs.debian.org/290336 Tweak enc2xs to follow symlinks and ignore missing @INC directories.
        DEBPKG:debian/errno_ver - http://bugs.debian.org/343351 Remove Errno version check due to upgrade problems with long-running processes.
        DEBPKG:debian/extutils_hacks - Various debian-specific ExtUtils changes
        DEBPKG:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to the binary targets.
        DEBPKG:debian/instmodsh_doc - Debian policy doesn't install .packlist files for core or vendor.
        DEBPKG:debian/ld_run_path - Remove standard libs from LD_RUN_PATH as per Debian policy.
        DEBPKG:debian/libnet_config_path - Set location of libnet.cfg to /etc/perl/Net as /usr may not be writable.
        DEBPKG:debian/m68k_thread_stress - http://bugs.debian.org/495826 Disable some threads tests on m68k for now due to missing TLS.
        DEBPKG:debian/mod_paths - Tweak @INC ordering for Debian
        DEBPKG:debian/module_build_man_extensions - http://bugs.debian.org/479460 Adjust Module::Build manual page extensions for the Debian Perl policy
        DEBPKG:debian/perl_synopsis - http://bugs.debian.org/278323 Rearrange perl.pod
        DEBPKG:debian/prune_libs - http://bugs.debian.org/128355 Prune the list of libraries wanted to what we actually need.
        DEBPKG:debian/use_gdbm - Explicitly link against -lgdbm_compat in ODBM_File/NDBM_File.
        DEBPKG:fixes/assorted_docs - http://bugs.debian.org/443733 [384f06a] Math::BigInt::CalcEmu documentation grammar fix
        DEBPKG:fixes/net_smtp_docs - http://bugs.debian.org/100195 [rt.cpan.org #36038] Document the Net::SMTP 'Port' option
        DEBPKG:fixes/processPL - http://bugs.debian.org/357264 [rt.cpan.org #17224] Always use PERLRUNINST when building perl modules.
        DEBPKG:debian/perlivp - http://bugs.debian.org/510895 Make perlivp skip include directories in /usr/local
        DEBPKG:fixes/pod2man-index-backslash - http://bugs.debian.org/521256 Escape backslashes in .IX entries
        DEBPKG:debian/disable-zlib-bundling - Disable zlib bundling in Compress::Raw::Zlib
        DEBPKG:fixes/kfreebsd_cppsymbols - http://bugs.debian.org/533098 [3b910a0] Add gcc predefined macros to $Config{cppsymbols} on GNU/kFreeBSD.
        DEBPKG:debian/cpanplus_definstalldirs - http://bugs.debian.org/533707 Configure CPANPLUS to use the site directories by default.
        DEBPKG:debian/cpanplus_config_path - Save local versions of CPANPLUS::Config::System into /etc/perl.
        DEBPKG:fixes/kfreebsd-filecopy-pipes - http://bugs.debian.org/537555 [16f708c] Fix File::Copy::copy with pipes on GNU/kFreeBSD
        DEBPKG:fixes/anon-tmpfile-dir - http://bugs.debian.org/528544 [perl #66452] Honor TMPDIR when open()ing an anonymous temporary file
        DEBPKG:fixes/abstract-sockets - http://bugs.debian.org/329291 [89904c0] Add support for Abstract namespace sockets.
        DEBPKG:fixes/hurd_cppsymbols - http://bugs.debian.org/544307 [eeb92b7] Add gcc predefined macros to $Config{cppsymbols} on GNU/Hurd.
        DEBPKG:fixes/autodie-flock - http://bugs.debian.org/543731 Allow for flock returning EAGAIN instead of EWOULDBLOCK on linux/parisc
        DEBPKG:fixes/archive-tar-instance-error - http://bugs.debian.org/539355 [rt.cpan.org #48879] Separate Archive::Tar instance error strings from each other
        DEBPKG:fixes/positive-gpos - http://bugs.debian.org/545234 [perl #69056] [c584a96] Fix \G crash on first match
        DEBPKG:debian/devel-ppport-ia64-optim - http://bugs.debian.org/548943 Work around an ICE on ia64
        DEBPKG:fixes/trie-logic-match - http://bugs.debian.org/552291 [perl #69973] [0abd0d7] Fix a DoS in Unicode processing [CVE-2009-3626]
        DEBPKG:fixes/hppa-thread-eagain - http://bugs.debian.org/554218 make the threads-shared test suite more robust, fixing failures on hppa
        DEBPKG:fixes/crash-on-undefined-destroy - http://bugs.debian.org/564074 [perl #71952] [1f15e67] Fix a NULL pointer dereference when looking for a DESTROY method
        DEBPKG:fixes/tainted-errno - http://bugs.debian.org/574129 [perl #61976] [be1cf43] fix an errno stringification bug in taint mode
        DEBPKG:fixes/safe-upgrade - http://bugs.debian.org/582978 Upgrade Safe.pm to 2.25, fixing CVE-2010-1974
        DEBPKG:fixes/tell-crash - http://bugs.debian.org/578577 [f4817f3] Fix a tell() crash on bad arguments.
        DEBPKG:fixes/format-write-crash - http://bugs.debian.org/579537 [perl #22977] [421f30e] Fix a crash in format/write
        DEBPKG:fixes/arm-alignment - http://bugs.debian.org/289884 [f1c7503] Prevent gcc from optimizing the alignment test away on armel
        DEBPKG:fixes/fcgi-test - Fix a failure in CGI/t/fast.t when FCGI is installed
        DEBPKG:fixes/hurd-ccflags - http://bugs.debian.org/587901 Make hints/gnu.sh append to $ccflags rather than overriding them
        DEBPKG:debian/squelch-locale-warnings - http://bugs.debian.org/508764 Squelch locale warnings in Debian package maintainer scripts
        DEBPKG:fixes/lc-numeric-docs - http://bugs.debian.org/379329 [perl #78452] [903eb63] LC_NUMERIC documentation fixes
        DEBPKG:fixes/lc-numeric-sprintf - http://bugs.debian.org/601549 [perl #78632] [b3fd614] Fix sprintf not to ignore LC_NUMERIC with constants
        DEBPKG:fixes/concat-stack-corruption - http://bugs.debian.org/596105 [perl #78674] [e3393f5] Fix stack pointer corruption in pp_concat() with 'use encoding'
        DEBPKG:fixes/cgi-multiline-header - http://bugs.debian.org/606995 [CVE-2010-2761 CVE-2010-4410 CVE-2010-4411] CGI.pm MIME boundary and multiline header vulnerabilities
        DEBPKG:fixes/h2ph-gcc-4.5 - http://bugs.debian.org/599933 [8d66b3f] Fix h2ph and test
        DEBPKG:fixes/threads-tmps-crash - [perl #70411] [24855df] Conditionally compile tmps stack cleanup code
        DEBPKG:patchlevel - http://bugs.debian.org/567489 List packaged patches for 5.10.1-17ubuntu1 in patchlevel.h
  Built under linux
  Compiled at Apr 26 2011 15:56:28
  @INC:
    /etc/perl
    /usr/local/lib/perl/5.10.1
    /usr/local/share/perl/5.10.1
    /usr/lib/perl5
    /usr/share/perl5
    /usr/lib/perl/5.10
    /usr/share/perl/5.10
    /usr/local/lib/site_perl
    .
I've tried changing the #! entry to /usr/bin/perl as well as all of those listed above and basically got the following error message each time;

rs3@RS3:/usr/lib/nagios/plugins$ sudo ./check_ilo2_health.pl  -H rs2 -u nagios -p password
./check_ilo2_health.pl: 75: use: not found
./check_ilo2_health.pl: 76: use: not found
./check_ilo2_health.pl: 78: use: not found
./check_ilo2_health.pl: 79: use: not found
./check_ilo2_health.pl: 80: use: not found
./check_ilo2_health.pl: 82: Syntax error: "(" unexpected

Am I doing something very wrong here (...probably)
0
 
LVL 38

Assisted Solution

by:wesly_chen
wesly_chen earned 500 total points
ID: 36711635
This plugin requires perl modules "Nagios::Plugin, IO::Socket::SSL and XML::Simple"
Install those modules first.

sudo apt-get install  libnagios-plugin-perl  libio-socket-ssl-perl  libxml-simple-perl


Also post the line 75 ~ 82 of  check_ilo2_health.pl
0
 

Author Comment

by:sjb79
ID: 36715561
Hi Wesly,

Ok, installed that double checked everything....

rs3@RS3:/etc/nagios3/objects$ which perl
/usr/bin/perl

so I've set the check_ilo2_health.pl to #!/usr/bin/perl

output now is;

rs3@RS3:/usr/lib/nagios/plugins$ ./check_ilo2_health.pl  -H 192.168.0.192 -u nagios -p password
./check_ilo2_health.pl: line 76: use: command not found
./check_ilo2_health.pl: line 77: use: command not found
./check_ilo2_health.pl: line 79: use: command not found
./check_ilo2_health.pl: line 80: use: command not found
./check_ilo2_health.pl: line 81: use: command not found
./check_ilo2_health.pl: line 83: syntax error near unexpected token `('
./check_ilo2_health.pl: line 83: `use vars qw($VERSION $PROGNAME  $verbose $warn $critical $timeout $result);'
rs3@RS3:/usr/lib/nagios/plugins$

line 76 to 81 is;

use strict;
use warnings;

use Nagios::Plugin;
use IO::Socket::SSL;
use XML::Simple;

and 83 is

use vars qw($VERSION $PROGNAME  $verbose $warn $critical $timeout $result);

I've attached the check-ilo2-health.pl file but had to add a txt extention to be able to upload it to this website.  Perhaps if you can see the whole pl file it might help it make more sense...?
check-ilo2-health.pl.txt.txt
0
 

Author Comment

by:sjb79
ID: 36902777
Found what was causing the problem, I thought I'd commented out previous #! entries at the beginning of the script, but it was still reading them.  I deleted them leaving just #!/usr/bin/perl and it's now working.

Cheers
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Setting up Secure Ubuntu server on VMware 1.      Insert the Ubuntu Server distribution CD or attach the ISO of the CD which is in the “Datastore”. Note that it is important to install the x64 edition on servers, not the X86 editions. 2.      Power on th…
Linux users are sometimes dumbfounded by the severe lack of documentation on a topic. Sometimes, the documentation is copious, but other times, you end up with some obscure "it varies depending on your distribution" over and over when searching for …
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now