miércoles, 3 de marzo de 2010

Monitorizar Xen con Nagios






Script check_xenvm

#!/bin/sh
#
# COPYRIGHT : (c) 2006 SUSE Linux GmbH. All rights reserved.
#
# AUTHOR : Axel Schmidt
#
# BELONGS TO : NLPOS/SLEPOS/Xen Nagios Integration
#
# DESCRIPTION : Runs "xm list" and returns the available xen 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.

PARM1=$1
WARN=$2
PARM2=$3
CRIT=$4


if [ "$PARM2" != "-c" -o "$CRIT" == "" ]; then
echo "Usage: $0 -w -c "
# Nagios exit code 3 = status UNKNOWN = orange

if [ "$PARM1" != "-h" ]; then
exit 3
else
echo ""
echo " -w = Minimum Number of Xen VMs to activate a warning message."
echo " -c = Number of Xen VMs to activate a critical message."
echo " -h = This help message."
exit 3
fi
fi


RUNNING=$(sudo /usr/sbin/xm list | awk '!/[DN]/ {print $1 }')
NBVMS=$(echo $RUNNING | wc -w)
HNAME=$(hostname)

#echo "Xen Running =" $RUNNING

if [ "$NBVMS" -le "$CRIT" ]; then
echo "Critical Xen VMs Usage - Total NB: $NBVMS - detected VMs: $RUNNING"
# Nagios exit code 2 = status CRITICAL = red
exit 2
else if [ "$NBVMS" -le "$WARN" ]; then
echo "Warning Xen VMs Usage - Total NB: $NBVMS - detected VMs: $RUNNING"
# Nagios exit code 1 = status WARNING = yellow
exit 1
else
echo "OK: Xen Hypervisor \"$HNAME\" is running Xen VMs: $RUNNING"
# Nagios exit code 0 = status OK = green
exit 0
fi
fi
Comando

# added for Xen VM Monitoring

define command{
command_name check_xen_vm
command_line $USER1$/check_xenvm -w $ARG1$ -c $ARG2$
}

Servicio

define service{
use generic-service
host_name localhost
service_description Xen Virtual Machine Monitor
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 60
notification_period 24x7
check_command check_xen_vm!2!0
}
/etc/sudoers

  • Login as root
  • Execute: visudo1
  • Add the following line:
    nagios ALL=(ALL) NOPASSWD:/usr/sbin/xm list
  • Save changes and exit visudo

No hay comentarios:

Publicar un comentario