summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-02-22 15:26:46 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-02-22 15:26:46 +0100
commitec5d6fc82d8c5c3a607f3937cefbf9aa1fba150b (patch)
tree8c3f24001ddbe309cb0c02ab00f9f9299b9fcea8
parentf6b982a621aead4cf419672fdd0d739ce7db53e6 (diff)
downloaditzks-systems-ec5d6fc82d8c5c3a607f3937cefbf9aa1fba150b.tar.gz
itzks-systems-ec5d6fc82d8c5c3a607f3937cefbf9aa1fba150b.tar.bz2
itzks-systems-ec5d6fc82d8c5c3a607f3937cefbf9aa1fba150b.zip
Icinga2: Add check_apcupsd for virt-man servers.
-rw-r--r--debian/copyright19
-rw-r--r--debian/itzks-systems-virtman.install1
-rwxr-xr-xusr-lib-nagios-plugins/check_apcupsd228
3 files changed, 248 insertions, 0 deletions
diff --git a/debian/copyright b/debian/copyright
index b1c1b54..43ca9d9 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -38,6 +38,12 @@ License: GPL-2+
Comment:
https://exchange.nagios.org/directory/Plugins/Software/check_squid/details
+Files: usr-lib-nagios-plugins/check_apcupsd
+Copyright: 2008, Martin Toft <mt@martintoft.dk>
+License: MIT~OldStyle
+Comment:
+ https://exchange.nagios.org/directory/Plugins/Hardware/UPS/APC/check_apcupsd/details
+
Files: *
Copyright: 2012-2014, Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
License: GPL-2+
@@ -101,3 +107,16 @@ License: Expat
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
+
+License: MIT~OldStyle
+ Permission to use, copy, modify, and distribute this software for any
+ purpose with or without fee is hereby granted, provided that the above
+ copyright notice and this permission notice appear in all copies.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/debian/itzks-systems-virtman.install b/debian/itzks-systems-virtman.install
index 9301dd2..f2f4eb7 100644
--- a/debian/itzks-systems-virtman.install
+++ b/debian/itzks-systems-virtman.install
@@ -1 +1,2 @@
usr-lib-nagios-plugins/check_md_raid usr/lib/nagios/plugins/
+usr-lib-nagios-plugins/check_apcupsd usr/lib/nagios/plugins/
diff --git a/usr-lib-nagios-plugins/check_apcupsd b/usr-lib-nagios-plugins/check_apcupsd
new file mode 100755
index 0000000..b68b823
--- /dev/null
+++ b/usr-lib-nagios-plugins/check_apcupsd
@@ -0,0 +1,228 @@
+#!/bin/sh
+#
+# check_apcupsd 1.2
+# Nagios plugin to monitor APC Smart-UPSes using apcupsd.
+#
+# Copyright (c) 2008 Martin Toft <mt@martintoft.dk>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+#
+# Example configuration
+#
+# commands.cfg:
+#
+# define command {
+# command_name check_apcupsd
+# command_line $USER1$/check_apcupsd -w $ARG2$ -c $ARG3$ $ARG1$
+# }
+#
+# define command {
+# command_name check_apcupsd_no_notify
+# command_line $USER1$/check_apcupsd $ARG1$
+# }
+#
+# ups1.cfg:
+#
+# define service {
+# use generic-service
+# host_name ups1
+# service_description CHARGE
+# check_command check_apcupsd!bcharge!95!50
+# }
+#
+# define service {
+# use generic-service
+# host_name ups1
+# service_description TEMP
+# check_command check_apcupsd!itemp!35!40
+# }
+#
+# define service {
+# use generic-service
+# host_name ups1
+# service_description LOAD
+# check_command check_apcupsd!loadpct!70!85
+# }
+#
+# define service {
+# use generic-service
+# host_name ups1
+# service_description TIMELEFT
+# check_command check_apcupsd_no_notify!timeleft
+# }
+
+APCACCESS=/sbin/apcaccess
+
+usage()
+{
+ echo "usage: check_apcupsd [-c critical_value] [-h hostname] [-p port]"
+ echo -n " [-w warning_value] "
+ echo "<bcharge|itemp|loadpct|timeleft>"
+ echo
+ echo "hostname and port defaults to localhost and 3551, respectively."
+ echo
+ echo "checks:"
+ echo " bcharge = battery charge, measured in percent."
+ echo " itemp = internal temperature, measured in degree Celcius."
+ echo " loadpct = load percent, measured in percent (do'h!)."
+ echo " timeleft = time left with current battery charge and load,"
+ echo " measured in minutes."
+ exit 3
+}
+
+HOSTNAME=localhost
+PORT=3551
+
+while getopts c:h:p:w: OPTNAME; do
+ case "$OPTNAME" in
+ h)
+ HOSTNAME="$OPTARG"
+ ;;
+ p)
+ PORT="$OPTARG"
+ ;;
+ w)
+ WARNVAL="$OPTARG"
+ ;;
+ c)
+ CRITVAL="$OPTARG"
+ ;;
+ *)
+ usage
+ ;;
+ esac
+done
+
+ARG="$@"
+while [ $OPTIND -gt 1 ]; do
+ ARG=`echo "$ARG" | sed 's/^[^ ][^ ]* *//'`
+ OPTIND=$(($OPTIND-1))
+done
+
+if [ "$ARG" != "bcharge" -a "$ARG" != "itemp" -a "$ARG" != "loadpct" \
+ -a "$ARG" != "timeleft" ]; then
+ usage
+fi
+
+if [ "`echo $PORT | grep '^[0-9][0-9]*$'`" = "" ]; then
+ echo "Error: port must be a positive integer!"
+ exit 3
+fi
+
+if [ "$WARNVAL" != "" -a "`echo $WARNVAL | grep '^[0-9][0-9]*$'`" = "" ]; then
+ echo "Error: warning_value must be a positive integer!"
+ exit 3
+fi
+
+if [ "$CRITVAL" != "" -a "`echo $CRITVAL | grep '^[0-9][0-9]*$'`" = "" ]; then
+ echo "Error: critical_value must be a positive integer!"
+ exit 3
+fi
+
+if [ "$WARNVAL" != "" -a "$CRITVAL" != "" ]; then
+ if [ "$ARG" = "bcharge" -o "$ARG" = "timeleft" ]; then
+ if [ $WARNVAL -le $CRITVAL ]; then
+ echo "Error: warning_value must be greater than critical_value!"
+ exit 3
+ fi
+ else
+ if [ $WARNVAL -ge $CRITVAL ]; then
+ echo "Error: warning_value must be less than critical_value!"
+ exit 3
+ fi
+ fi
+fi
+
+if [ ! -x "$APCACCESS" ]; then
+ echo "Error: $APCACCESS must exist and be executable!"
+ exit 3
+fi
+
+$APCACCESS status $HOSTNAME:$PORT > /dev/null
+if [ $? -ne 0 ]; then
+ # The error message from apcaccess will do fine.
+ exit 3
+fi
+
+VALUE=`$APCACCESS status $HOSTNAME:$PORT | grep -i ^$ARG | \
+ sed 's/.*: *\([0-9.][0-9.]*\)[^0-9.].*/\1/'`
+if [ "$VALUE" != "0" ]; then
+ VALUE=`echo $VALUE | sed 's/^0*//'`
+fi
+ROUNDED=`echo $VALUE | sed 's/\..*//'`
+
+case "$ARG" in
+bcharge)
+ if [ "$CRITVAL" != "" ]; then
+ if [ $ROUNDED -lt $CRITVAL ]; then
+ echo "CRITICAL - Battery Charge: ${VALUE}%"
+ exit 2
+ fi
+ fi
+ if [ "$WARNVAL" != "" ]; then
+ if [ $ROUNDED -lt $WARNVAL ]; then
+ echo "WARNING - Battery Charge: ${VALUE}%"
+ exit 1
+ fi
+ fi
+ echo "OK - Battery Charge: ${VALUE}%"
+ ;;
+itemp)
+ if [ "$CRITVAL" != "" ]; then
+ if [ $ROUNDED -ge $CRITVAL ]; then
+ echo "CRITICAL - Internal Temperature: $VALUE C"
+ exit 2
+ fi
+ fi
+ if [ "$WARNVAL" != "" ]; then
+ if [ $ROUNDED -ge $WARNVAL ]; then
+ echo "WARNING - Internal Temperature: $VALUE C"
+ exit 1
+ fi
+ fi
+ echo "OK - Internal Temperature: $VALUE C"
+ ;;
+loadpct)
+ if [ "$CRITVAL" != "" ]; then
+ if [ $ROUNDED -ge $CRITVAL ]; then
+ echo "CRITICAL - Load: ${VALUE}%"
+ exit 2
+ fi
+ fi
+ if [ "$WARNVAL" != "" ]; then
+ if [ $ROUNDED -ge $WARNVAL ]; then
+ echo "WARNING - Load: ${VALUE}%"
+ exit 1
+ fi
+ fi
+ echo "OK - Load: ${VALUE}%"
+ ;;
+timeleft)
+ if [ "$CRITVAL" != "" ]; then
+ if [ $ROUNDED -lt $CRITVAL ]; then
+ echo "CRITICAL - Time Left: $VALUE Minutes"
+ exit 2
+ fi
+ fi
+ if [ "$WARNVAL" != "" ]; then
+ if [ $ROUNDED -lt $WARNVAL ]; then
+ echo "WARNING - Time Left: $VALUE Minutes"
+ exit 1
+ fi
+ fi
+ echo "OK - Time Left: $VALUE Minutes"
+ ;;
+esac
+
+exit 0