[Nagiosplug-help] check_nrpe build sucks

Ralph.Grothe at itdz-berlin.de Ralph.Grothe at itdz-berlin.de
Wed Jul 13 22:32:34 CEST 2005


Hello Andreas,

to start with, I was well aware that I would need the check_nrpe
only to be run on the Manager
(i.e. Nagios Server).

This is where it sucks, as I put it.

You see, I would be a happy camper if I could take any Linux box
as my Manager.
I know how smoothly most Open Source projects compile under Linux
(no wonder I'd bet because the developers might well have been
using this platform)
Unfortunately to my great dissatisfaction and frustration I am
stuck to this bloody AIX box to host the Nagios server, as it is
our admin server that alone has open SSH ports to every of our
hosts I need to monitor.
So it wouldn't make much sense to set up a Linux Nagios server
that could be done in a wink, I guess,
for I couldn't reach most of the firewalled hosts with the
plug-ins from there.
I think IBM bragged about latest AIX versions being capable of
running Linux binaries in a sandbox.
Unfortunately this AIX box of ours has a dated OS, and I am not
the sysadmin on this server to be allowed to fiddle with any
major installations of prerequisites such as patches, libraries
etc.


This is the OS release

$ uname -a
AIX daisy 3 4 0045CB7A4C00

Don't ask me how to get patch levels and the likes displayed
because my cup of tea are HPUX, Solaris and Linux.
I don't even know how to query for installed software packages (I
only know HP's SD tools like swlist, swinstall,
Solaris' pkginfo, pkgchk, or Linux's rpm, apt etc.
Besides, an OS that I cannot administrate thoroughly from the
shell is suspicious to me.
So I've never made friends with smit/smitty.

The linker on this AIX box that is found first in my PATH
identifies as such

$ which ld
/usr/bin/ld

$ ld -v
ld: 0706-030 No processing done.  Specify at least one
        input or import file or use at least one -b ex<n> option.

$ ld -h
ld: 0706-012 The -h flag is not recognized.
ld: 0706-030 No processing done.  Specify at least one
        input or import file or use at least one -b ex<n> option.

Argh, typically AIX I would say.
I loath programs that don't display a minimal help screen and
reveal their release version.


Can you make anything out of this?

As for the OpenSSL version you asked about.
I also totally dismissed any SSL switches on a subsequent
configure run after having removed prior created Makefiles by a
make distclean because I also suspected an type mismatch in SSL
header files to be the culprit.
Nevertheless, the outcome was the same.
So I don't consider OpenSSL idiosyncracies to be the reason.


