[Nagios-users] Nagios 3.0b5 - ePN and perl caching [SEC=UNCLASSIFIED]

Larry Low llow at telesphere.com
Tue Oct 16 18:00:12 CEST 2007


I am posting this to the devel list to see if anyone has any answers.

I look through the code and I don't see how the package that is created for
the plugin is being uncached when the mtime changes.  Can someone point me
in the code where this is taking place.  The problem I am having is
definitely being caused by the package not being removed from memory.

Running perl 5.8.8

----
Larry Low
4150 N Drinkwater Blvd., 5th Floor
Scottsdale, AZ  85251
Office: 480.385.7045
E-mail: llow at telesphere.com'

Telesphere Networks, Inc


-----Original Message-----
From: nagios-users-bounces at lists.sourceforge.net
[mailto:nagios-users-bounces at lists.sourceforge.net] On Behalf Of Larry Low
Sent: Friday, October 12, 2007 10:56 AM
To: nagios-users at lists.sourceforge.net
Subject: Re: [Nagios-users] Nagios 3.0b5 - ePN and perl caching
[SEC=UNCLASSIFIED]

I guess the question is how to unload the perl package that the plugin is
wrapped in.

----
Larry Low
4150 N Drinkwater Blvd., 5th Floor
Scottsdale, AZ  85251
E-mail: llow at telesphere.com'

Telesphere Networks, Inc


-----Original Message-----
From: nagios-users-bounces at lists.sourceforge.net
[mailto:nagios-users-bounces at lists.sourceforge.net] On Behalf Of Larry Low
Sent: Friday, October 12, 2007 10:44 AM
To: nagios-users at lists.sourceforge.net
Subject: Re: [Nagios-users] Nagios 3.0b5 - ePN and perl caching
[SEC=UNCLASSIFIED]

I had been compiling without perl cache so that would explain why $delete
was being set to 1.  The problem must be in getting rid of the old cached
script.  I am digging deeper.

----
Larry Low
4150 N Drinkwater Blvd., 5th Floor
Scottsdale, AZ  85251
E-mail: llow at telesphere.com'

Telesphere Networks, Inc


-----Original Message-----
From: nagios-users-bounces at lists.sourceforge.net
[mailto:nagios-users-bounces at lists.sourceforge.net] On Behalf Of Larry Low
Sent: Friday, October 12, 2007 10:13 AM
To: nagios-users at lists.sourceforge.net
Subject: Re: [Nagios-users] Nagios 3.0b5 - ePN and perl caching
[SEC=UNCLASSIFIED]

Thanks Stanley,

Using my check_ifoperstatus script.  Available from
http://www.nagiosexchange.org/Networking.53.0.html?&tx_netnagext_pi1[p_view]
=1099

I've done a few minutes of debugging and the first problem I see is the
MTIME is
not being populated.  Here is my epn_leave-msgs.log.  I added
        print LH "$filename - $mtime = ".$Cache{$filename}[MTIME]."\n";
        while (my ($key,$value) = each %Cache) {
                foreach (@$value) {
                        print LH "$key - $_\n";
                }
        }
right before it compares mtime and you will see below that MTIME is not
populated.

I also added a couple logs where MTIME is supposed to be set.
print LH "$mtime ";
        $Cache{$filename}[MTIME]                = $mtime
                                                        unless $delete ;
print LH $Cache{$filename}[MTIME]."\n";

You will see below that $mtime is fine but $Cache{$filename}[MTIME] is not.

I changed
        $Cache{$filename}[MTIME]                = $mtime
                                                        unless $delete ;
to
        $Cache{$filename}[MTIME]                = $mtime;
and the problem goes away.

I tested for $delete and it is being set to 1 every time.  What is calling
eval_file?  Is this from the nagios core?

************** epn_leave-msgs.log
/opt/nagios/libexec/check_ifoperstatus.pl - 2.96796296296296 = 
2.96796296296296 
Fri Oct 12 10:00:29 2007 eval_file: successfully compiled
"/opt/nagios/libexec/check_ifoperstatus.pl -H XXXX -C XXXX -k 0 -I -N
Gi0/0 --cacti_database=cacti_2 --cacti_password=XXXX".
Fri Oct 12 10:00:29 2007 run_package:
"/opt/nagios/libexec/check_ifoperstatus.pl
-H XXXX -C XXXX -k 0 -I -N Gi0/0 --cacti_database=cacti_2
--cacti_password=XXXX" returning (0, "OK - Interface 'Gi0/0' is
'up(1)' -  (index 1)").

