Search Exchange
Search All Sites
Nagios Live Webinars
Let our experts show you how Nagios can help your organization.Login
Directory Tree
Directory
jlevy
byjlevy, August 10, 2018
#!/bin/bash
# Versao 1.2
# Criador: Aline Carvalho
# Criacao: 14/10/2009
# LastCHanges: 10/08/2018
# By Jeremy Levy
# |_ English Tradution. Corrige no exact name
#
# Objective: Verify that virtual server is online or offline
## Variables
VIRSH=`which virsh`
function check_srv {
HOST=$1
# Check if sudo command is installed
which sudo > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "ERRO: sudo not installing"
exit 3
fi
#sudo $VIRSH list | grep $HOST > /dev/null
RESULT=`sudo $VIRSH list | grep $HOST | cut -d" " -f7`
for FOO in $RESULT
do
#if [ $? != "0" ]
if [ "$FOO" != "$HOST" ]
then
echo "CRITICAL: Virtual Machine $HOST is down, or not exist!!!"
exit 2
else
STATE=`sudo $VIRSH list | grep $HOST | awk '{ print $3 }'`
if [ $STATE == "paused" ]
then
echo "WARNING: $HOST is in paused states."
exit 1
elif [ $STATE == "blocked" ]
then
echo "WARNING: $HOST is in blocked states."
exit 1
elif [ $STATE == "shutdown" ]
then
echo "WARNING: $HOST is in shutdown states."
exit 1
elif [ $STATE == "crashed" ]
then
echo "WARNING: $HOST is in crashed states."
exit 1
elif [ $STATE == "dying" ]
then
echo "WARNING: $HOST is in dying states."
exit 1
else
echo "OK: Virtual Machine $HOST is UP"
exit 0
fi
fi
done
}
function print_usage {
echo ""
echo ""
echo " Usage: $0 srv HOST "
echo ""
echo " Important: "
echo " First of all you need to configure sudo in /etc/sudores:"
echo " nagios ALL=(ALL) NOPASSWD:/usr/bin/virsh list"
echo " and comment the line # Defaults requiretty"
echo ""
}
## Checks if the user has typed the command with the correct parameters
case $1 in
srv)
HOST=$2
if [ -z $2 ]
then
echo ""
echo "You need to specify the virtual machine"
echo " ex: $0 $1 HOST"
echo ""
exit 3
fi
check_srv $HOST
;;
*)
print_usage
;;
esac
# Versao 1.2
# Criador: Aline Carvalho
# Criacao: 14/10/2009
# LastCHanges: 10/08/2018
# By Jeremy Levy
# |_ English Tradution. Corrige no exact name
#
# Objective: Verify that virtual server is online or offline
## Variables
VIRSH=`which virsh`
function check_srv {
HOST=$1
# Check if sudo command is installed
which sudo > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "ERRO: sudo not installing"
exit 3
fi
#sudo $VIRSH list | grep $HOST > /dev/null
RESULT=`sudo $VIRSH list | grep $HOST | cut -d" " -f7`
for FOO in $RESULT
do
#if [ $? != "0" ]
if [ "$FOO" != "$HOST" ]
then
echo "CRITICAL: Virtual Machine $HOST is down, or not exist!!!"
exit 2
else
STATE=`sudo $VIRSH list | grep $HOST | awk '{ print $3 }'`
if [ $STATE == "paused" ]
then
echo "WARNING: $HOST is in paused states."
exit 1
elif [ $STATE == "blocked" ]
then
echo "WARNING: $HOST is in blocked states."
exit 1
elif [ $STATE == "shutdown" ]
then
echo "WARNING: $HOST is in shutdown states."
exit 1
elif [ $STATE == "crashed" ]
then
echo "WARNING: $HOST is in crashed states."
exit 1
elif [ $STATE == "dying" ]
then
echo "WARNING: $HOST is in dying states."
exit 1
else
echo "OK: Virtual Machine $HOST is UP"
exit 0
fi
fi
done
}
function print_usage {
echo ""
echo ""
echo " Usage: $0 srv HOST "
echo ""
echo " Important: "
echo " First of all you need to configure sudo in /etc/sudores:"
echo " nagios ALL=(ALL) NOPASSWD:/usr/bin/virsh list"
echo " and comment the line # Defaults requiretty"
echo ""
}
## Checks if the user has typed the command with the correct parameters
case $1 in
srv)
HOST=$2
if [ -z $2 ]
then
echo ""
echo "You need to specify the virtual machine"
echo " ex: $0 $1 HOST"
echo ""
exit 3
fi
check_srv $HOST
;;
*)
print_usage
;;
esac