mirror of
https://github.com/opinkerfi/nagios-plugins.git
synced 2024-11-22 02:13:44 +01:00
This commit is contained in:
parent
3cd78668ed
commit
b6788ba897
141
check_rhcs/trunk/check_rhcs_cman_subsystems.sh
Executable file
141
check_rhcs/trunk/check_rhcs_cman_subsystems.sh
Executable file
@ -0,0 +1,141 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright 2010, Pall Sigurdsson <palli@opensource.is>
|
||||||
|
#
|
||||||
|
# This script is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This script is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# About this script
|
||||||
|
#
|
||||||
|
# Checks uptime of a specified host, using NRPE is host is remote
|
||||||
|
|
||||||
|
HOSTN="localhost" # By default check localhost
|
||||||
|
CHECK_COMMAND="group_tool ls 0 default" # Default command to check selinux status
|
||||||
|
ok=0
|
||||||
|
warning=1
|
||||||
|
critical=2
|
||||||
|
unknown=3
|
||||||
|
|
||||||
|
print_help() {
|
||||||
|
echo "check_rhcs_cman version $VERSION"
|
||||||
|
echo "This plugin checks cman groups"
|
||||||
|
echo ""
|
||||||
|
echo "Usage: $0 [-H <host>] <-l LEVEL> <--group GROUP>"
|
||||||
|
echo ""
|
||||||
|
echo "Examples:"
|
||||||
|
echo "# check_rhcs_fencing.sh --level 0 --group default"
|
||||||
|
echo "# check_rhcs_fencing.sh --level 1 --group rgmanager"
|
||||||
|
}
|
||||||
|
|
||||||
|
#if [ $# -eq 0 ]; then
|
||||||
|
# print_help ;
|
||||||
|
# exit $UNKNOWN
|
||||||
|
#fi
|
||||||
|
|
||||||
|
|
||||||
|
# Parse arguments
|
||||||
|
while [ $# -gt 0 ]
|
||||||
|
do
|
||||||
|
case $1
|
||||||
|
in
|
||||||
|
-H)
|
||||||
|
HOSTN=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--group)
|
||||||
|
GROUP=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--level)
|
||||||
|
LEVEL=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
print_help ;
|
||||||
|
exit $UNKNOWN
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z $GROUP ]; then
|
||||||
|
echo "ERROR - --group not specified"
|
||||||
|
print_help ;
|
||||||
|
exit $UNKNOWN
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z $LEVEL ]; then
|
||||||
|
echo "ERROR - --level not specified"
|
||||||
|
print_help ;
|
||||||
|
exit $UNKNOWN
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# We we are not checking localhost, lets get remote uptime via NRPE
|
||||||
|
if [ "$HOSTN" != "localhost" ]; then
|
||||||
|
export PATH=$PATH:/usr/lib/nagios/plugins:/usr/lib64/nagios/plugins:/nagios/usr/lib/nagios/plugins
|
||||||
|
CHECK_COMMAND="check_nrpe -H $HOSTN -c check_cman_group -a $LEVEL $GROUP"
|
||||||
|
fi
|
||||||
|
|
||||||
|
CHECK_COMMAND="group_tool ls $LEVEL $GROUP"
|
||||||
|
|
||||||
|
# group_tool ls
|
||||||
|
# type level name id state
|
||||||
|
# fence 0 default 00020001 none
|
||||||
|
# [1]
|
||||||
|
# dlm 1 rgmanager 00030001 none
|
||||||
|
#[1 2]
|
||||||
|
|
||||||
|
# Get the uptime, raise error if we are unsuccessful
|
||||||
|
OUTPUT=`$CHECK_COMMAND 2>&1`
|
||||||
|
RESULT=$?
|
||||||
|
SUMMARY=""
|
||||||
|
|
||||||
|
|
||||||
|
# group_tool should only return status 0 or 1
|
||||||
|
# if higher, then something unexpected occured
|
||||||
|
if [ $RESULT -ge 2 ]; then
|
||||||
|
echo "group_tool error: could not run command $CHECK_COMMAND"
|
||||||
|
echo "output:"
|
||||||
|
echo "$OUTPUT"
|
||||||
|
exit $unknown
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -- $OUTPUT
|
||||||
|
type=$6
|
||||||
|
level=$7
|
||||||
|
name=$8
|
||||||
|
id=$9
|
||||||
|
state=${10}
|
||||||
|
# Check if group_tool command ran successfully
|
||||||
|
if [ $RESULT -ne 0 ]; then
|
||||||
|
echo "group_tool error: group $GROUP level $LEVEL not found."
|
||||||
|
echo "output:"
|
||||||
|
echo "$OUTPUT"
|
||||||
|
exit $critical
|
||||||
|
else
|
||||||
|
echo $OUTPUT | grep -qw "none"
|
||||||
|
RESULT=$?
|
||||||
|
if [ $RESULT -ne 0 ]; then
|
||||||
|
echo "group_tool error: group is in abnormal state. name=$name type=$type level=$level state=$state"
|
||||||
|
echo "output:"
|
||||||
|
echo "$OUTPUT"
|
||||||
|
exit $critical
|
||||||
|
else
|
||||||
|
echo "group_tool: group ok and in state 'none'. name=$name type=$type level=$level state=$state"
|
||||||
|
echo "output:"
|
||||||
|
echo "$OUTPUT"
|
||||||
|
exit $ok
|
||||||
|
fi
|
||||||
|
fi
|
@ -5,3 +5,11 @@ command[get_rhcs_fencing]=test ! -p /tmp/fence_manual.fifo
|
|||||||
command[check_rhcs_fencing]=/usr/lib64/nagios/plugins/check_rhcs_manualfencing.sh
|
command[check_rhcs_fencing]=/usr/lib64/nagios/plugins/check_rhcs_manualfencing.sh
|
||||||
|
|
||||||
|
|
||||||
|
command[get_rhcs_cman_group]=/sbin/group_tool ls '$ARG1$' '$ARG2$'
|
||||||
|
command[get_rhcs_cman_group_default]=/sbin/group_tool ls 0 default
|
||||||
|
command[get_rhcs_cman_group_rgmanager]=/sbin/group_tool ls 1 rgmanager
|
||||||
|
|
||||||
|
|
||||||
|
command[check_rhcs_cman_group]=/usr/lib64/nagios/plugins/check_rhcs_cman_group.sh --level '$ARG1$' --group '$ARG2$'
|
||||||
|
command[check_rhcs_cman_group_default]=/usr/lib64/nagios/plugins/check_rhcs_cman_group.sh --level 0 --group default
|
||||||
|
command[check_rhcs_cman_group]_rgmanager=/usr/lib64/nagios/plugins/check_rhcs_cman_group.sh --level 1 --group rgmanager
|
||||||
|
Loading…
Reference in New Issue
Block a user