remove link to broken package

OBS-URL: https://build.opensuse.org/package/show/server:monitoring/monitoring-plugins?expand=0&rev=4
This commit is contained in:
Lars Vogdt 2014-07-15 14:54:25 +00:00 committed by Git OBS Bridge
commit 1555f5b100
32 changed files with 5379 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

215
check_ircd_ssl Normal file
View File

@ -0,0 +1,215 @@
#! /usr/bin/perl -w
#
# Copyright (C) 2014, SUSE Linux Products GmbH, Nuremberg
# Author: Lars Vogdt
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# * Neither the name of the Novell nor the names of its contributors may be
# used to endorse or promote products derived from this software without
# specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
use Getopt::Long;
use IO::Socket::INET6;
use strict;
use vars qw($PROGNAME $VERSION);
use vars qw($opt_V $opt_h $opt_t $opt_p $opt_H $opt_w $opt_c $ssl $verbose);
use lib '/usr/lib/nagios/plugins';
use utils qw($TIMEOUT %ERRORS &print_revision &support &usage);
# ----------------------------------------------------[ Function Prototypes ]--
sub print_help ();
sub print_usage ();
# -------------------------------------------------------------[ Enviroment ]--
$ENV{PATH} = '';
$ENV{ENV} = '';
$ENV{BASH_ENV} = '';
# -----------------------------------------------------------------[ Global ]--
$PROGNAME = 'check_ircd';
$VERSION = '1.5.0';
my $nick = "ircd$$";
# -------------------------------------------------------------[ print_help ]--
sub print_help ()
{
print_revision($PROGNAME,$VERSION);
print "Copyright (c) 2014 SUSE Linux Products GmbH, Nuremberg
based on the original work of Richard Mayhew/Karl DeBisschop in 2000
Perl Check IRCD plugin for Nagios
";
print_usage();
print "
-H, --hostname=HOST
Name or IP address of host to check
-w, --warning=INTEGER
Number of connected users which generates a warning state (Default: 50)
-c, --critical=INTEGER
Number of connected users which generates a critical state (Default: 100)
-p, --port=INTEGER
Port that the ircd daemon is running on <host> (Default: 6667)
-v, --verbose
Print extra debugging information
-s, --ssl
Use SSL for connection (NOTE: might need '-p 6697' option)
";
}
# ------------------------------------------------------------[ print_usage ]--
sub print_usage () {
print "Usage: $PROGNAME -H <host> [-w <warn>] [-c <crit>] [-p <port>] [-s]\n";
}
# ------------------------------------------------------------------[ debug ]--
sub debug ($$)
{
my ($string,$verbose) = @_;
if ($verbose){
print STDOUT "DEBUG: $string";
}
}
# ----------------------------------------------------------------[ connect ]--
sub connection ($$$$$$) {
my ($server,$port,$ssl,$ping_timeout,$nick,$verbose) = @_;
my $user=-1;
debug("Attempting connect.\n",$verbose);
# Connect to server
debug("Connecting ...........\n",$verbose);
my $sock = IO::Socket::INET6->new( PeerAddr => $server,
PeerPort => $port,
Proto => 'tcp',
Domain => AF_UNSPEC ) or return ($user);
if($ssl) {
use IO::Socket::SSL;
debug("Starting SSL .........\n",$verbose);
IO::Socket::SSL->start_SSL( $sock,
SSL_verify_mode => 0, # Do not verify certificate
) or die "SSL handshake failed: $SSL_ERROR";
}
debug("Connected to server: $server on port: $port\n",$verbose);
# Set nick and username
debug("Sending user info ....\n",$verbose);
print $sock "NICK $nick\nUSER monitor localhost localhost : \n";
# Catch SIGALRM from the OS when timeout expired.
local $SIG{ALRM} = sub {$sock->shutdown(0);};
# Send all incomming data to the parser
while (<$sock>) {
alarm 0;
chomp($_);
if (/^PING \:(.+)/) {
debug("Received PING request, sending PONG :$1\n",$verbose);
print $sock "PONG :$1\n";
}
elsif (/\:I have\s+(\d+)/){
$user=$1;
last;
}
alarm $ping_timeout;
}
debug("Closing socket.\n",$verbose);
close $sock;
return $user;
}
# ------------------------------------------------------------[ check_users ]--
sub check_users ($$$){
my ($users,$crit,$warn)=@_;
$users =~ s/\ //g;
my ($state,$answer);
if ($users >= 0) {
if ($users > $crit) {
$state = "CRITICAL";
$answer = "Critical Number Of Clients Connected : $users (Limit = $crit)";
} elsif ($users > $warn) {
$state = "WARNING";
$answer = "Warning Number Of Clients Connected : $users (Limit = $warn)";
} else {
$state = "OK";
$answer = "IRCD ok - Current Local Users: $users";
}
$answer.="|users=$users;$warn;$crit;0\n";
} else {
$state = "UNKNOWN";
$answer = "Server has less than 0 users! Something is Really WRONG!\n";
}
return ($answer,$state)
}
# ===================================================================[ MAIN ]==
MAIN:
{
my $answer = 'IRCD UNKNOWN: Unknown error - maybe could not authenticate\n';
my $state = 'UNKOWN';
my $hostname;
Getopt::Long::Configure('bundling');
GetOptions
( "V" => \$opt_V, "version" => \$opt_V,
"h" => \$opt_h, "help" => \$opt_h,
"v" => \$verbose,"verbose" => \$verbose,
"s" => \$ssl, "ssl" => \$ssl,
"t=i" => \$opt_t, "timeout=i" => \$opt_t,
"w=i" => \$opt_w, "warning=i" => \$opt_w,
"c=i" => \$opt_c, "critical=i" => \$opt_c,
"p=i" => \$opt_p, "port=i" => \$opt_p,
"H=s" => \$opt_H, "hostname=s" => \$opt_H);
if ($opt_V) {
print_revision($PROGNAME,$VERSION);
exit $ERRORS{'OK'};
}
if ($opt_h) {print_help(); exit $ERRORS{'OK'};}
($opt_H) || ($opt_H = shift @ARGV) || usage("Host name/address not specified\n");
my $server = $1 if ($opt_H =~ /([-.A-Za-z0-9]+)/);
($server) || usage("Invalid host: $opt_H\n");
($opt_w) || ($opt_w = shift @ARGV) || ($opt_w = 50);
my $warn = $1 if ($opt_w =~ /^([0-9]+)$/);
($warn) || usage("Invalid warning threshold: $opt_w\n");
($opt_c) || ($opt_c = shift @ARGV) || ($opt_c = 100);
my $crit = $1 if ($opt_c =~ /^([0-9]+)$/);
($crit) || usage("Invalid critical threshold: $opt_c\n");
if ($crit < $warn){
usage("Invalid threshold: $crit for critical is lower than $warn for warning\n");
}
($opt_p) || ($opt_p = shift @ARGV) || ($opt_p = 6667);
my $port = $1 if ($opt_p =~ /^([0-9]+)$/);
($port) || usage("Invalid port: $opt_p\n");
if ($opt_t && $opt_t =~ /^([0-9]+)$/) { $TIMEOUT = $1; }
# Just in case of problems, let's not hang Nagios
$SIG{'ALRM'} = sub {
print "Somthing is Taking a Long Time, Increase Your TIMEOUT (Currently Set At $TIMEOUT Seconds)\n";
exit $ERRORS{"UNKNOWN"};
};
alarm($TIMEOUT);
my $ping_timeout=$TIMEOUT-1;
my $users=connection($server,$port,$ssl,$ping_timeout,$nick,$verbose);
($answer,$state)=check_users($users,$crit,$warn);
print "$answer";
exit $ERRORS{$state};
}

