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:
commit
1555f5b100
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal 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
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
215
check_ircd_ssl
Normal file
215
check_ircd_ssl
Normal 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};
|
||||
}
|
85
monitoring-plugins-1.4.14-check_log.patch
Normal file
85
monitoring-plugins-1.4.14-check_log.patch
Normal 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"
|
12
monitoring-plugins-1.4.14-ntpd.patch
Normal file
12
monitoring-plugins-1.4.14-ntpd.patch
Normal 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)';
|
||||
}
|
||||
|
||||
}
|
56
monitoring-plugins-1.4.6-no_chown.patch
Normal file
56
monitoring-plugins-1.4.6-no_chown.patch
Normal 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:
|
3
monitoring-plugins-2.0.tar.bz2
Normal file
3
monitoring-plugins-2.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:da55221547d56d680810c57ca943a83806aa38902c9afd3e44cda8d780fbff98
|
||||
size 2209391
|
25
monitoring-plugins-README.SUSE
Normal file
25
monitoring-plugins-README.SUSE
Normal 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 )
|
||||
|
120
monitoring-plugins-README.SUSE-check_cups
Normal file
120
monitoring-plugins-README.SUSE-check_cups
Normal 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
|
54
monitoring-plugins-README.SUSE-check_dhcp
Normal file
54
monitoring-plugins-README.SUSE-check_dhcp
Normal 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>
|
||||
}
|
||||
|
||||
|
||||
|
42
monitoring-plugins-README.SUSE-check_icmp
Normal file
42
monitoring-plugins-README.SUSE-check_icmp
Normal 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>
|
||||
}
|
||||
|
||||
|
||||
|
42
monitoring-plugins-README.SUSE-check_ide_smart
Normal file
42
monitoring-plugins-README.SUSE-check_ide_smart
Normal 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>
|
||||
}
|
||||
|
||||
|
||||
|
18
monitoring-plugins-permissions
Normal file
18
monitoring-plugins-permissions
Normal 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
|
12
monitoring-plugins-postgresql.patch
Normal file
12
monitoring-plugins-postgresql.patch
Normal 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>
|
||||
|
5
monitoring-plugins-rpmlintrc
Normal file
5
monitoring-plugins-rpmlintrc
Normal 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");
|
13
monitoring-plugins-too_few_arguments_for_check_disk.patch
Normal file
13
monitoring-plugins-too_few_arguments_for_check_disk.patch
Normal 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 */
|
44
monitoring-plugins-wrong_return_in_check_swap.patch
Normal file
44
monitoring-plugins-wrong_return_in_check_swap.patch
Normal 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
1003
monitoring-plugins.changes
Normal file
File diff suppressed because it is too large
Load Diff
371
monitoring-plugins.check_cups.sh
Normal file
371
monitoring-plugins.check_cups.sh
Normal 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"
|
13
monitoring-plugins.check_ntp.c-64bit-portability-issue.patch
Normal file
13
monitoring-plugins.check_ntp.c-64bit-portability-issue.patch
Normal 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));
|
||||
|
13
monitoring-plugins.check_snmp.arrayaddress.patch
Normal file
13
monitoring-plugins.check_snmp.arrayaddress.patch
Normal 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);
|
||||
}
|
125
monitoring-plugins.check_snmp.snmpv3-context.patch
Normal file
125
monitoring-plugins.check_snmp.snmpv3-context.patch
Normal 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");
|
||||
}
|
26
monitoring-plugins.negate.validate_arguments.patch
Normal file
26
monitoring-plugins.negate.validate_arguments.patch
Normal 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
1570
monitoring-plugins.spec
Normal file
File diff suppressed because it is too large
Load Diff
1393
monitoring-plugins.spec-20140715
Normal file
1393
monitoring-plugins.spec-20140715
Normal file
File diff suppressed because it is too large
Load Diff
31
usr.lib.nagios.plugins.check_cups
Normal file
31
usr.lib.nagios.plugins.check_cups
Normal 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,
|
||||
|
||||
}
|
6
usr.lib.nagios.plugins.check_dhcp
Normal file
6
usr.lib.nagios.plugins.check_dhcp
Normal file
@ -0,0 +1,6 @@
|
||||
#include <tunables/global>
|
||||
/usr/lib/nagios/plugins/check_dhcp {
|
||||
#include <abstractions/base>
|
||||
#include <abstractions/nameservice>
|
||||
capability net_raw,
|
||||
}
|
9
usr.lib.nagios.plugins.check_icmp
Normal file
9
usr.lib.nagios.plugins.check_icmp
Normal 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,
|
||||
}
|
10
usr.lib.nagios.plugins.check_ide_smart
Normal file
10
usr.lib.nagios.plugins.check_ide_smart
Normal 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,
|
||||
}
|
22
usr.lib.nagios.plugins.check_ntp_time
Normal file
22
usr.lib.nagios.plugins.check_ntp_time
Normal 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,
|
||||
}
|
12
usr.lib.nagios.plugins.check_ping
Normal file
12
usr.lib.nagios.plugins.check_ping
Normal 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,
|
||||
}
|
5
usr.lib.nagios.plugins.check_ssh
Normal file
5
usr.lib.nagios.plugins.check_ssh
Normal file
@ -0,0 +1,5 @@
|
||||
#include <tunables/global>
|
||||
/usr/lib/nagios/plugins/check_ssh flags=(complain) {
|
||||
#include <abstractions/base>
|
||||
#include <abstractions/nameservice>
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user