<!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>