<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1226" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hi,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I have had installed nagios on my net{work} and now
I would like to report a little about this operation.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2><STRONG>1) Using --enable-embedded-perl on the
configure script</STRONG></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I really donīt have time to see what was happening,
but I collect some information to send to you. I attached some files here to
demonstrate what I did and what error I got trying to use nagios after I
compiled it with --enable-embedded-perl.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I used output redirect to create the
files.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>[root@axeh nagios-source-1.1]# ./configure
--prefix=/tools/nagios/bin-1.1 --with-gd --enable-embedded-perl
--with-nagios-user=nagios --with-nagios-grp=nagios 1> configure.out 2>
configure.err</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>[root@axeh nagios-source-1.1]# make all 1>
make.out 2> make.err</FONT></DIV>
<DIV><FONT face=Arial size=2>[root@axeh nagios-source-1.1]# make install 1>
make.install.out 2>make.install.err</FONT></DIV>
<DIV><FONT face=Arial size=2># this is where I installed<BR></FONT><FONT
face=Arial size=2>[root@axeh nagios-source-1.1]# cd ../bin-1.1/<BR>[root@axeh
bin-1.1]# ldd bin/nagios<BR>
libperl.so => /usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libperl.so
(0x40014000)<BR> libnsl.so.1 =>
/lib/libnsl.so.1 (0x40145000)<BR>
libdl.so.2 => /lib/libdl.so.2
(0x4015b000)<BR> libm.so.6 =>
/lib/i686/libm.so.6 (0x4015e000)<BR>
libpthread.so.0 => /lib/i686/libpthread.so.0
(0x40180000)<BR> libc.so.6 =>
/lib/i686/libc.so.6 (0x42000000)<BR>
libcrypt.so.1 => /lib/libcrypt.so.1
(0x401d0000)<BR> libutil.so.1 =>
/lib/libutil.so.1 (0x401fe000)<BR>
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)</FONT></DIV>
<DIV><FONT face=Arial size=2>[root@axeh bin-1.1]# bin/nagios<BR>Segmentation
fault<BR>[root@axeh bin-1.1]# bin/nagios -v<BR>Segmentation fault<BR>[root@axeh
bin-1.1]# gdb bin/nagios<BR>GNU gdb Red Hat Linux (5.2.1-4)<BR>Copyright 2002
Free Software Foundation, Inc.<BR>GDB is free software, covered by the GNU
General Public License, and you are<BR>welcome to change it and/or distribute
copies of it under certain conditions.<BR>Type "show copying" to see the
conditions.<BR>There is absolutely no warranty for GDB. Type "show
warranty" for details.<BR>This GDB was configured as "i386-redhat-linux"...(no
debugging symbols found)...<BR>(gdb) run<BR>Starting program:
/tools/nagios/bin-1.1/bin/nagios<BR>[New Thread 16384 (LWP 4892)]</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Program received signal SIGSEGV, Segmentation
fault.<BR>[Switching to Thread 16384 (LWP 4892)]<BR>Perl_PerlIO_stdout
(my_perl=0x0) at perlio.c:4370<BR>4370 perlio.c: No such file
or directory.<BR> in perlio.c<BR>(gdb)
quit<BR>The program is running. Exit anyway? (y or n) y</FONT></DIV>
<DIV><FONT face=Arial size=2>[root@axeh bin-1.1]#<BR></DIV></FONT>
<DIV><FONT face=Arial size=2>So, I donīt have any idea on what is going
on.<BR></DIV></FONT>
<DIV><FONT face=Arial size=2>This is a RedHat 8.0 on a Intel machine with perl
5.8 (default instalation of perl package)</DIV>
<DIV><BR></DIV></FONT>
<DIV><FONT face=Arial size=2><STRONG>2) Using --with-file-perfdata on the
configure script</STRONG></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Trying to use nagios configured
with --with-file-perfdata I have no $USER?$ macros more than $USER1$.
I noticed that when I was using $USER2$ variable</FONT></DIV>
<DIV><FONT face=Arial size=2>to set a password to access a webserver using
check_http. <FONT face=Arial size=2>I did this test only one time and I got this
behaviour, so I recompiled nagios without this option and everythink is ok
now.</FONT></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>the configure line I used was: ./configure
--prefix=/tools/nagios/bin-1.1 --with-gd --with-nagios-user=nagios
--with-nagios-grp=nagios --with-file-perfdata</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2><STRONG>3) Tests on passive
checks.</STRONG></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I tested passive checks on Nagios and I had this
problem:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>host: test</FONT></DIV>
<DIV><FONT face=Arial size=2>service: procs</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I configured nagios to accept passive checks on
service 'procs' of host 'test'. I used (by force) the check_command called
dummy, this is configured on the checkcommand.cfg file to run check_dummy
with parameter 2 (return critical state, you will
understand...) command . So, when freshness limit exceeds to this service,
the </FONT><FONT face=Arial size=2>check command 'dummy' runs and change the
state of this service to 'critical' (that is why i used 2 on the parameter
line). Well. this is my point. At this time If the host that send
information that this service is CRITICAL to nagios, Nagios dont alarm. This is
a change of CRITICAL to CRITICAL state. Is there any parameter that start
the notice procedure on nagios?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>If yes, I will be gratefull.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2><STRONG>4) Mr Ethan, I looked at the FAQ section on
nagios website and I read this:</STRONG></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>---------------------</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>From </FONT><FONT face=Arial size=2><A
href="http://www.nagios.org/upcoming.php">http://www.nagios.org/upcoming.php</A></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV>Parallelized/Smarter Host Checks </DIV>
<DIV>
<P class=SectionBody>This feature could definitely be labeled as the "golden
goose that got way". In fact it *keeps* getting away, as I keep bumping it off
to be "implemented later". Its just not terribly important to me at the
moment... However, I refuse to get rid of the idea anytime soon. :-) </P>
<P class=SectionBody>The current host check logic isn't necessarily bad, its
just that it can be really slow if Nagios has to check many different "levels"
of parent/child hosts. If you look at the current code (and if you can
understand it) you'll see that Nagios waits for a host check to complete before
checking children or parents of that host. Obviously there is some major room
for improvement here. I would like to find a way to predict which parent/child
hosts are also going to need to be checked and launch those checks in parallel.
This has potential for major speed improvements in the host check code, so its
something I'll be looking into. However, its been on my mental drawing board for
quite some time without being implemented, so I'm not guaranteeing anything.
</P></DIV>
<DIV><FONT face=Arial
size=2>-----------------------------------------</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I agree with you. If Nagios has the ability to run
check_host_alive command in parallell I think this will be the Nagios Gold
Version :-) By the way, I used fping (<A
href="http://www.fping.com">www.fping.com</A>) instead of ping and I got a
better performance. I had to write a patch to check ping because it has an
arithmetic bug on it. This is the patch:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>this is for fping-2.2b2</FONT></DIV>
<DIV><FONT face=Arial size=2>---
/tmp/fping.c 2003-10-26
20:43:27.000000000 -0200<BR>+++ fping.c 2000-12-08
16:42:32.000000000 -0200<BR>@@ -895,22 +895,13
@@<BR> fprintf(stderr,
"\n");<BR> } else
{<BR> if (h->num_recv <=
h->num_sent)
{<BR>-
if(h->num_sent > 0) {<BR>
fprintf(stderr, " xmt/rcv/%%loss =
%d/%d/%d%%",<BR>
h->num_sent,
h->num_recv,<BR>
((h->num_sent - h->num_recv) * 100) /
h->num_sent);<BR>-
} else { fprintf (stderr," xmt/rcv/%%loss =
%d/%d/100%%",<BR>-
h->num_sent,
h->num_recv);<BR>-
}<BR> } else
{<BR>-
if(h->num_sent > 0) {<BR>
fprintf(stderr, " xmt/rcv/%%return =
%d/%d/%d%%",<BR>
h->num_sent,
h->num_recv,<BR>
((h->num_recv * 100) /
h->num_sent));<BR>-
} else { fprintf( stderr," xmt/rcv/%%return =
%d/%d/100%%",<BR>-
h->num_sent,
h->num_recv);<BR>-
}<BR>-<BR>
}<BR> if (h->num_recv)
{<BR> avg = h->total_time /
h->num_recv;<BR></FONT></DIV>
<DIV><FONT face=Arial size=2>That is.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Fabiano</FONT></DIV></BODY></HTML>