View File

@ -0,0 +1,85 @@
Index: plugins-scripts/check_log.sh
===================================================================
--- plugins-scripts/check_log.sh.orig
+++ plugins-scripts/check_log.sh
@@ -61,15 +61,16 @@
#PATH=""
ECHO="/bin/echo"
-GREP="/bin/egrep"
-DIFF="/bin/diff"
-TAIL="/bin/tail"
+GREP="/usr/bin/egrep"
+DIFF="/usr/bin/diff"
+TAIL="/usr/bin/tail"
CAT="/bin/cat"
RM="/bin/rm"
CHMOD="/bin/chmod"
-TOUCH="/bin/touch"
+TOUCH="/usr/bin/touch"
+MKTEMP="/bin/mktemp"
-PROGNAME=`/bin/basename $0`
+PROGNAME=`/usr/bin/basename $0`
PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'`
REVISION="@NP_VERSION@"
@@ -166,10 +167,10 @@
# If the source log file doesn't exist, exit
-if [ ! -e $logfile ]; then
+if [ ! -e "$logfile" ]; then
$ECHO "Log check error: Log file $logfile does not exist!\n"
exit $STATE_UNKNOWN
-elif [ ! -r $logfile ] ; then
+elif [ ! -r "$logfile" ] ; then
$ECHO "Log check error: Log file $logfile is not readable!\n"
exit $STATE_UNKNOWN
fi
@@ -178,8 +179,8 @@
# we're running this test, so copy the original log file over to
# the old diff file and exit
-if [ ! -e $oldlog ]; then
- $CAT $logfile > $oldlog
+if [ ! -e "$oldlog" ]; then
+ $CAT "$logfile" > "$oldlog"
$ECHO "Log check data initialized...\n"
exit $STATE_OK
fi
@@ -188,25 +189,25 @@
# The temporary file that the script should use while
# processing the log file.
-if [ -x /bin/mktemp ]; then
- tempdiff=`/bin/mktemp /tmp/check_log.XXXXXXXXXX`
+if [ -x "$MKTEMP" ]; then
+ tempdiff=`$MKTEMP /tmp/check_log.XXXXXXXXXX`
else
tempdiff=`/bin/date '+%H%M%S'`
tempdiff="/tmp/check_log.${tempdiff}"
- $TOUCH $tempdiff
- $CHMOD 600 $tempdiff
+ $TOUCH "$tempdiff"
+ $CHMOD 600 "$tempdiff"
fi
-$DIFF $logfile $oldlog | $GREP -v "^>" > $tempdiff
+$DIFF "$logfile" "$oldlog" | $GREP -v "^>" > "$tempdiff"
# Count the number of matching log entries we have
-count=`$GREP -c "$query" $tempdiff`
+count=`$GREP -c "$query" "$tempdiff"`
# Get the last matching entry in the diff file
-lastentry=`$GREP "$query" $tempdiff | $TAIL -1`
+lastentry=`$GREP "$query" "$tempdiff" | $TAIL -1`
-$RM -f $tempdiff
-$CAT $logfile > $oldlog
+$RM -f "$tempdiff"
+$CAT "$logfile" > "$oldlog"
if [ "$count" = "0" ]; then # no matches, exit with no error
$ECHO "Log check ok - 0 pattern matches found\n"

View File

@ -0,0 +1,12 @@
Index: plugins-scripts/check_ntp.pl
===================================================================
--- plugins-scripts/check_ntp.pl.orig
+++ plugins-scripts/check_ntp.pl
@@ -313,7 +313,6 @@
}
} else {
print "No match!\n" if $verbose;
- $jitter = '(not parsed)';
}
}

View File

@ -0,0 +1,56 @@
Index: plugins-root/Makefile.am
===================================================================
--- plugins-root/Makefile.am.orig
+++ plugins-root/Makefile.am
@@ -47,7 +47,6 @@ INSTALL_SUID = \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libexecdir)/$$p"; \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(libexecdir)/$$p; \
echo " chown root $(DESTDIR)$(libexecdir)/$$p"; \
- chown root $(DESTDIR)$(libexecdir)/$$p; \
echo " chmod $(setuid_root_mode) $(DESTDIR)$(libexecdir)/$$p"; \
chmod $(setuid_root_mode) $(DESTDIR)$(libexecdir)/$$p; \
done
@@ -66,11 +65,12 @@ install-exec-local: $(noinst_PROGRAMS)
&& chmod $(setuid_root_mode) $$TMPFILE > /dev/null 2>&1 \
&& can_create_suid_root_executable=yes; \
rm -f $$TMPFILE; \
- if test $$can_create_suid_root_executable = yes; then \
- $(INSTALL_SUID); \
+ $(INSTALL_SUID); \
+ if test $$can_create_suid_root_executable != yes; then \
else \
- echo "WARNING: insufficient access; not installing setuid plugins"; \
+ echo "WARNING: insufficient access; not installing plugins as setuid"; \
echo "NOTE: to install setuid plugins, run 'make install-root' as root"; \
+ echo "NOTE: or fix this in your packaging (like the specfile)"; \
fi
# /* Author Coreutils team sub-citation */
Index: plugins-root/Makefile.in
===================================================================
--- plugins-root/Makefile.in.orig
+++ plugins-root/Makefile.in
@@ -1341,7 +1341,6 @@ INSTALL_SUID = \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libexecdir)/$$p"; \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(libexecdir)/$$p; \
echo " chown root $(DESTDIR)$(libexecdir)/$$p"; \
- chown root $(DESTDIR)$(libexecdir)/$$p; \
echo " chmod $(setuid_root_mode) $(DESTDIR)$(libexecdir)/$$p"; \
chmod $(setuid_root_mode) $(DESTDIR)$(libexecdir)/$$p; \
done
@@ -1782,11 +1781,11 @@ install-exec-local: $(noinst_PROGRAMS)
&& chmod $(setuid_root_mode) $$TMPFILE > /dev/null 2>&1 \
&& can_create_suid_root_executable=yes; \
rm -f $$TMPFILE; \
- if test $$can_create_suid_root_executable = yes; then \
- $(INSTALL_SUID); \
- else \
- echo "WARNING: insufficient access; not installing setuid plugins"; \
+ $(INSTALL_SUID); \
+ if test $$can_create_suid_root_executable != yes; then \
+ echo "WARNING: insufficient access; not installing plugins as setuid"; \
echo "NOTE: to install setuid plugins, run 'make install-root' as root"; \
+ echo "NOTE: or fix this in your packaging (specfile or alike)"; \
fi
clean-local:

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:da55221547d56d680810c57ca943a83806aa38902c9afd3e44cda8d780fbff98
size 2209391

View File

@ -0,0 +1,25 @@
README.SUSE for nagios-plugins
== Features and documentation ==
Please refer to the upstream documentation on
* http://www.nagios.org/docs/
* http://nagiosplugins.org/
* http://www.nagioscommunity.org/wiki/index.php/Main_Page
The openSUSE package contains most of the currently available plugins.
All plugins are installed in ''/usr/lib/nagios/plugins/'' on every architecture.
== Special permissions for some plugins ==
The following checks require special handling as they need some root privileges to run:
* check_dhcp
* check_icmp
* check_ide_smart
In a default installation, those checks will not work if executed as user with limited
rights (such as nagios or icinga). Please have a look into the corresponding documentation
for those packages for more details.
( /usr/share/doc/packages/nagios-plugins-icmp/README.SUSE-check_icmp for example )

View File

@ -0,0 +1,120 @@
README.SUSE for nagios-plugins-dhcp
== check_cups ==
Nagios plugin for checking cups service
This plug-in will check the status of a remote CUPS print service for the printer status,
Its able to check all available printers on the cups, or just one of them.
(for example if you have testing printer - is normally disable/off you don't need to check it.)
It can also check only the queue status. it will provide the size of the queue and
optionally the age of the queue.
Generally I sugesst to create separate check for each printer only and then additional check for
the queue itself.
it using Nagios standards exit codes:
# Nagios return codes
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
STATE_DEPENDENT=4
Usage: check_cups -H <hostname> -P -p<The CUPS printer name> | -Q <s|b> -w <size warning level> -c <size critical level> -a <max age>
Notes:
-H: Hostname - Can be a hostname or IP address.
-P: Check only the printers status.
-p: It will check only one specific printer.
-Q: Type of check - Can be queue size (s) or both queu size and queue age (b)
-w: WARNING level for queue size
-c: CRITICAL level for queue size
-a: Max age of queue. Returns CRITICAL if jobs exists older than <max age> days
Example of test run usage:
----------------
Test all available printers and the queue.
(queue size warning is 3, critical 10 and max age 3 days):
nagios@nagios:~> /usr/lib/nagios/plugins/check_cups -H cups.server.org -P -Q s -w 3 -c 10 -a 3
Checking all printers...
OK - CUPS printer is idle.
Testing queue on the CUPS...
OK: CUPS queue size - 0| print_jobs=0;3;10;0
Test one printer only :
nagios@nagios:~> /usr/lib/nagios/plugins/check_cups -H cups.suse.cz -P -p myprinter
Checking only the printer myprinter.
OK - CUPS printer myprinter is idle.
Test only the queue, do not test any printer
(queue size warning is 3, critical 5 and max age 2 days):
nagios@nagios:~> /usr/lib/nagios/plugins/check_cups -H cups.suse.cz -Q b -w 3 -c 5 -a 2
No printer check is require. Checking the queue ...
Testing queue on the CUPS...
OK: CUPS queue size - 0| print_jobs=0;3;5;0
Example of Nagios/Icinga command settings:
----------------------------------
Example commands/check_cups.cfg:
# Check all printers in cups and queue size and queue age
define command{
command_name check_cups_all_queue
command_line $USER1$/check_cups -H $ARG1$ -P -Q b -w $ARG2$ -c $ARG3$ -a $ARG4$
}
# Check one printer in cups and queue size and queue age
define command{
command_name check_cups_one_queue
command_line $USER1$/check_cups -H $ARG1$ -P -p $ARG2$ -Q b -w $ARG3$ -c $ARG4$ -a $ARG5$
}
# Check all printers in cups and queue size and queue age
define command{
command_name check_cups_all
command_line $USER1$/check_cups -H $ARG1$ -P
}
# Check one printer in cups.
define command{
command_name check_cups_one
command_line $USER1$/check_cups -H $ARG1$ -P -p $ARG2$
}
# Check only the queue
define command{
command_name check_cups_queue
command_line $USER1$/check_cups -H $ARG1$ -Q b -w $ARG2$ -c $ARG3$ -a $ARG4$
}
Security:
---------
In the version 0.2 I add appamor profile for the script usr.lib.nagios.plugins.check_cups
into /etc/apparmor.d
Autor notes:
------------
I`d like to thank to John E. Vincent (nagios-plugs@lusis.org)
I learn a lof from his check CUPS print queue plugin.
Then I`d like to thank to Mark Shirley for his check_cups_printer.sh
script, which was also inspiration for me.
Both of them you can find on http://exchange.nagios.org/ web site.
Martin Caj 31/01/2013 <mcaj@suse.cz>
Bugs:
------
Please report bugs to me mcaj@suse.cz
Thanks and have lot printers online ;-)
Martin

