<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7650.28">
<TITLE>Piped OCHP/OCSP daemon</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>Hi list, hi Ethan,<BR>
<BR>
Here's what I came up with. This is a perl daemon that use Eventlib and Event::Lib. A lot of code comes from a perl daemon for processing performance data I talked about in another (or the same?) thread. You can find the original daemon here: <A HREF="http://www.control-alt-del.org/code/NPDaemon/">http://www.control-alt-del.org/code/NPDaemon/</A>.<BR>
<BR>
Since I do not use OCHP/OCSP yet and I haven't had time to set up a test environment, this is untested (actually I tested every single part, not the whole thing).<BR>
<BR>
############################################################<BR>
<BR>
Piped OCHP/OCSP daemon Mini-HOWTO (Pre-Alpha!)<BR>
<BR>
############################################################<BR>
<BR>
1. Introduction<BR>
<BR>
This document is a mini howto describing how to use Nagios's ability to write host / service data to a FIFO to build a very fast OCHP/OCSP processing system.<BR>
<BR>
2. Copyright<BR>
<BR>
GPL<BR>
<BR>
3. Requirement<BR>
<BR>
- A few properly setup Nagios boxes<BR>
- NSCA working<BR>
- Libevent<BR>
- Perl 5.8.6+ with Event::Lib<BR>
- You, the reader<BR>
<BR>
4. Nagios setup<BR>
<BR>
The Main nagios config file will require the following additional config<BR>
<BR>
process_performance_data=1<BR>
<BR>
host_perfdata_file=/path/to/host-perfdata.fifo<BR>
service_perfdata_file=/path/to/service-perfdata.fifo<BR>
<BR>
host_perfdata_file_template=$HOSTNAME$\t$HOSTSTATEID$\t$HOSTOUTPUT$|$HOSTPERFDATA$<BR>
service_perfdata_file_template=$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATEID$\t$SERVICEOUTPUT$|$SERVICEPERFDATA$<BR>
<BR>
host_perfdata_file_mode=w<BR>
service_perfdata_file_mode=w<BR>
<BR>
host_perfdata_file_processing_interval=0<BR>
service_perfdata_file_processing_interval=0<BR>
<BR>
5. Filesystem setup<BR>
<BR>
Create FIFOs according to the paths you used for "host_perfdata_file" and "service_perfdata_file" Nagios config<BR>
<BR>
6. Daemon Setup<BR>
<BR>
I recommend running this daemon under Daemontools (<A HREF="http://cr.yp.to/daemontools.html">http://cr.yp.to/daemontools.html</A>). The run script would look like this:<BR>
<BR>
-----<BR>
#!/bin/sh<BR>
exec > /dev/null<BR>
exec 2>&1<BR>
exec /usr/sbin/OCSP_daemon.pl -some_args<BR>
-----<BR>
<BR>
Critical errors will be printed out to stderr (in the example above they are discarded).<BR>
<BR>
Run the daemon alone or with "-h" to print the usage. You can have the daemon send data as fast as possible or at given intervals. If opting for intervals, you can also have it flush the data if the queue reach a certain size (the timer will also be reset).<BR>
<BR>
OCSP_daemon.pl and OCHP_daemon.pl are the same minus the name change. TODO: Test if Nagios can be configured to write both host and service data to the same pipe. Will it work?<BR>
<BR>
7. Comments?<BR>
<BR>
Please send them to dermoth@aei.ca (me)<BR>
<BR>
############################################################<BR>
<BR>
Thomas<BR>
<BR>
-----Original Message-----<BR>
From: nagios-devel-bounces@lists.sourceforge.net on behalf of Ethan Galstad<BR>
Sent: Thu 22-Feb-07 14:33<BR>
To: Gerd Mueller; Nagios Developers List<BR>
Subject: Re: [Nagios-devel] NSCA using PROCESS_FILE<BR>
<BR>
Any takers (Thomas?) on writing a HOWTO on doing this?  I was going to<BR>
write up some documentation on doing bulk transfers with NSCA and using<BR>
the perfdata files for data output.  Since I'm busy with Nagios 3 docs,<BR>
this will have to wait a week or so.<BR>
<BR>
If someone wants to write a HOWTO first, I'll ship them an<BR>
as-yet-unreleased new Nagios t-shirt that is sure to get me and anyone<BR>
who wears it in trouble with the NSA or the Department of Homeland<BR>
Security. :-)<BR>
<BR>
Here's what I was going to writeup:<BR>
<BR>
1. Use perfdata file to write passive check information to a file in the<BR>
format used by send_nsca<BR>
<BR>
2. Rotate the perfdata file every 60 seconds<BR>
<BR>
3. A cron job runs every minute and pipes the rotated perfdata file to<BR>
the send_nsca client.<BR>
<BR>
Bam - bulk data transfer at 60 second intervals.  This should help on<BR>
both the central and distributed servers.  A better performance increase<BR>
will happen when the NSCA daemon uses the PROCESS_FILE command when it<BR>
receives bulk results from the send_nsca clients.<BR>
<BR>
<BR>
Gerd Mueller wrote:<BR>
> We are already using ocsp sweeper from nagiosexchange. (at Ton: we need ochp as well) This improves the performce. but we still have latencies upto 100 sec. :( So I would call this just a workaround.<BR>
><BR>
> Gerd<BR>
> -- Ursprüngl. Mitteil. --<BR>
> Betreff:      Re: [Nagios-devel] NSCA using PROCESS_FILE<BR>
> Von:  "Thomas Guyot-Sionnest" <Thomas@zango.com><BR>
> Datum:                22.02.2007 18:54<BR>
><BR>
> If I were you I'd use Nagios ability to write performance data to a<BR>
> file/pipe for ohcp/oscp functionality.<BR>
><BR>
> Send the data to a pipe and have a Perl (Or anything else you want) daemon<BR>
> read that pipe and spawn send_nsca processes. One good thing with that also<BR>
> is that you could send batch updates since send_nsca can receive multiple<BR>
> results in a single run.<BR>
><BR>
> Thomas<BR>
><BR>
>> -----Original Message-----<BR>
>> From: nagios-devel-bounces@lists.sourceforge.net<BR>
>> [<A HREF="mailto:nagios-devel-bounces@lists.sourceforge.net">mailto:nagios-devel-bounces@lists.sourceforge.net</A>] On Behalf<BR>
>> Of Gerd Mueller<BR>
>> Sent: February 22, 2007 10:56<BR>
>> To: Nagios Developers List<BR>
>> Subject: Re: [Nagios-devel] NSCA using PROCESS_FILE<BR>
>><BR>
>><BR>
>> Am Dienstag, den 20.02.2007, 08:48 -0600 schrieb Ethan Galstad:<BR>
>>> Gerd Mueller wrote:<BR>
>>>> Hi list!<BR>
>>>><BR>
>>>> Is there a nsca which supports already the Nagios3<BR>
>> external command<BR>
>>>> PROCESS_FILE? Or any suggestions how to use PROCESS_FILE for<BR>
>>>> inter-Nagios-communication with ohcp/oscp?<BR>
>>>><BR>
>>>> Cheers,<BR>
>>>><BR>
>>>> Gerd <BR>
>>> NSCA hasn't been modified to use the new PROCESS_FILE<BR>
>> command, but I'll<BR>
>>> start working on that in the next few weeks.  Right now I'm<BR>
>>> concentrating on documentation.<BR>
>> I really need this new nsca feature. Inter-master-slaves communication<BR>
>> in our test environment (about 3000 hosts and livesystem will<BR>
>> have much<BR>
>> more hosts) via nsca causes the slaves' latency to grow massiv (up to<BR>
>> hours!). Whereas a slave with same hardware and same amount of checks<BR>
>> but without any ocsp/ochp does nearly nothing (latency < 1sec.!).<BR>
>><BR>
>> I think the major bottleneck - the serial execution of ocsp/ochp still<BR>
>> exists in Nagios3. So Ton's comment on this<BR>
>> (<A HREF="http://altinity.blogs.com/dotorg/2006/11/caching_nsca_da.html">http://altinity.blogs.com/dotorg/2006/11/caching_nsca_da.html</A>)  is<BR>
>> still true. <BR>
>><BR>
>> I expect the new PROCESS_FILE option to avoid this bottleneck. The new<BR>
>> nsca client has to be fast enough without any slowing down the slave<BR>
>> itself while reading and caching. But I really would appreciate if the<BR>
>> main cause of the problem - the ocsp/ohcp executions - could be<BR>
>> deserialized.<BR>
>><BR>
>> Let me now if I can support the development with testing, coding, ...<BR>
>><BR>
>> Gerd<BR>
>><BR>
<BR>
<BR>
<BR>
Ethan Galstad,<BR>
Nagios Developer<BR>
---<BR>
Email: nagios@nagios.org<BR>
Website: <A HREF="http://www.nagios.org">http://www.nagios.org</A><BR>
<BR>
-------------------------------------------------------------------------<BR>
Take Surveys. Earn Cash. Influence the Future of IT<BR>
Join SourceForge.net's Techsay panel and you'll get the chance to share your<BR>
opinions on IT & business topics through brief surveys-and earn cash<BR>
<A HREF="http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV">http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV</A><BR>
_______________________________________________<BR>
Nagios-devel mailing list<BR>
Nagios-devel@lists.sourceforge.net<BR>
<A HREF="https://lists.sourceforge.net/lists/listinfo/nagios-devel">https://lists.sourceforge.net/lists/listinfo/nagios-devel</A><BR>
<BR>
<BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>