{{tag> nagios kvm}}
====== KVM-Hosts in Nagios anzeigen (über Nagios-nrpe) ======
{{:anwenderwiki:nagios:nagios-kvm.jpg|}}
Neues plugin **''check_kvm''**, Original von Karl Rink: [[http://exchange.nagios.org/directory/Plugins/Operating-Systems/*-Virtual-Environments/Others/check_kvm/details| download]]\\
Muss zunächst auf deutsche Textausgabe angepasst werden.
#!/bin/sh
# check_kvm - Check that a virtual machine is running.
# Written by Karl Rink
#
#----------------------------------------------------------------------
# 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
LIST=$(virsh list --all | sed '1,2d' | sed '/^$/d'| awk '{print $2":"$3}')
if [ ! "$LIST" ]; then
EXITVAL=3 #Status 3 = UNKNOWN (orange)
echo "Unknown guests"
exit $EXITVAL
fi
OK=0
WARN=0
CRIT=0
NUM=0
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
laufend) OK=$(expr $OK + 1) ;;
Ausgeschaltet) WARN=$(expr $WARN + 1) ;;
shutdown|shut*|crashed) CRIT=$(expr $CRIT + 1) ;;
*) CRIT=$(expr $CRIT + 1) ;;
esac
done
EXITVAL=0
#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 Hosts:$NUM Laufend:$OK Aus:$WARN CRIT:$CRIT - $LIST
exit $EXITVAL
Das Plugin in **''/opt/nagios''** ablegen und die Befehlszeile in **''/etc/nagios/nrpe_local.cfg''** einfügen.
command[check_kvm]=sudo /opt/nagios/check_kvm
Schließlich für sudo eine Datei anlegen: **''/etc/sudoers.d/nagios-kvm-suid''**:
# /etc/sudoers.d/nagios-kvm-suid
# MR 27.05.2013
#
Cmnd_Alias NAGIOS_CHECKS2=/opt/nagios/check_kvm
nagios ALL=NOPASSWD: NAGIOS_CHECKS2
Ggf. noch mit "visudo" das includedir aktivieren.