View File

@ -0,0 +1,54 @@
README.SUSE for nagios-plugins-dhcp
== check_dhcp and SuSEfirewall ==
If you run the check_dhcp script on the server, please make sure your UDP ports
67 and 68 on the _client_ are opened in the firewall. You also need to allow
the receive broadcasts for this interface. Otherwise the script will be unable
to detect anything.
If your client uses the "external" interface for the check, the entries in
/etc/sysconfig/SuSEfirewall2 should look like:
FW_SERVICES_EXT_UDP="67 68"
FW_ALLOW_FW_BROADCAST_EXT="67 68"
== Special privileges ==
To be "safe per default", SUSE doesn't install this plugin with the
suid bit set. There are two recommended ways about overriding this on
your system:
=== Set the suid bit ===
Copy the prepared permissions file from this directory to the right place
in your file system:
~ # cp /usr/share/doc/packages/nagios-plugins-common/example/permissions.d/nagios-plugins \
/etc/permissions.d/nagios-plugins
...afterwards adapt the file /etc/permissions.d/nagios-plugins to your needs
(see comments in the file) and run:
~ # SuSEconfig --module permissions
or (on newer openSUSE distributions without SuSEconfig):
~ # chkstat --system --set
This will set the correct permissions (from now on also during an update).
=== Alternative: Use sudo to grant the permission and modify your plugin config ===
This way you need an entry like:
nagios ALL = NOPASSWD: /usr/lib/nagios/plugins/check_dhcp
in ''/etc/sudoers'' and an adapted command definition like the following:
define command{
command_name check_dhcp
command_line /usr/bin/sudo $USER1$/check_dhcp <other_options_here>
}

View File

@ -0,0 +1,42 @@
README.SUSE for nagios-plugins-icmp
== Special privileges ==
To be "safe per default", SUSE doesn't install this plugin with the
suid bit set. There are two recommended ways about overriding this on
your system:
=== Set the suid bit ===
Copy the prepared permissions file from this directory to the right place
in your file system:
~ # cp /usr/share/doc/packages/nagios-plugins/example/permissions.d/nagios-plugins \
/etc/permissions.d/nagios-plugins
...afterwards adapt the file /etc/permissions.d/nagios-plugins to your needs
(see comments in the file) and run:
~ # SuSEconfig --module permissions
or (on newer openSUSE distributions without SuSEconfig):
~ # chkstat --system --set
This will set the correct permissions (from now on also during an update).
=== Alternative: Use sudo to grant the permission and modify your plugin config ===
This way you need an entry like:
nagios ALL = NOPASSWD: /usr/lib/nagios/plugins/check_icmp
in ''/etc/sudoers'' and an adapted command definition like the following:
define command{
command_name check_icmp
command_line /usr/bin/sudo $USER1$/check_icmp <other_options_here>
}

View File

@ -0,0 +1,42 @@
README.SUSE for nagios-plugins-ide_smart
== Special privileges ==
To be "safe per default", SUSE doesn't install this plugin with the
suid bit set. There are two recommended ways about overriding this on
your system:
=== Set the suid bit ===
Copy the prepared permissions file from this directory to the right place
in your file system:
~ # cp /usr/share/doc/packages/nagios-plugins/example/permissions.d/nagios-plugins \
/etc/permissions.d/nagios-plugins
...afterwards adapt the file /etc/permissions.d/nagios-plugins to your needs
(see comments in the file) and run:
~ # SuSEconfig --module permissions
or (on newer openSUSE distributions without SuSEconfig):
~ # chkstat --system --set
This will set the correct permissions (from now on also during an update).
=== Alternative: Use sudo to grant the permission and modify your plugin config ===
This way you need an entry like:
nagios ALL = NOPASSWD: /usr/lib/nagios/plugins/check_ide_smart
in ''/etc/sudoers'' and an adapted command definition like the following:
define command{
command_name check_ide_smart
command_line /usr/bin/sudo $USER1$/check_ide_smart <other_options_here>
}

View File

@ -0,0 +1,18 @@
# Please uncomment the needed plugins and place the file in the
# /etc/permissions.d/ directory:
# cp nagios-plugins /etc/permissions.d/
#
# Afterwards the files below will be adapted after a nagios-plugins
# update via
# 'SuSEconfig --module permissions'
# or (on newer openSUSE distributions without SuSEconfig):
# 'chkstat --system --set'
# automatically.
#
# Note: You may check/set the following variable in /etc/sysconfg/security
# to allow SuSEconfig to correct the file permissions:
# CHECK_PERMISSIONS="set"
#
# /usr/lib/nagios/plugins/check_dhcp root.root 4755
# /usr/lib/nagios/plugins/check_icmp root.root 4755
# /usr/lib/nagios/plugins/check_ide_smart root.root 4755

View File

@ -0,0 +1,12 @@
Index: plugins/check_pgsql.c
===================================================================
--- plugins/check_pgsql.c.orig
+++ plugins/check_pgsql.c
@@ -36,6 +36,7 @@ const char *email = "devel@monitoring-pl
#include "utils.h"
#include "netutils.h"
+#include <pg_config_manual.h>
#include <libpq-fe.h>
#include <pg_config_manual.h>

View File

@ -0,0 +1,5 @@
# the virtual dbi-{mysql,pgsql,sqlite3} packages are there to require
# the needed library for the generic dbi package.
addFilter("explicit-lib-dependency.*libdbi-drivers-dbd-mysql");
addFilter("explicit-lib-dependency.*libdbi-drivers-dbd-sqlite3");
addFilter("explicit-lib-dependency.*libdbi-drivers-dbd-pgsql");

