Vm kvm cluster verification

De BlaxWiki
Révision datée du 3 janvier 2013 à 14:06 par 217.174.199.129 (discussion) (Page créée avec « Ce script sert à verifier si les vm sont sur le bon hyperviseur. Certain parametre comme le volnode sont peut etre à adapter pour retourner le bon hostname. Certaines li... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche

Ce script sert à verifier si les vm sont sur le bon hyperviseur. Certain parametre comme le volnode sont peut etre à adapter pour retourner le bon hostname. Certaines lignes concernent de la supervision spécifique, elles peuvent etre ignorées.

#!/bin/sh
PATH=$PATH:/bin:/usr/bin:/sbin:/usr/sbin
VC=/opt/agarik/Vision/bin/bb_send_raw
VCDISPLAY=supervision.agarik.com
VCTARGET="hv1,ods-lamp,cnrs"
VCSERVICE=appli
LOG=/var/log/chkvmlocation.log
XML_CONFDIR=/etc/libvirt/qemu/

HYPERVISOR=`hostname  | awk -F"." '{print $1}'`

echo "VM location on current hypervisor: ${HYPERVISOR}" > $LOG

# Check each VM currently running on this hypervisor
for vm in `virsh list |awk '{print $2}' | grep -v "Name" |grep -v "^$";`; do
        # Get volume
        VOLNODE=`grep volnode ${XML_CONFDIR}${vm}.xml | awk -F"dev=" '{print $2}' | awk -F"/" '{print $3}'| sed -e 's/volnode0/hv/g'`
        # tweak for multiple device (linux system)
        CURR_NODE=`echo $VOLNODE | awk '{print $1}'`
        # if it is ok
        if [ "$HYPERVISOR" == "$CURR_NODE" ]; then
                echo "${vm} : OK" >> $LOG
        else
                echo "${vm} : KO" >> $LOG
        fi
done

# Check if we have some errors
grep KO $LOG > /dev/null 2>&1
if [ $? -eq 0 ]; then
        VCCOLOR=red
else
        VCCOLOR=green
fi

VCDATA="status+15 $VCTARGET.$VCSERVICE $VCCOLOR `/bin/date` $VCSERVICE
`cat $LOG`"
$VC $VCDISPLAY "$VCDATA"