/opt/nagios/libexec/check_ifoperstatus.pl - 2.96796296296296 = 
/opt/nagios/libexec/check_ifoperstatus.pl - 
/opt/nagios/libexec/check_ifoperstatus.pl - HASH(0x9267264)
/opt/nagios/libexec/check_ifoperstatus.pl - 
/opt/nagios/libexec/check_ifoperstatus.pl - CODE(0x9276778)
2.96796296296296 
Fri Oct 12 10:00:59 2007 eval_file: syntax error in
/opt/nagios/libexec/check_ifoperstatus.pl: "Subroutine print_help redefined
at
(eval 9) line 295,".
**************

<Stanley.Hopcroft <at> Dest.gov.au> writes:

> 
> Dear Larry, 
> 
> There are debugging hooks in p1.pl that would be useful to enable. 
> 
> If you are interested in helping deal with this problem please would you
> 
> 1 Back up your original copy of p1.pl (path is specified in nagios.cfg
> IIRC) 
> 
> 2 Change the DEBUG_LEVEL to 
> 
> use constant  DEBUG_LEVEL             => LEAVE_MSG | CACHE_DUMP ; 
> 
> 3 Change the DEBUG_LOG_PATH to something appropriate for your system eg 
> 
> use constant    DEBUG_LOG_PATH => '/tmp/' ; 
> 
> 4 Make p1.pl still compiles (perl -c p1.pl should be nag free; $? == 0) 
> 
> 5 Restart Nagios 
> 
> (IIRC, all this is documented in POD format in p1.pl, so perldoc p1.pl
> should show 
> 
> ... blah blah 
> 
>       Extra logging is given by setting DEBUG_LEVEL to include 
> 
>        LEAVE_MSG 
> 
>        1 opens an extra output stream in the path given by the value of 
>        DEBUG_LOG_PATH 
> 
>        2 logs messages describing the success or otherwise of the plugin
> com- 
>        pilation and the result of the plugin run. 
> 
>        An example of such messages are 
> 
>         Fri Apr 22 11:54:21 2005 eval_file: successfully compiled
> "/usr/local/nagios/libexec/check_bass ". 
>         Fri Apr 22 11:54:21 2005 run_package:
> "/usr/local/nagios/libexec/check_bass " returning ("0", "BASS
> Transaction completed Ok.
> 
>         "). 
>         Fri Apr 22 11:55:02 2005 eval_file: successfully compiled
> "/usr/local/nagios/libexec/check_ad -D production.prod -S".
> 
>         Fri Apr 22 11:55:02 2005 run_package:
> "/usr/local/nagios/libexec/check_ad -D foo.dom -S" returning ("0", "Ok.
> Expected 2 domain controllers [foo1 foo2] for "foo.dom.prod" domain from
> "1.1.2.3" DNS, found 8 [foo1 foo2 ..]
> 
>         "). 
> 
> .. blah blah 
> ) 
> 
> In my case I see 
> 
> [root <at> acisp057 bin]# perl -c p1.pl 
> p1.pl syntax OK 
> [root <at> acisp057 bin]# diff -c p1.pl.orig p1.pl 
> *** p1.pl.orig  2007-10-12 14:09:24.000000000 +1000 
> --- p1.pl       2007-10-12 14:09:56.000000000 +1000 
> *************** 
> *** 10,22 **** 
>   use constant  CACHE_DUMP              => 2 ; 
>   use constant  PLUGIN_DUMP             => 4 ; 
> 
> ! use constant  DEBUG_LEVEL             => 0 ; 
>   # use constant        DEBUG_LEVEL             => CACHE_DUMP ; 
>   # use constant        DEBUG_LEVEL             => LEAVE_MSG ; 
> ! # use constant        DEBUG_LEVEL             => LEAVE_MSG |
> CACHE_DUMP ; 
>   # use constant        DEBUG_LEVEL             => LEAVE_MSG |
> CACHE_DUMP | PLUGIN_DUMP ; 
> 
> ! use constant  DEBUG_LOG_PATH          => '/usr/local/nagios/var/' ; 
>   # use constant        DEBUG_LOG_PATH          => './' ; 
>   use constant  LEAVE_MSG_STREAM        => DEBUG_LOG_PATH .
> 'epn_leave-msgs.log' ; 
>   use constant  CACHE_DUMP_STREAM       => DEBUG_LOG_PATH .
> 'epn_cache-dump.log' ; 
> --- 10,22 ---- 
>   use constant  CACHE_DUMP              => 2 ; 
>   use constant  PLUGIN_DUMP             => 4 ; 
> 
> ! # use constant        DEBUG_LEVEL             => 0 ; 
>   # use constant        DEBUG_LEVEL             => CACHE_DUMP ; 
>   # use constant        DEBUG_LEVEL             => LEAVE_MSG ; 
> ! use constant  DEBUG_LEVEL             => LEAVE_MSG | CACHE_DUMP ; 
>   # use constant        DEBUG_LEVEL             => LEAVE_MSG |
> CACHE_DUMP | PLUGIN_DUMP ; 
> 
> ! use constant  DEBUG_LOG_PATH          => '/tmp/' ; 
>   # use constant        DEBUG_LOG_PATH          => './' ; 
>   use constant  LEAVE_MSG_STREAM        => DEBUG_LOG_PATH .
> 'epn_leave-msgs.log' ; 
>   use constant  CACHE_DUMP_STREAM       => DEBUG_LOG_PATH .
> 'epn_cache-dump.log' ; 
> 
> and 
> 
> [root <at> acisp057 nagios]# more /tmp/epn_leave-msgs.log 
> Fri Oct 12 14:17:08 2007 eval_file: successfully compiled
> "/usr/lib/nagios/plugins/check_sysUpTime -R 10.208.1.254". 
> Fri Oct 12 14:17:08 2007 run_package:
> "/usr/lib/nagios/plugins/check_sysUpTime -R 10.208.1.254" returning (0,
> "sysUpTime of router 1
> 
> 0.208.1.254 is 231 days, 18:14:31.55"). 
> Fri Oct 12 14:17:17 2007 eval_file:
> /usr/lib/nagios/plugins/check_sysUpTime already successfully compiled
> and file has not changed; 
> 
> skipping compilation. 
> Fri Oct 12 14:17:17 2007 run_package:
> "/usr/lib/nagios/plugins/check_sysUpTime -R 10.36.103.254" returning (0,
> "sysUpTime of router 
> 
> 10.36.103.254 is 269 days, 00:03:26.48"). 
> Fri Oct 12 14:17:22 2007 eval_file: successfully compiled
> "/usr/lib/nagios/plugins/check_backuplinks -N "BRUSW200"". 
> Fri Oct 12 14:17:22 2007 run_package:
> "/usr/lib/nagios/plugins/check_backuplinks -N "BRUSW200"" returning (0,
> "Ok. All links from br
> 
> usw200/10.0.254.167 to mtasw200 via Etherchannel  _are_ in "up"
> operational status. Redundant topology Ok."). 
> [root <at> acisp057 nagios]# 
> 
> Unfortch, although the log stream should be unbuffered, it wasn't being
> flushed while Nag was running. I had to restart Nag again to
> 
> get the messages flushed (when I changed the path for the log messages).
> 
> You prob should ensure that the problem plugin is scheduled frequently
> (eg each 5 mins) and let it run for about 5 check periods.
> 
> Please post the results to the list. 
> 
> Thank you, 
> 
> Yours sincerely. 
> 
> Stanley Hopcroft 
> 
> Data Communications 
> 
> 02 6211 6110 
> 0412 766 832 
> 
> Classification: UNCLASSIFIED
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems?  Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >> http://get.splunk.com/
> _______________________________________________
> Nagios-users mailing list
> Nagios-users <at> lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nagios-users
> ::: Please include Nagios version, plugin version (-v) and OS when
reporting
any issue. 
> ::: Messages without supporting info will risk being sent to /dev/null
> 
> 




-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Nagios-users mailing list
Nagios-users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting
any issue. 
::: Messages without supporting info will risk being sent to /dev/null


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Nagios-users mailing list
Nagios-users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting
any issue. 
::: Messages without supporting info will risk being sent to /dev/null


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Nagios-users mailing list
Nagios-users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting
any issue. 
::: Messages without supporting info will risk being sent to /dev/null


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/




More information about the Users mailing list