View File

@ -0,0 +1,13 @@
Index: plugins/check_disk.c
===================================================================
--- plugins/check_disk.c.orig
+++ plugins/check_disk.c
@@ -996,7 +996,7 @@ get_stats (struct parameter_list *p, str
if (verbose >= 3)
printf("Group %s: adding %llu blocks sized %llu, (%s) used_units=%g free_units=%g total_units=%g fsu_blocksize=%llu mult=%llu\n",
p_list->group, tmpfsp.fsu_bavail, tmpfsp.fsu_blocksize, p_list->best_match->me_mountdir, p_list->dused_units, p_list->dfree_units,
- p_list->dtotal_units, mult);
+ p_list->dtotal_units, tmpfsp.fsu_blocksize, mult);
/* prevent counting the first FS of a group twice since its parameter_list entry
* is used to carry the information of all file systems of the entire group */

View File

@ -0,0 +1,44 @@
From f3e6c9663369d011b241c6fb2c8fd5312f98cacf Mon Sep 17 00:00:00 2001
From: Jan ONDREJ <ondrejj@salstar.sk>
Date: Thu, 7 Oct 2010 17:28:48 +0400
Subject: [PATCH 6/6] Prevent check_swap from returning OK, if no swap activated
My swap was not activated on boot for unknown reason and nagios does not
report this as a problem. Here is an example:
[root@kecom ~]# rpm -q nagios-plugins
nagios-plugins-1.4.13-11.fc10.i386
[root@kecom ~]# /usr/lib/nagios/plugins/check_swap -w 80% -c 40% -c 1 -w 2
SWAP CRITICAL - 100% free (0 MB out of 0 MB) |swap=0MB;0;0;0;0
If there is no swap and users is trying to test percentage of free swap,
consider 0 MB free swap space as problem, or of free/total raises division
by zero, then set percentage to 0%, not to 100%.
Steps to Reproduce:
1. make sure, your swap is empty or it's usage is not large
2. swapoff -a
3. /usr/lib/nagios/plugins/check_swap -w 80% -c 40%
Actual results:
SWAP OK - 100% free (0 MB out of 0 MB) |swap=0MB;0;0;0;0
Expected results:
SWAP CRITICAL - 0% free (0 MB out of 0 MB) |swap=0MB;0;0;0;0
Additional info:
https://bugzilla.redhat.com/512559
Index: monitoring-plugins-2.0/plugins/check_swap.c
===================================================================
--- monitoring-plugins-2.0.orig/plugins/check_swap.c
+++ monitoring-plugins-2.0/plugins/check_swap.c
@@ -125,7 +125,7 @@ main (int argc, char **argv)
free_swap_mb += dskfree_mb;
if (allswaps) {
if (dsktotal_mb == 0)
- percent=100.0;
+ percent= 0.0;
else
percent = 100 * (((double) dskused_mb) / ((double) dsktotal_mb));
result = max_state (result, check_swap (percent, dskfree_mb));

1003
monitoring-plugins.changes Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,371 @@
#!/bin/bash
# check_cups - nagios plugin
#
# Copyright (C) 2008-2010, Novell, Inc.
# Copyright (C) 2011-2013, SUSE Linux Products GmbH
# Author: Martin Caj <mcaj@suse.cz>
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# * Neither the name of the Novell nor the names of its contributors may be
# used to endorse or promote products derived from this software without
# specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
# $Id$
#
# Autor notes: I`d like to thank to John E. Vincent (nagios-plugs@lusis.org)
# I learn a lof from his check CUPS print queue plugin.
# Then I`d like to thank to Mark Shirley for his check_cups_printer.sh
# script, which was also inspiration for me.
# Both of them you can find on http://exchange.nagios.org/ web site.
# Martin Caj 31/01/2013 <mcaj@suse.cz>
# version 0.3 has no awk any more, cut can do it as well.
# the appamor profile was fix as well.
# Martin Caj 01/11/2013
# check_cups - nagios plugin for checking cups service
# Description:
#
# This plugin will check the status of a remote CUPS
# print service for the printer status, then if status is ok
# it will check the queue. It can check all avaible printes
# on the cups, or just one of them.
# Then the plugin will check the queue:
# it will provide the size of the queue
# and optionally the age of the queue
#
# Version : 0.3
#searchning the lpstat:
LPSTAT="$(which lpstat)"
# debug the script:
#set -x
# Nagios return codes
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
STATE_DEPENDENT=4
# check it lpstat is missing.
if [ ! -x "$LPSTAT" ]
then
echo "UNKNOWN: "$LPSTAT" not found or is not executable by the nagios user"
exitstatus="$STATE_UNKNOWN"
exit "$exitstatus"
fi
PROGNAME=$(basename $0)
print_usage() {
# Name: print_usage
# Desc: It just print the usage out.
echo "Usage: "$PROGNAME" -H <hostname> -P -p<The CUPS printer name> | -Q <s|b> -w <size warning level> -c <size critical level> -a <max age>"
echo
echo "Notes:"
echo "-H: Hostname - Can be a hostname or IP address."
echo "-P: Check only the printers status."
echo "-p: It will check only one specific printer."
echo "-Q: Type of check - Can be queue size (s) or both queu size and queue age (b)."
echo "-w: WARNING level for queue size."
echo "-c: CRITICAL level for queue size."
echo "-a: Max age of queue. Returns CRITICAL if jobs exists older than <max age> days."
echo
}
print_help() {
# Name: print_help
# Desc: It just print the usage and the help out. Then it end with exit code 0
print_usage
echo
echo "This plugin will check the CUPS print service for the printer status"
echo "it can check the queue on a remote (or local with -H localhost) CUPS server."
echo "It can check both the size of the queue and the age of the oldest print job in the queue."
echo "-w and -c are for reporting warning and critical levels of the queue size."
echo "-a is optional for specifying the max age of a job in the print queue. Anything older thatn <max age>"
echo "will return a CRITICAL"
echo "For more details have look into README file. "
echo
exit 0
}
check_queue_size() {
# Name: check_queue_size
# Desc: It check the status of the CUPS queue size.
# $exitstatus= might be ok|warn"crittical deppends on -w and -c
if [ "$JOBCOUNT" -ge "$critlevel" ]
then
MESSAGE="CRITICAL: CUPS queue size - "$JOBCOUNT"| "$PERFDATA""
exitstatus="$STATE_CRITICAL"
elif [ "$JOBCOUNT" -ge "$warnlevel" ]
then
MESSAGE="WARNING: CUPS queue size - "$JOBCOUNT"| "$PERFDATA""
exitstatus="$STATE_WARNING"
else
MESSAGE="OK: CUPS queue size - "$JOBCOUNT"| "$PERFDATA""
exitstatus="$STATE_OK"
fi
}
check_printer_status() {
# Name:check_printer_status
# Desc: It check status of all printers or one specific printer
# output is store in $OUTPUT and $exitstatus
if [ -z $printername ]
then
echo "Checking all printers..."
RESULT=$("$LPSTAT" -h "$hostname" -p )
if [ $? != 0 ]
then
echo "ERROR: Probably wrong host name: "$hostname", or CUPS is not running there."
exit "$STATE_UNKNOWN"
fi
else
echo "Checking only the printer "$printername"."
RESULT=$("$LPSTAT" -h "$hostname" -p "$printername")
if [ $? != 0 ]
then
echo "ERROR: the printer "$printername" doesn't exist on the cups server "$hostname"."
echo "please check command: '"$LPSTAT" -h "$hostname" -p' without printer name."
exit "$STATE_UNKNOWN"
fi
fi
case "$RESULT" in
*Rejecting*)
messages=$(echo "$RESULT"|grep -i rejecting )
OUTPUT="CRITICAL - CUPS printer is rejecting jobs for: "$messages"."
exitstatus="$STATE_CRITICAL"
;;
*Unable*)
messages=$(echo "$RESULT"|grep -i unable )
OUTPUT="CRITICAL - CUPS Unable to connect: "$messages"."
exitstatus="$STATE_CRITICAL"
;;
*disabled*)
messages=$(echo "$RESULT"|grep -i disabled)
OUTPUT="CRITICAL - CUPS printer: "$messages"."
exitstatus="$STATE_CRITICAL"
;;
*Paused*)
messages=$(echo "$RESULT"|grep -i paused)
OUTPUT="WARNING: - CUPS printer is: "$messages"."
exitstatus="$STATE_WARNING"
;;
*printing*)
OUTPUT="OK - CUPS printer is printing now."
exitstatus="$STATE_OK"
;;
*idle*)
OUTPUT="OK - CUPS printer "$printername" is idle."
exitstatus="$STATE_OK"
;;
*)
OUTPUT="CRITICAL - Unknown error occured while checking: "$RESULT"."
exitstatus="$STATE_CRITICAL"
;;
esac
}
# It testing how many variable user add on command line
# The minimu for test printes only is 3
if [ $# -lt 3 ]; then
print_usage
exit "$STATE_UNKNOWN"
fi
# this set default exit status to:
exitstatus="$STATE_UNKNOWN"
# by default is test pritner disabled, you must allow it with -p $printer or -P all printers
testprinter="0"
# testing arguments:
while test -n "$1"; do
case "$1" in
--help)
print_help
exit "$STATE_OK"
;;
-h)
print_help
exit "$STATE_OK"
;;
-P)
testprinter="1"
;;
-p)
testprinter="2"
printername="$2"
shift
;;
-H)
hostname=$2
shift
;;
-Q)
testtype=$2
shift
;;
-w)
warnlevel=$2
shift
;;
-c)
critlevel=$2
shift
;;
-a)
maxage=$2
shift
;;
esac
shift
done
# Check arguments for validity:
if [ -z $hostname ]
then
echo "You must specify a hostname (or localhost to test the local system)"
print_usage
exitstatus="$STATE_UNKNOWN"
exit "$exitstatus"
fi
# testing priner(s)
if [ $testprinter -eq 2 ] #Check specifics printer and continue with the script
then
check_printer_status "$printername"
if [ -z $testtype ] # exits if there is no -Q checks
then
echo "$OUTPUT"
exit "$exitstatus"
fi
elif [ $testprinter -eq 1 ]; then # check all printers
check_printer_status
if [ -z $testtype ]; then # exits if there is no -Q checks
echo "$OUTPUT"
exit "$exitstatus"
fi
else # no cuos check is need
echo "No printer check is require. Checking the queue ..."
fi
# testing arguments for the queue checks:
if [[ -z $critlevel || -z $warnlevel ]] # Did we get warn and crit values?
then
echo "You must specify a warning and critical level"
print_usage
exitstatus="$STATE_UNKNOWN"
exit "$exitstatus"
elif [ $critlevel -lt $warnlevel ] # Do the warn/crit values make sense?
then
echo "CRITICAL value of "$critlevel" is less than WARNING level of "$warnlevel""
print_usage
exitstatus="$STATE_UNKNOWN"
exit "$exitstatus"
fi
# what kind of queue test will be run:
if [ -z $testtype ]
then
echo "You must specify a test type"
print_usage
exitstatus="$STATE_UNKNOWN"
exit "$exitstatus"
# this is a very nice elif, it match if -a X is missing
elif [[ "$testtype" = [b]* && -z $maxage ]]
then
echo "You must specify <max age> when using a test type of 'b'"
print_usage
exitstatus="$STATE_UNKNOWN"
exit "$exitstatus"
else
echo "Testing queue on the CUPS..."
JOBTMP=$(mktemp -t lpstat.XXXXXX) # Create a tmpfile to store the lpstat results
STALEJOBCOUNT=0 # default number of old jobs
CURDATETS=$(date +%s) # Get the current date as unixtime
"$LPSTAT" -h "$hostname" -o > "$JOBTMP" # run the lpstat command against the host.
if [ $? -ne 0 ]
then
rm -rf "$JOBTMP"
echo "UNKNOWN: lpstat command returned an error. Please test this script manually."
exitstatus="$STATE_UNKNOWN"
exit "$exitstatus"
fi
JOBCOUNT=$(wc -l < $JOBTMP) # populate the jobcount
PERFDATA="print_jobs="$JOBCOUNT";"$warnlevel";"$critlevel";0"
if [[ "$JOBCOUNT" -gt 0 && $maxage ]]
then
MAXAGETS=$(echo "86400 * $maxage" | bc) # 86400 seconds in a day * maxage
exec<"$JOBTMP" # read the file to determine job age
while read PRINTJOB
do
# Grab the job date from the job listing
JOBDATE=$(echo $PRINTJOB | cut -c50-73)
# Convert the job date to unixtime
JOBDATETS=$(date --date="$JOBDATE" +%s)
DATEDIFF=$(echo "($CURDATETS - $JOBDATETS)" | bc)
if [ $DATEDIFF -gt $MAXAGETS ]
then
MESSAGE="CRITICAL: Some CUPS jobs are older than "$maxage" days| "$PERFDATA""
exitstatus="$STATE_CRITICAL"
else
check_queue_size
fi
done
else
check_queue_size
fi
rm -rf "$JOBTMP"
fi
# end: print the results and end with exit code for Nagios
echo "$OUTPUT"
echo "$MESSAGE"
exit "$exitstatus"

