Vous êtes ici:

Menu

Exemple pratique de Centreon-Clapi

upgrade-centreon2602015-04-22_09-26-55_PM
Il y a des fois où il est intéressant de butiner sur la toile comme sur le forum de Centreon. Cela donne, de temps en temps, des idées pour réaliser des petits scripts šŸ˜€ Aujourd'hui, je vais réaliser un script avec Centreon-Clapi qui nous affichera les hôtes définis dans la base Centreon avec leurs services associés. Par défaut, le script n'affiche que les hôtes actifs et les services actifs. Une option (-d) permettant l'affichage de ceux-ci. Les hôtes et services désactivés seront signalés en rouge. Sinon le script est tout simple, il utilise la commande clapi centreon et la commande tail. N'oubliez pas d'adapter les chemins pour un bon fonctionnement. Ce script fonctionne avec Centreon-web 2.8.15.

syntaxe :
./show_hosts_services.sh -h
Usage: show_hosts_services.sh -u -p -d

This program show hosts with associated services

-u User Centreon.
-p Password Centreon
-d show disabled hosts/services
-h help

affichage des hôtes et services actif :
./show_hosts_services.sh -u admin -p password

affichage de tous les hôtes et services :
./show_hosts_services.sh -u admin -p password -d

Et voici le code
#!/bin/bash
# show_hosts_services.sh
# version 1.00
# date 19/11/2017


# Usage info
show_help() {
cat << EOF
Usage: ${0##*/} -u -p -d

This program show hosts with associated services

-u User Centreon.
-p Password Centreon
-d show disabled hosts/services
-h help
EOF
exit 2
}

SHOW_DISABLED=0

while getopts 'u:p:dh' OPTION
do
case $OPTION in
u)
USER_CENTREON="$OPTARG"
;;
p)
PWD_CENTREON="$OPTARG"
;;
d) SHOW_DISABLED=1
;;
?|h) show_help
;;
esac
done
shift $(($OPTIND - 1))

# Check for missing parameters
if [ -z "${USER_CENTREON}" ] || [ -z "${PWD_CENTREON}" ]; then
echo "Missing parameters!"
show_help
fi

NORMAL="\\033[0;39m"
RED="\\033[1;31m"


TAIL=/usr/bin/tail
CLAPI=/usr/share/centreon/bin/centreon

# read host
function read_host ()
{
$CLAPI -u $USER_CENTREON -p $PWD_CENTREON -o HOST -a SHOW | $TAIL -n+2 |

#lecture param
while read line
do
ID_HOST=`echo $line | cut -d ";" -f1 `
NAME_HOST=`echo $line | cut -d ";" -f2 `
ACTIVATE_HOST=`echo $line | cut -d ";" -f5 `
if [ "$ACTIVATE_HOST" == "0" ] && [ "$SHOW_DISABLED" == "1" ]; then
echo -e "$RED""Hosts Disabled : "$NAME_HOST"$NORMAL"
else
if [ "$ACTIVATE_HOST" == "1" ]; then
echo "Hosts : "$NAME_HOST
fi
fi
if [ "$ACTIVATE_HOST" == "1" ] || [ "$SHOW_DISABLED" == "1" ]; then
read_service $ID_HOST $ACTIVATE_HOST
fi
done

}

# read service
function read_service ()
{
$CLAPI -u $USER_CENTREON -p $PWD_CENTREON -o SERVICE -a SHOW | $TAIL -n+2 |

#lecture param
while read line
do
ID_HOST=`echo $line | cut -d";" -f1 `
if [ "$1" == "$ID_HOST" ]; then
NAME_SERVICE=`echo $line | cut -d ";" -f4 `
ACTIVATE_SERVICE=`echo $line | cut -d ";" -f12 `
if ([ "$ACTIVATE_SERVICE" == "0" ] || [ "$2" == "0" ]) && [ "$SHOW_DISABLED" == "1" ]; then
echo -e "$RED"" Service : "$NAME_SERVICE - disabled"$NORMAL"
else
if [ "$ACTIVATE_SERVICE" == "1" ]; then
echo " Service : "$NAME_SERVICE
fi
fi
fi
done

}

read_host


Et voici un aperçu du résultat

show_hosts_services

Bon scripting !

blog comments powered by Disqus
 Vous êtes ici: