Search Exchange

Search All Sites

Nagios Live Webinars

Let our experts show you how Nagios can help your organization.

Contact Us

Phone: 1-888-NAGIOS-1
Email: sales@nagios.com

Login

Remember Me

check_virsh

Rating
4 votes
Favoured:
0
Hits
154480
Files:
FileDescription
check_virsh.shcheck_virsh.sh
Network Monitoring Software - Download Nagios XI
Log Management Software - Nagios Log Server - Download
Netflow Analysis Software - Nagios Network Analyzer - Download
Script to check KVM's hosts
Script to check KVM's hosts
Reviews (2)
#!/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
byjtennity, August 2, 2016
1 of 1 people found this review helpful
After converting it to english and to the right text format by making a new file and copy and pasting code into it, it worked.

past this into /etc/sudoers:
nagios ALL=(ALL) NOPASSWD:/usr/bin/virsh list

and uncomment the line:
Defaults requiretty

to run command, type:
./check_virsh srv "virtual machine name"
example: ./check_virsh srv server1.example.com