View File

@ -0,0 +1,13 @@
Index: monitoring-plugins-2.0/plugins/check_ntp.c
===================================================================
--- monitoring-plugins-2.0.orig/plugins/check_ntp.c
+++ monitoring-plugins-2.0/plugins/check_ntp.c
@@ -616,7 +616,7 @@ double jitter_request(const char *host,
if (bytes_read != ntp_cm_ints + req.count)
die(STATE_UNKNOWN, _("Invalid NTP response: %d bytes read does not equal %d plus %d data segment"), bytes_read, ntp_cm_ints, req.count);
/* else null terminate */
- strncpy(req.data[req.count], "\0", 1);
+ req.data[req.count] = "\0";
DBG(print_ntp_control_message(&req));

View File

@ -0,0 +1,13 @@
Index: plugins/check_snmp.c
===================================================================
--- plugins/check_snmp.c.orig
+++ plugins/check_snmp.c
@@ -567,7 +567,7 @@ main (int argc, char **argv)
len = sizeof(perfstr)-strlen(perfstr)-1;
strncat(perfstr, show, len>ptr-show ? ptr-show : len);
- if (type)
+ if (type[0])
strncat(perfstr, type, sizeof(perfstr)-strlen(perfstr)-1);
strncat(perfstr, " ", sizeof(perfstr)-strlen(perfstr)-1);
}