# make distclean
        cd ./src/; make clean ; cd ..
        rm -f core nrpe check_nrpe
        rm -f *~ */*~
        rm -f core
        rm -f *~ */*~
        cd ./src/; make distclean ; cd ..
        rm -f core nrpe check_nrpe
        rm -f *~ */*~
        rm -f Makefile
        rm -f config.log config.status config.cache nrpe.cfg
nrpe.xinetd subst ./common//config.h init
-script init-script.debian init-script.freebsd
        rm -f Makefile


# ./configure --prefix=/opt/sw/nagios --with-nagios-user=nagios
--with-nagios-group=nagios --with-nagios-port=5666
checking for a BSD compatible install... ./install-sh -c
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking whether make sets ${MAKE}... yes
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking whether time.h and sys/time.h may both be included...
yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for ctype.h... yes
checking for dirent.h... yes
checking for errno.h... yes
checking for fcntl.h... yes
checking for getopt.h... no
checking for grp.h... yes
checking for inttypes.h... yes
checking for netdb.h... yes
checking for pwd.h... yes
checking for signal.h... yes
checking for stdint.h... no
checking for strings.h... yes
checking for string.h... yes
checking for syslog.h... yes
checking for unistd.h... yes
checking for arpa/inet.h... yes
checking for netinet/in.h... yes
checking for sys/types.h... yes
checking for sys/time.h... yes
checking for sys/resource.h... yes
checking for sys/wait.h... (cached) yes
checking for sys/socket.h... yes
checking for sys/stat.h... yes
checking for working const... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for mode_t... yes
checking for pid_t... yes
checking for size_t... yes
checking return type of signal handlers... void
checking for uid_t in sys/types.h... yes
checking type of array argument to getgroups... gid_t
checking size of int... 4
checking size of short... 2
checking size of long... 4
checking for uint32_t... yes
checking for u_int32_t... yes
checking for int32_t... yes
checking for main in -lnsl... yes
checking for socket in -lsocket... no
checking for strdup... yes
checking for strstr... yes
checking for strtoul... yes
checking for initgroups... yes
checking for type of socket size... size_t
checking for SSL... SSL found in /usr/local

*** Generating DH Parameters for SSL/TLS ***
warning, not much extra random data, consider using the -rand
option
Generating DH parameters, 512 bit long safe prime, generator 2
This is going to take a long time
92770:error:24064064:random number
generator:SSLEAY_RAND_BYTES:PRNG not seeded:md_rand.c:474:You
need 
to read the OpenSSL FAQ, http://www.openssl.org/support/faq.html
92770:error:05068003:Diffie-Hellman
routines:DH_generate_parameters:BN lib:dh_gen.c:138:
checking for Kerberos include files... could not find include
files
checking for perl... /usr/bin/perl
creating ./config.status
creating Makefile
creating src/Makefile
creating subst
creating common/config.h


*** Configuration summary for nrpe 2.0 09-08-2003 ***:

 General Options:
 -------------------------
 NRPE port:  5666
 NRPE user:  nagios
 NRPE group: nagios


Review the options above for accuracy.  If they look okay,
type 'make all' to compile the NRPE daemon and client.
# make all 2>&1|tee make_all.log
        cd ./src/; make ; cd ..
        gcc -g -O2 -I/usr/local/include/openssl
-I/usr/local/include -DHAVE_CONFIG_H -o nrpe nrpe.c utils.c
-L/usr/local/lib  -lssl -lcrypto -lnsl
nrpe.c: In function `main':
nrpe.c:198: warning: assignment makes pointer from integer
without a cast
nrpe.c: In function `handle_connection':
nrpe.c:755: warning: passing arg 2 of `SSL_read' from
incompatible pointer type
nrpe.c:927: warning: passing arg 2 of `SSL_write' from
incompatible pointer type
ld: 0711-317 ERROR: Undefined symbol: .get_dh512
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more
information.
collect2: ld returned 8 exit status
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 2.


Stop.





No object files have been created thus far

# find . -type f -name \*.o -ls

This looks to me like a missing type definition from any missing
header file.

I don't know how to make use of the hint from the linker to try
using switches -bloadmap or -bnoquiet
to get further details.
This doesn't 

# cd src

# gcc -Xlinker -bloadmap -g -O2 -I/usr/local/include/openssl
-I/usr/local/include -DHAVE_CONFIG_H -o 
nrpe nrpe.c utils.c -L/usr/local/lib  -lssl -lcrypto -lnsl
nrpe.c: In function `main':
nrpe.c:198: warning: assignment makes pointer from integer
without a cast
nrpe.c: In function `handle_connection':
nrpe.c:755: warning: passing arg 2 of `SSL_read' from
incompatible pointer type
nrpe.c:927: warning: passing arg 2 of `SSL_write' from
incompatible pointer type
ld: 0706-015 The -b loadmap option needs a parameter.
        Option syntax: -b loadmap:PARM
collect2: ld returned 255 exit status


Ah, maybe the more verbose output from -bnoquiet is more
revealing to you?


# gcc -Xlinker -bnoquiet -g -O2 -I/usr/local/include/openssl
-I/usr/local/include -DHAVE_CONFIG_H -o 
nrpe nrpe.c utils.c -L/usr/local/lib  -lssl -lcrypto -lnsl
nrpe.c: In function `main':
nrpe.c:198: warning: assignment makes pointer from integer
without a cast
nrpe.c: In function `handle_connection':
nrpe.c:755: warning: passing arg 2 of `SSL_read' from
incompatible pointer type
nrpe.c:927: warning: passing arg 2 of `SSL_write' from
incompatible pointer type
(ld): halt 4
(ld): setopt r/o->w 
(ld): setopt nodelcsect 
(ld): savename nrpe
(ld): filelist 9 4
(ld): i /lib/crt0.o
(ld): i /tmp/ccAlTMx1.o
(ld): i /tmp/ccpYRSS6.o
(ld): lib /usr/local/lib/libssl.a
(ld): lib /usr/local/lib/libcrypto.a
(ld): lib /usr/lib/libnsl.a
(ld): i
/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.2.0/2.95.3/libgcc.a
(ld): lib /usr/lib/libg.a
(ld): lib /usr/lib/libc.a
LIBRARY: Shared object libssl.a[libssl.so]: 318 symbols imported.
LIBRARY: Shared object libcrypto.a[libcrypto.so]: 1839 symbols
imported.
LIBRARY: Shared object libnsl.a[shr.o]: 358 symbols imported.
LIBRARY: Shared object libc.a[shr.o]: 2268 symbols imported.
LIBRARY: Shared object libc.a[meth.o]: 2 symbols imported.
LIBRARY: Shared object libc.a[aio.o]: 11 symbols imported.
LIBRARY: Shared object libc.a[pse.o]: 78 symbols imported.
LIBRARY: Shared object libc.a[dl.o]: 4 symbols imported.
LIBRARY: Shared object libc.a[pty.o]: 1 symbols imported.
FILELIST: Number of previously inserted files processed: 9
(ld): imports /tmp/ccOaE0PW.p 
IMPORTS: Symbols imported from import file /tmp/ccOaE0PW.p: 0
(ld): exports /usr/lib/libg.exp 
EXPORTS: Symbols exported: 4
(ld): exports /tmp/ccczJ03I.x 
EXPORTS: Symbols exported: 0
(ld): resolve
RESOLVE: 441 of 6329 symbols were kept.
(ld): addgl /usr/lib/glink.o
ADDGL: Glink code added for 97 symbols.
(ld): er full
ld: 0711-318 ERROR: Undefined symbols were found.
        The following symbols are in error:
 Symbol                    Inpndx  TY CL Source-File(Object-File)
OR Import-File{Shared-object}
                              RLD: Address  Section  Rld-type
Referencing Symbol
 
-----------------------------------------------------------------
-----------------------------
ld: 0711-317 ERROR: Undefined symbol: .get_dh512
 .get_dh512                [58]    ER PR nrpe.c(/tmp/ccAlTMx1.o)
                                   000004a8 .text    R_RBR
[898]   .main
ER: The return code is 8.
collect2: ld returned 8 exit status



Sorry, I'm not a C hacker to make much out of that.
Do you see where I get the missing definition from?


I need urgently a working check_nrpe binary for my AIX platform.
Otherwise the whole of Nagios is almost useless to me, and I will
be forced to try other monitoring systems like zabbix etc.

Many thanks for your patience

Ralph


> -----Original Message-----
> From: nagiosplug-help-admin at lists.sourceforge.net
> [mailto:nagiosplug-help-admin at lists.sourceforge.net]On Behalf 
> Of Andreas
> Ericsson
> Sent: Tuesday, July 12, 2005 5:30 PM
> To: nagiosplug-help at lists.sourceforge.net
> Subject: Re: [Nagiosplug-help] check_nrpe build sucks
> 
> 
> Ralph.Grothe at itdz-berlin.de wrote:
> > Hello,
> > 
> > as I've found out I need to install an NRPE daemon on all
> > hosts/nodes whose e.g. filesystem space or running procs I
wish
> > to monitor (I would say a very common requirement for any
> > monitoring system).
> > Unfortunately the Nagios documentation isn't pretty
articulate on
> > this subject, merely these vague mentionings:
> > http://nagios.sourceforge.net/docs/2_0/addons.html#nrpe
> > To add to the confusion the anchor in this page doesn't
directly
> > point to the URL that I would have expected, namely
> >
http://www.nagiosexchange.org/Search_Projects.43.0.html?tx_netnag
> > ext_pi1%5Bphrase%5D=nrpe&tx_netnagext_pi1%5Bsearch%5D=1
> > So it took me a while until I stumbled over the further
required
> > download links for nrpe.
> > 
> > Most of the systems I need to monitor are HPUX, Solaris, AIX
> > (much fewer are Linux boxes).
> > Need I mention that these OSes are usually only furnished
with a
> > crippleware "compiler" that basically is only capable of
linking
> > a new kernel (on Solaris even that isn't required thanks to
high
> > degree of modularization).
> > Whenever I need to build some apps from open sources for
these
> > boxes I can only rely on gcc.
> > Especially on HPUX gcc performs very poorly.
> > 
> 
> This is due to the header-files found on most HPUX boxen, which
are 
> usually broken unless you use the HPUX C pre-processor.
> 
> > Thus I am really glad whenever I find a prebuilt package or
depot
> > for these platforms.
> > 
> > Well I trust that the NRPE daemon from the HPUX-PARISC NRPE
depot
> > will work.
> > I configured it to be run through inetd as outlined in the
> > README.
> > 
> > What's annoying is that I also need the whole bunch of
check_*
> > plugin binaries on these platforms.
> 
> 
> How come? Did you expect all the logic to be built into nrpe?
> 
> 
> > But for those they don't supply any prebuilt packages or
depots.
> > 
> > I also found that although I somehow got the plugins compiled
and
> > installed on the AIX Nagios server (i.e. manager) the
check_npre
> > binary was missing.
> > 
> 
> You don't need the check_nrpe binary on the system you want 
> to monitor. 
> You only need it on the server where Nagios is running.
> 
> 
> > Ok, I got the nrpe sources (I'm afraid no AIX package
available)
> > and tried to compile the stuff
> > 
> > This was how I had the Makefiles created
> > 
> > # ./configure --prefix=/opt/sw/nagios --enable-ssl
> > --with-ssl-lib=/usr/local/lib/openssl-0.9
> > --with-ssl-include=/usr/local/include/openssl
> > --with-nagios-user=nagios --with-nagios-group=nagios
> > --with-nagios-port=5666
> > 
> > This is the AIX platform and its gcc version
> > 
> > # uname -srv
> > AIX 3 4
> > 
> > # gcc -v
> > Reading specs from
> > /usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.2.0/2.95.3/specs
> > gcc version 2.95.3 20010315 (release)
> > 
> > 
> > Here is where the linker aborts
> > 
> > # make all
> >         cd ./src/; make ; cd ..
> >         gcc -g -O2 -I/usr/local/include/openssl
> > -I/usr/local/include -DHAVE_CONFIG_H -o nrpe nrpe.c
> >  utils.c -L/usr/local/lib/openssl-0.9  -lssl -lcrypto -lnsl
> > nrpe.c: In function `main':
> > nrpe.c:198: warning: assignment makes pointer from integer
> > without a cast
> > nrpe.c: In function `handle_connection':
> > nrpe.c:755: warning: passing arg 2 of `SSL_read' from
> > incompatible pointer type
> > nrpe.c:927: warning: passing arg 2 of `SSL_write' from
> > incompatible pointer type
> > ld: 0711-317 ERROR: Undefined symbol: .get_dh512
> > ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain
more
> > information.
> > collect2: ld returned 8 exit status
> > make: 1254-004 The error code from the last command is 1.
> > 
> 
> What linker are you using? What's the version of your openssl 
> installation? nrpe (and check_nrpe) requires 0.9.6 or later.
> 
> > 
> > Stop.
> > make: 1254-004 The error code from the last command is 2.
> > 
> > 
> > Stop.
> > 
> > 
> > Ok, I understand that I don't need the NRPE daemon on this
AIX
> > box since this is the Nagios server.
> > So I think it would suffice to only get the check_nrpe plugin
> > compiled in the plugins subdir of the source tarball.
> > Is that so, or would I require any other components as well
on
> > the Nagios server?
> > 
> 
> You only need check_nrpe on the nagios server.
> 
> > 
> > 
> > Same nuisance, different box.
> > This time a HPUX node that I wish to monitor by the Nagios
> > server.
> > As I understood, here I will need the NRPE daemon, which I
got
> > from the HPUX-PARISC depot for 11.00.
> > But I also need plugins such as check_procs or check_disks
etc.
> > 
> > Here we're on
> > 
> > # uname -srv
> > HP-UX B.11.00 U
> > 
> > 
> > Looks like HP's make cannot cope with a rule in
plugins/Makefile
> > 
> > # make all
> > No suffix list.
> >         make  all-recursive
> > No suffix list.
> > Making all in intl
> >         : -y -d --name-prefix=__gettext --output plural.c
> > plural.y
> >         rm -f plural.h
> > Making all in lib
> >         make  all-am
> > Making all in plugins
> > Make: Must be a separator on rules line 1011.  Stop.
> > *** Error exit code 1
> > 
> > Stop.
> > *** Error exit code 1
> > 
> > Stop.
> > 
> > 
> > Well the indicated line No. isn't very helpful since non of
the
> > Makefiles has that many lines
> > 
> > # find /usr/local/tmp/nagios-plugins-1.4 -type f -name
Makefile
> > -exec wc -l {} \;
> > 337 /usr/local/tmp/nagios-plugins-1.4/intl/Makefile
> > 567 /usr/local/tmp/nagios-plugins-1.4/lib/Makefile
> > 398 /usr/local/tmp/nagios-plugins-1.4/m4/Makefile
> > 990 /usr/local/tmp/nagios-plugins-1.4/plugins/Makefile
> > 520
/usr/local/tmp/nagios-plugins-1.4/plugins-scripts/Makefile
> > 426 /usr/local/tmp/nagios-plugins-1.4/po/Makefile
> > 729 /usr/local/tmp/nagios-plugins-1.4/Makefile
> > 
> > 
> > Though not being a profound connaiseur of Makefile syntax
> > I cannot see anything that looks wrong in that all: rule
> > 
> > # sed -n 484,501p plugins/Makefile
> > all: all-am
> > 
> > .SUFFIXES:
> > .SUFFIXES: .c .o .obj
> > $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am
> > $(am__configure_deps)
> >         @for dep in $?; do \
> >           case '$(am__configure_deps)' in \
> >             *$$dep*) \
> >               cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS)
> > am--refresh \
> >                 && exit 0; \
> >               exit 1;; \
> >           esac; \
> >         done; \
> >         echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu
> > plugins/Makefile'; \
> >         cd $(top_srcdir) && \
> >           $(AUTOMAKE) --gnu  plugins/Makefile
> > .PRECIOUS: Makefile
> > Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
> > 
> > I haven't tried yet on our Solaris boxes,
> > but I'm convinced that the situation thereon won't differ
much.
> > 
> > 
> > With all this unforseen hassle I can so far conclude that
Nagios
> > may be fine if you have to monitor mainly Linux or *BSD
boxes.
> > But getting things working on the commercial Unices if you
don't
> > have development systems with full featured compiler suites
you
> > end up in the usual debugging nightmare.
> > 
> > Any help would be highly appreciated.
> > 
> > 
> > 
> > -------------------------------------------------------
> > This SF.Net email is sponsored by the 'Do More With Dual!' 
> webinar happening
> > July 14 at 8am PDT/11am EDT. We invite you to explore the 
> latest in dual
> > core and dual graphics technology at this free one hour 
> event hosted by HP, 
> > AMD, and NVIDIA.  To register visit
http://www.hp.com/go/dualwebinar
> > _______________________________________________
> > Nagiosplug-help mailing list
> > Nagiosplug-help at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/nagiosplug-help
> > ::: Please include plugins version (-v) and OS when 
> reporting any issue. 
> > ::: Messages without supporting info will risk being sent 
> to /dev/null
> > 
> 
> -- 
> Andreas Ericsson                   andreas.ericsson at op5.se
> OP5 AB                             www.op5.se
> Lead Developer
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by the 'Do More With Dual!' 
> webinar happening
> July 14 at 8am PDT/11am EDT. We invite you to explore the 
> latest in dual
> core and dual graphics technology at this free one hour event 
> hosted by HP, 
> AMD, and NVIDIA.  To register visit
http://www.hp.com/go/dualwebinar
> _______________________________________________
> Nagiosplug-help mailing list
> Nagiosplug-help at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nagiosplug-help
> ::: Please include plugins version (-v) and OS when reporting 
> any issue. 
> ::: Messages without supporting info will risk being sent to
/dev/null
> 




More information about the Help mailing list