packages: nagios-ocpd/nagios-ocpd.spec, nagios-ocpd/ocpd.init, nagios-ocpd/...
glen
glen at pld-linux.org
Tue Jun 26 11:22:07 CEST 2012
Author: glen Date: Tue Jun 26 09:22:07 2012 GMT
Module: packages Tag: HEAD
---- Log message:
- v1.1: support nsca 2.9 multiline
---- Files affected:
packages/nagios-ocpd:
nagios-ocpd.spec (1.4 -> 1.5) , ocpd.init (1.5 -> 1.6) , ocpd.pl (1.4 -> 1.5)
---- Diffs:
================================================================
Index: packages/nagios-ocpd/nagios-ocpd.spec
diff -u packages/nagios-ocpd/nagios-ocpd.spec:1.4 packages/nagios-ocpd/nagios-ocpd.spec:1.5
--- packages/nagios-ocpd/nagios-ocpd.spec:1.4 Tue Jun 26 10:51:25 2012
+++ packages/nagios-ocpd/nagios-ocpd.spec Tue Jun 26 11:22:01 2012
@@ -2,7 +2,7 @@
%include /usr/lib/rpm/macros.perl
Summary: Obsessive Compulsive Host/Service Processor Daemon for Nagios
Name: nagios-ocpd
-Version: 1.0
+Version: 1.1
Release: 1
License: GPL v2+
Group: Networking/Daemons
@@ -39,8 +39,7 @@
%prep
%setup -qcT
install -p %{SOURCE0} .
-cp -a %{SOURCE1} .
-%{__sed} -i -e 's,/usr/local/nagios/bin/send_nsca,/usr/sbin/send_nsca,' ocpd.pl
+cp -p %{SOURCE1} .
%build
%{__perl} -c ocpd.pl
@@ -49,6 +48,7 @@
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT{%{_libdir},%{_spooldir},/etc/rc.d/init.d}
install -p ocpd.pl $RPM_BUILD_ROOT%{_libdir}/ocpd
+%{__sed} -i -e 's,/usr/local/nagios/bin/send_nsca,/usr/sbin/send_nsca,' $RPM_BUILD_ROOT%{_libdir}/ocpd
touch $RPM_BUILD_ROOT%{_spooldir}/host-perfdata.fifo
touch $RPM_BUILD_ROOT%{_spooldir}/service-perfdata.fifo
install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
@@ -87,6 +87,9 @@
All persons listed below can be reached at <cvs_login>@pld-linux.org
$Log$
+Revision 1.5 2012/06/26 09:22:01 glen
+- v1.1: support nsca 2.9 multiline
+
Revision 1.4 2012/06/26 08:51:25 glen
- default send_nsca path
================================================================
Index: packages/nagios-ocpd/ocpd.init
diff -u packages/nagios-ocpd/ocpd.init:1.5 packages/nagios-ocpd/ocpd.init:1.6
--- packages/nagios-ocpd/ocpd.init:1.5 Mon Oct 12 17:23:11 2009
+++ packages/nagios-ocpd/ocpd.init Tue Jun 26 11:22:01 2012
@@ -165,6 +165,8 @@
local nsca_host=$(awk '!/#/ { print }' $nsca_central_file)
local hostfifo=$(awk -F= '/^host_perfdata_file=/{print $2}' $nagios_cfg)
local servicefifo=$(awk -F= '/^service_perfdata_file=/{print $2}' $nagios_cfg)
+ local nsca_version=$($nsca | awk '/^NSCA Client/{ split($NF, v, /\./); printf("%d.%d\n", v[1], v[2]) }')
+ local nsca_multiline=$(awk -vv=$nsca_version 'BEGIN { if (v >= 2.9) print "-M" }')
if [ ! -p "$hostfifo" ]; then
mkfifo -m 600 "$hostfifo"
@@ -177,7 +179,7 @@
# XXX daemon() can't do --user and --fork without start-stop-daemon
export RC_LOGGING=no
- daemon --user nagios --fork /usr/lib/nagios/ocpd -f $hostfifo,$servicefifo -n $nsca -H $nsca_host -c $nsca_cfg -r 1
+ daemon --user nagios --fork /usr/lib/nagios/ocpd -f $hostfifo,$servicefifo -n $nsca -H $nsca_host -c $nsca_cfg -r 1 $nsca_multiline
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/nagios-ocpd
@@ -190,12 +192,16 @@
local nsca_host=$(awk '!/#/ { print }' $nsca_central_file)
local hostfifo=$(awk -F= '/^host_perfdata_file=/{print $2}' $nagios_cfg)
local servicefifo=$(awk -F= '/^service_perfdata_file=/{print $2}' $nagios_cfg)
+ local nsca_version=$($nsca | awk '/^NSCA Client/{ split($NF, v, /\./); printf("%d.%d\n", v[1], v[2]) }')
+ local nsca_multiline=$(awk -vv=$nsca_version 'BEGIN { if (v >= 2.9) print "-M" }')
echo "Host fifo: $hostfifo"
echo "Service FIFO: $servicefifo"
echo "send_nsca: $nsca"
echo "NSCA Host: $nsca_host"
echo "send_nsca config: $nsca_cfg"
+ echo "NSCA version: $nsca_version"
+ echo "NSCA multiline: $([ "$nsca_multiline" = "-M" ] && echo yes || echo no)"
}
stop() {
================================================================
Index: packages/nagios-ocpd/ocpd.pl
diff -u packages/nagios-ocpd/ocpd.pl:1.4 packages/nagios-ocpd/ocpd.pl:1.5
--- packages/nagios-ocpd/ocpd.pl:1.4 Tue Jun 26 11:05:01 2012
+++ packages/nagios-ocpd/ocpd.pl Tue Jun 26 11:22:01 2012
@@ -4,6 +4,7 @@
# Copyright (C) 2007 Thomas Guyot-Sionnest <tguyot at gmail.com>
# Original code Copyright (C) 2006, 2007 Mark Steele
# http://www.control-alt-del.org/code
+# Copyright (C) 2009-2012 Elan Ruusamäe <glen at delfi.ee>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -24,12 +25,12 @@
use POSIX;
use strict;
use warnings;
-use vars qw($PROGNAME $VERSION $READ_SIZE $MAX_LINE_LENGTH $CHILD_TIMEOUT %args);
+use vars qw($PROGNAME $VERSION $READ_SIZE $MAX_LINE_LENGTH $CHILD_TIMEOUT $RESULT_SEPARATOR %args);
#####################################################################
#
$PROGNAME = 'OCP_daemon';
-$VERSION = '1.0rc4';
+$VERSION = '1.1';
#
# Try to get that much data each read. Normally a named pipe
# can't hold more that 4096 bytes.
@@ -42,12 +43,19 @@
# updates on a very slow network you'll likely want to increase this.
$CHILD_TIMEOUT = 60;
#
+#
+# nsca 2.9 wants different result separator:
+# When submitting multiple simultaneous results, separate each set with the ETB
+# character (^W or 0x17)
+# use -M (multiline) argument to switch to 2.9 behaviour
+$RESULT_SEPARATOR = "";
+
#####################################################################
# Ignore HUPs in case we've been lazily started from the shell
$SIG{HUP} = 'IGNORE';
-getopts("f:n:H:p:t:c:r:m:l:h", \%args);
+getopts("f:n:H:p:t:c:r:m:Ml:h", \%args);
# Print usage if missing options or -h
if (!$args{'f'} || !$args{'H'} || $args{'h'}) {
@@ -63,6 +71,7 @@
my $reaper_delay = $args{'r'} || 1;
my $max_queue = $args{'m'} || 0;
my $log_file = $args{'l'} || undef;
+$RESULT_SEPARATOR = "\x17" if $args{'M'};
# Construct send_nsca command
my $nsca = $args{'n'} || '/usr/local/nagios/bin/send_nsca';
@@ -187,7 +196,7 @@
# Be safe here...
$data .= $buf;
while (my $marker = index ($data, "\n") + 1) {
- push (@queue, substr ($data, 0, $marker));
+ push (@queue, substr ($data, 0, $marker). $RESULT_SEPARATOR);
$data = substr ($data, $marker);
if ($max_queue && $max_queue <= @queue) {
@@ -234,6 +243,8 @@
print " -m <slots>\tMax queue size if reaper_delay is greater than 0\n";
print "\t\tA flush will be forced if the queue reach this size\n\n";
+
+ print " -M\t\tSwitch to multiline processing. Needs nsca 2.9\n";
exit 1;
}
================================================================
---- CVS-web:
http://cvs.pld-linux.org/packages/nagios-ocpd/nagios-ocpd.spec?r1=1.4&r2=1.5
http://cvs.pld-linux.org/packages/nagios-ocpd/ocpd.init?r1=1.5&r2=1.6
http://cvs.pld-linux.org/packages/nagios-ocpd/ocpd.pl?r1=1.4&r2=1.5
More information about the pld-cvs-commit
mailing list