View File

@ -0,0 +1,125 @@
Index: monitoring-plugins-2.0/plugins/check_snmp.c
===================================================================
--- monitoring-plugins-2.0.orig/plugins/check_snmp.c
+++ monitoring-plugins-2.0/plugins/check_snmp.c
@@ -104,6 +104,8 @@ int errcode, excode;
char *server_address = NULL;
char *community = NULL;
+char **context = NULL;
+char *v3context = NULL;
char **authpriv = NULL;
char *proto = NULL;
char *seclevel = NULL;
@@ -128,6 +130,7 @@ size_t nunits = 0;
size_t unitv_size = OID_COUNT_STEP;
int numoids = 0;
int numauthpriv = 0;
+int numcontext = 0;
int verbose = 0;
int usesnmpgetnext = FALSE;
char *warning_thresholds = NULL;
@@ -297,8 +300,8 @@ main (int argc, char **argv)
snmpcmd = strdup (PATH_TO_SNMPGET);
}
- /* 10 arguments to pass before authpriv options + 1 for host and numoids. Add one for terminating NULL */
- command_line = calloc (10 + numauthpriv + 1 + numoids + 1, sizeof (char *));
+ /* 10 arguments to pass before context and authpriv options + 1 for host and numoids. Add one for terminating NULL */
+ command_line = calloc (10 + numcontext + numauthpriv + 1 + numoids + 1, sizeof (char *));
command_line[0] = snmpcmd;
command_line[1] = strdup ("-Le");
command_line[2] = strdup ("-t");
@@ -310,23 +313,27 @@ main (int argc, char **argv)
command_line[8] = "-v";
command_line[9] = strdup (proto);
+ for (i = 0; i < numcontext; i++) {
+ command_line[10 + i] = context[i];
+ }
+
for (i = 0; i < numauthpriv; i++) {
- command_line[10 + i] = authpriv[i];
+ command_line[10 + numcontext + i] = authpriv[i];
}
- xasprintf (&command_line[10 + numauthpriv], "%s:%s", server_address, port);
+ xasprintf (&command_line[10 + numcontext + numauthpriv], "%s:%s", server_address, port);
/* This is just for display purposes, so it can remain a string */
- xasprintf(&cl_hidden_auth, "%s -Le -t %d -r %d -m %s -v %s %s %s:%s",
- snmpcmd, timeout_interval, retries, strlen(miblist) ? miblist : "''", proto, "[authpriv]",
+ xasprintf(&cl_hidden_auth, "%s -Le -t %d -r %d -m %s -v %s %s %s %s:%s",
+ snmpcmd, timeout_interval, retries, strlen(miblist) ? miblist : "''", proto, "[context]", "[authpriv]",
server_address, port);
for (i = 0; i < numoids; i++) {
- command_line[10 + numauthpriv + 1 + i] = oids[i];
+ command_line[10 + numcontext + numauthpriv + 1 + i] = oids[i];
xasprintf(&cl_hidden_auth, "%s %s", cl_hidden_auth, oids[i]);
}
- command_line[10 + numauthpriv + 1 + numoids] = NULL;
+ command_line[10 + numcontext + numauthpriv + 1 + numoids] = NULL;
if (verbose)
printf ("%s\n", cl_hidden_auth);
@@ -646,6 +653,7 @@ process_arguments (int argc, char **argv
{"retries", required_argument, 0, 'e'},
{"miblist", required_argument, 0, 'm'},
{"protocol", required_argument, 0, 'P'},
+ {"context", required_argument, 0, 'N'},
{"seclevel", required_argument, 0, 'L'},
{"secname", required_argument, 0, 'U'},
{"authproto", required_argument, 0, 'a'},
@@ -675,7 +683,7 @@ process_arguments (int argc, char **argv
}
while (1) {
- c = getopt_long (argc, argv, "nhvVOt:c:w:H:C:o:e:E:d:D:s:t:R:r:l:u:p:m:P:L:U:a:x:A:X:",
+ c = getopt_long (argc, argv, "nhvVOt:c:w:H:C:o:e:E:d:D:s:t:R:r:l:u:p:m:P:N:L:U:a:x:A:X:",
longopts, &option);
if (c == -1 || c == EOF)
@@ -713,6 +721,9 @@ process_arguments (int argc, char **argv
case 'P': /* SNMP protocol version */
proto = optarg;
break;
+ case 'N': /* SNMPv3 context */
+ v3context = optarg;
+ break;
case 'L': /* security level */
seclevel = optarg;
break;
@@ -960,6 +971,13 @@ validate_arguments ()
authpriv[1] = strdup (community);
}
else if ( strcmp (proto, "3") == 0 ) { /* snmpv3 args */
+ if (!(v3context == NULL)) {
+ numcontext = 2;
+ context = calloc (numcontext, sizeof (char *));
+ context[0] = strdup ("-n");
+ context[1] = strdup (v3context);
+ }
+
if (seclevel == NULL)
xasprintf(&seclevel, "noAuthNoPriv");
@@ -1103,6 +1121,8 @@ print_help (void)
printf (" %s\n", _("Use SNMP GETNEXT instead of SNMP GET"));
printf (" %s\n", "-P, --protocol=[1|2c|3]");
printf (" %s\n", _("SNMP protocol version"));
+ printf (" %s\n", "-N, --context=CONTEXT");
+ printf (" %s\n", _("SNMPv3 context"));
printf (" %s\n", "-L, --seclevel=[noAuthNoPriv|authNoPriv|authPriv]");
printf (" %s\n", _("SNMPv3 securityLevel"));
printf (" %s\n", "-a, --authproto=[MD5|SHA]");
@@ -1210,6 +1230,6 @@ print_usage (void)
printf ("%s -H <ip_address> -o <OID> [-w warn_range] [-c crit_range]\n",progname);
printf ("[-C community] [-s string] [-r regex] [-R regexi] [-t timeout] [-e retries]\n");
printf ("[-l label] [-u units] [-p port-number] [-d delimiter] [-D output-delimiter]\n");
- printf ("[-m miblist] [-P snmp version] [-L seclevel] [-U secname] [-a authproto]\n");
- printf ("[-A authpasswd] [-x privproto] [-X privpasswd]\n");
+ printf ("[-m miblist] [-P snmp version] [-N context] [-L seclevel] [-U secname]\n");
+ printf ("[-a authproto] [-A authpasswd] [-x privproto] [-X privpasswd]\n");
}

View File

@ -0,0 +1,26 @@
---
plugins/negate.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: plugins/negate.c
===================================================================
--- plugins/negate.c.orig
+++ plugins/negate.c
@@ -44,7 +44,7 @@ const char *email = "nagiosplug-devel@li
/* char *command_line; */
static const char **process_arguments (int, char **);
-int validate_arguments (char **);
+void validate_arguments (char **);
int translate_state (char *);
void print_help (void);
void print_usage (void);
@@ -207,7 +207,7 @@ process_arguments (int argc, char **argv
}
-int
+void
validate_arguments (char **command_line)
{
if (command_line[0] == NULL)

1570
monitoring-plugins.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,31 @@
# Last Modified: Mon Mar 11 14:58:16 2013
#include <tunables/global>
/usr/lib/nagios/plugins/check_cups {
#include <abstractions/base>
#include <abstractions/bash>
#include <abstractions/consoles>
#include <abstractions/nameservice>
network inet dgram,
network inet stream,
/bin/bash rix,
/bin/grep rix,
/{usr/,}bin/which rix,
/{usr/,}bin/lpstat rix,
/{usr/,}bin/basename rix,
/{usr/,}bin/mktemp rix,
/{usr/,}bin/date rix,
/{usr/,}bin/rm rix,
/{usr/,}bin/cut rix,
/{usr/,}bin/bc rix,
/{usr/,}bin/wc rix,
/tmp/lpstat* wr,
/var/run/nscd/services r,
/etc/cups/client.conf r,
/proc/sys/crypto/fips_enabled r,
}

View File

@ -0,0 +1,6 @@
#include <tunables/global>
/usr/lib/nagios/plugins/check_dhcp {
#include <abstractions/base>
#include <abstractions/nameservice>
capability net_raw,
}

View File

@ -0,0 +1,9 @@
#include <tunables/global>
/usr/lib/nagios/plugins/check_icmp {
#include <abstractions/base>
#include <abstractions/nameservice>
capability net_raw,
capability setuid,
network inet raw,
}

View File

@ -0,0 +1,10 @@
# Last Modified: Wed May 16 10:38:11 2012
#include <tunables/global>
/usr/lib/nagios/plugins/check_ide_smart {
#include <abstractions/base>
capability sys_admin,
capability sys_rawio,
/dev/s* r,
/dev/h* r,
}

View File

@ -0,0 +1,22 @@
#include <tunables/global>
/usr/lib/nagios/plugins/check_ntp_time {
#include <abstractions/base>
#include <abstractions/consoles>
#include <abstractions/nameservice>
#include <abstractions/xad>
network inet dgram,
network inet6 dgram,
capability ipc_lock,
capability net_bind_service,
capability sys_time,
capability sys_resource,
/etc/gai.conf r,
/usr/lib/nagios/plugins/check_ntp_time rm,
/etc/hosts r,
/etc/resolv.conf r,
/var/run/nscd/* r,
}

View File

@ -0,0 +1,12 @@
#include <tunables/global>
/usr/lib/nagios/plugins/check_ping {
#include <abstractions/base>
#include <abstractions/nameservice>
capability net_raw,
capability setuid,
network inet raw,
network inet6 raw,
/{usr/,}bin/ping rix,
/{usr/,}bin/ping6 rix,
}

View File

@ -0,0 +1,5 @@
#include <tunables/global>
/usr/lib/nagios/plugins/check_ssh flags=(complain) {
#include <abstractions/base>
#include <abstractions/nameservice>
}