Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
anwenderwiki:nagios:nagios-kvm [2013/05/28 22:56] |
anwenderwiki:nagios:nagios-kvm [2013/05/28 22:56] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | {{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. | ||
+ | |||
+ | <code text check_kvm> | ||
+ | #!/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 | ||
+ | |||
+ | 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 | ||
+ | |||
+ | </code> | ||
+ | |||
+ | 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''**: | ||
+ | <code text 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 | ||
+ | |||
+ | </code> | ||
+ | |||
+ | Ggf. noch mit "visudo" das includedir aktivieren. |