File:Check kvm.sh
Jump to navigation
Jump to search
Check_kvm.sh (file size: 3 KB, MIME type: application/x-sh)
Warning: This file type may contain malicious code. By executing it, your system may be compromised.
<source lang=bash>
- !/bin/sh
- check_kvm - Check that a virtual machine is running.
- Written by Karl Rink <krink@csun.edu>
- ----------------------------------------------------------------------
- COPYRIGHT : 12.2010 California State University, Northridge
- AUTHOR : Karl Rink
- BELONGS TO : Qemu/Kvm Nagios Integration
- DESCRIPTION : Runs "virsh list" and returns the available vms
- $Revision: 1.0 $
- Permission to use, copy, modify, distribute, and sell this software
- and its documentation for any purpose is hereby granted without fee,
- provided that the above copyright notice appear in all copies and that
- both that copyright notice and this permission notice appear in
- supporting documentation.
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHOR OR SUSE BE LIABLE 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.
- ----------------------------------------------------------------------
- Install: Put this script in nagios client directory libexec/check_kvm
- As a nagios nrpe plugin, add the following line to your client nrpe.cfg
- command[virt_check_kvm]=/opt/nagios/libexec/check_kvm
- No sudo is necessary if you simply add nagios user to the libvirt group
- libvirtd:x:118:nagios
PATH=/bin:/usr/bin:/sbin:/usr/sbin export PATH
spec=0 if [ "d$1" != "d" ]; then
spec=1 LIST=$(virsh list --all | sed '1,2d' | sed '/^$/d'| grep " $1 " | awk '{print $2":"$3}')
else
LIST=$(virsh list --all | sed '1,2d' | sed '/^$/d'| awk '{print $2":"$3}')
fi
if [ ! "$LIST" ]; then
EXITVAL=3 #Status 3 = UNKNOWN (orange) echo "Unknown guests" exit $EXITVAL
fi
OK=0 WARN=0 CRIT=0 NUM=0
hostname=`hostname`
for host in $(echo $LIST) do
name=$(echo $host | awk -F: '{print $1}') state=$(echo $host | awk -F: '{print $2}') NUM=$(expr $NUM + 1)
case "$state" in running|blocked) OK=$(expr $OK + 1) ;; paused) WARN=$(expr $WARN + 1) ;; shutdown|shut*|crashed) CRIT=$(expr $CRIT + 1) ;; *) CRIT=$(expr $CRIT + 1) ;; esac
done
if [ "$NUM" -eq "$OK" ]; then
EXITVAL=0 #Status 0 = OK (green)
fi
if [ "$WARN" -gt 0 ]; then
EXITVAL=1 #Status 1 = WARNING (yellow)
fi
if [ "$CRIT" -gt 0 ]; then
EXITVAL=2 #Status 2 = CRITICAL (red)
fi
echo ON HOST $hostname: hosts:$NUM OK:$OK WARN:$WARN CRIT:$CRIT - $LIST
exit $EXITVAL </source>
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Dimensions | User | Comment | |
---|---|---|---|---|
current | 00:08, 2 March 2013 | (3 KB) | Robertr (talk | contribs) |
File usage
The following page uses this file: