Table of Contents

Guide Utilisateur Monitoring

inlinetoc

Introduction

Introduction

Le plugin Monitoring de GLPI permet de paramétrer depuis celui-ci les éléments essentiels de la supervision par SHINKEN :

Description sommaire

Les commandes définissent toutes les commandes utilisées par SHINKEN pour surveiller les hôtes (exemple : ping, requètes http…). Habituellement on ne touche pas à ces configurations. On va juste se servir des objets commandes pour les ajouter au Catalogue de commandes.

L'objet commande décrit :

Création de commandes

Les plugins nagios (et donc les commandes) ont été normalement installés avec Shinken.

Pour ajouter des commandes cf . le Guide utilisateur avancé.

Configuration des commandes

Toutes les commandes fournies par Shinken ne sont pas définies dans le plugin glpi_monitoring.

Tableau comparatif des commandes NAGIOS/PLUGIN MONITORING

Commande GLPI Commande SHINKEN Détail
_echo
_internal_host_up_internal_host_up
3Business rulesbp_rulebp_rule
check_dig$NAGIOSPLUGINSDIR$/check_dig -H $HOSTADDRESS$ -l $ARG1$
check_host_alive$NAGIOSPLUGINSDIR$/check_ping -H $HOSTADDRESS$ -w 1000,100% -c 3000,100% -p 1
check_nrpe$NAGIOSPLUGINSDIR$/check_nrpe -H $HOSTADDRESS$ -t 9 -u -c $ARG1$
check_nrpe_args$NAGIOSPLUGINSDIR$/check_nrpe -H $HOSTADDRESS$ -t 9 -u -c $ARG1$ -a $ARG2$ $ARG3$ $ARG4$ $ARG5$
check_ping$NAGIOSPLUGINSDIR$/check_icmp -H $HOSTADDRESS$ -w 3000,100% -c 5000,100% -p 10
check_snmp_service$NAGIOSPLUGINSDIR$/check_snmp_service -H $HOSTADDRESS$ -C $SNMPCOMMUNITYREAD$
check_snmp_storage$NAGIOSPLUGINSDIR$/check_snmp_storage.pl -H $HOSTADDRESS$ -C $SNMPCOMMUNITYREAD$ -m $ARG1$ -f -w $ARG2$ -c $ARG3$ -S0,1 -o 65535
check_snmp_time$NAGIOSPLUGINSDIR$/check_snmp_time.pl -H $HOSTADDRESS$ -C $SNMPCOMMUNITYREAD$ -f -w $ARG1$ -c $ARG2$
check_tcp$NAGIOSPLUGINSDIR$/check_tcp -H $HOSTADDRESS$ -p $ARG1$
configuration-checksudo /etc/init.d/shinken check
detailled-host-by-email$PLUGINSDIR$/notify_by_email.py -n host -S localhost -r $CONTACTEMAIL$ -f html -c “$NOTIFICATIONTYPE$,,$HOSTNAME$,,$HOSTADDRESS$,,$LONGDATETIME$”“ -o ”“$HOSTSTATE$,,$HOSTDURATION$” -d “$_HOSTDETAILLEDDESC$” -i “$_HOSTIMPACT$”
detailled-service-by-email$PLUGINSDIR$/notify_by_email.py -n service -S localhost -r $CONTACTEMAIL$ -f html -c “$NOTIFICATIONTYPE$,,$HOSTNAME$,,$HOSTADDRESS$,,$LONGDATETIME$” -o “$SERVICEDESC$,,$SERVICESTATE$,,$SERVICEOUTPUT$,,$SERVICEDURATION$” -d “$_SERVICEDETAILLEDESC$” -i “$_SERVICEIMPACT$” -a “$_SERVICEFIXACTIONS$”
notify-host-by-android-smsandroid_sms $CONTACTPAGER$ Host: $HOSTNAME$\nAddress: $HOSTADDRESS$\nState: $HOSTSTATE$\nInfo: $OUTPUT$\nDate: $DATETIME$
notify-host-by-email$PLUGINSDIR$/notify_by_email.py -n host -S localhost -r $CONTACTEMAIL$ -f html -c “$NOTIFICATIONTYPE$,,$HOSTNAME$,,$HOSTADDRESS$,,$LONGDATETIME$” -o “$HOSTALIAS$,,$HOSTSTATE$,,$HOSTDURATION$”
notify-host-by-xmpp$PLUGINSDIR$/notify_by_xmpp.py -a $PLUGINSDIR$/notify_by_xmpp.ini “Host '$HOSTNAME$' is $HOSTSTATE$ - Info : $HOSTOUTPUT$” $CONTACTEMAIL$
notify-service-by-android-smsandroid_sms $CONTACTPAGER$ Service: $SERVICEDESC$\nHost: $HOSTNAME$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nInfo: $OUTPUT$\nDate: $DATETIME$
notify-service-by-email$PLUGINSDIR$/notify_by_email.py -n service -S localhost -r $CONTACTEMAIL$ -f html -c “$NOTIFICATIONTYPE$,,$HOSTNAME$,,$HOSTADDRESS$,,$LONGDATETIME$” -o “$SERVICEDESC$,,$SERVICESTATE$,,$SERVICEOUTPUT$,,$SERVICEDURATION$”
notify-service-by-xmpp$PLUGINSDIR$/notify_by_xmpp.py -a $PLUGINSDIR$/notify_by_xmpp.ini “$NOTIFICATIONTYPE$ $HOSTNAME$ $SERVICEDESC$ $SERVICESTATE$ $SERVICEOUTPUT$ $LONGDATETIME$” $CONTACTEMAIL$
12Check local diskpm-check-host-alive$PLUGINSDIR$/check.sh $HOSTADDRESS$ -c $ARG1$ SERVICE $USER1$
11Check local cpupm-check_cpu_usage$PLUGINSDIR$/check_cpu_usage -w $ARG1$ -c $ARG2$
4Check a DNS entrypm-check_dig$PLUGINSDIR$/check_dig -H $HOSTADDRESS$ -l $ARG1$
6Check diskpm-check_disk$PLUGINSDIR$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
17Dummy checkpm-check_dummy$PLUGINSDIR$/check_dummy $ARG1$ “$ARG2$”
18ESX hosts checkspm-check_esx_host$PLUGINSDIR$/check_esx3.pl -D $VCENTER$ -H $HOSTADDRESS$ -u $VCENTERLOGIN$ -p $VCENTERPASSWORD$ l $ARG1$
19ESX VM checkspm-check_esx_vm$PLUGINSDIR$/check_esx3.pl -D $VCENTER$ -N $HOSTALIAS$ -u $VCENTERLOGIN$ -p $VCENTERLOGIN$ -l $ARG1$
5Check a FTP servicepm-check_ftp$PLUGINSDIR$/check_ftp -H $HOSTADDRESS$
7Check host alive (ICMP)pm-check_host_alive$NAGIOSPLUGINSDIR$/check_icmp -H $HOSTADDRESS$ -w 1000,100% -c 3000,100% -p 1
pm-check_hpjd$PLUGINSDIR$/check_hpjd -H $HOSTADDRESS$ -C $SNMPCOMMUNITYREAD$
pm-check_http$PLUGINSDIR$/check_http -H $HOSTADDRESS$
pm-check_https$PLUGINSDIR$/check_http -H $HOSTADDRESS$ -S
pm-check_https_certificate$PLUGINSDIR$/check_http -H $HOSTADDRESS$ -C 30
pm-check_ldap$PLUGINSDIR$/check_ldap -H $HOSTADDRESS$ -b “$LDAPBASE$” -D $DOMAINUSER$ -P “$DOMAINPASSWORD$”
pm-check_ldaps$PLUGINSDIR$/check_ldaps -H $HOSTADDRESS$ -b “$LDAPBASE$” -D $DOMAINUSER$ -P “$DOMAINPASSWORD$”
pm-check_linux_host_alive$PLUGINSDIR$/check_tcp -H $HOSTADDRESS$ -p 22 -t 3
10Check loadpm-check_load$PLUGINSDIR$/check_load -r -w $ARG1$ -c $ARG2$
pm-check_mssql_connexion$PLUGINSDIR$/check_mssql_health –hostname $HOSTADDRESS$ –username “$MSSQLUSER$” –password “$MSSQLPASSWORD$” –mode connection-time
16Distant mysql checkpm-check_mysql_connexion$PLUGINSDIR$/check_mysql -H $HOSTADDRESS$ -u $MYSQLUSER$ -p $MYSQLPASSWORD$
1Ask a nrpe agentpm-check_nrpe$NAGIOSPLUGINSDIR$/check_nrpe -H $HOSTADDRESS$ -t $ARG1$ -u $ARG2$ -c $ARG3$
2Ask a nrpe agent with argumentspm-check_nrpe_args$NAGIOSPLUGINSDIR$/check_nrpe -H $HOSTADDRESS$ -t $ARG1$ -u $ARG2$ -c $ARG3$ -a $ARG4$ $ARG5$ $ARG6$ $ARG7$ $ARG8$ $ARG9$
pm-check_oracle_listener$PLUGINSDIR$/check_oracle –tns $HOSTADDRESS$
8Check host alive (ping)pm-check_ping$NAGIOSPLUGINSDIR$/check_ping -H $HOSTADDRESS$ -w 3000,100% -c 5000,100% -p 1
pm-check_smtp$PLUGINSDIR$/check_smtp -H $HOSTADDRESS$
pm-check_smtps$PLUGINSDIR$/check_smtp -H $HOSTADDRESS$ -S
13Check snmppm-check_snmp$PLUGINSDIR$/check_snmp -H $HOSTADDRESS$ -P $ARG1$ -C $ARG2$ -o $ARG3$,$ARG4$,$ARG5$,$ARG6$,$ARG7$,$ARG8$,$ARG9$,$ARG10$
pm-check_ssh$PLUGINSDIR$/check_ssh -H $HOSTADDRESS$
9Check Linux host alivepm-check_tcp$PLUGINSDIR$/check_tcp -H $HOSTADDRESS$ -p $ARG1$
14Check users connectedpm-check_users$PLUGINSDIR$/check_users -w $ARG1$ -c $ARG2$
15Check Windows host alivepm-check_windows_host_alive$PLUGINSDIR$/check_tcp -H $HOSTADDRESS$ -p 139 -t 3
pm-detailled-host-by-email/usr/bin/printf “%b” “Shinken Notification\n\nType:$NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nDate/Time: $DATE$/$TIME$\n Host Output : $HOSTOUTPUT$\n\nHost description: $_HOSTDESC$\nHost Impact: $_HOSTIMPACT$” | /usr/bin/mail -s “Host $HOSTSTATE$ alert for $HOSTNAME$” $CONTACTEMAIL$
pm-detailled-service-by-email/usr/bin/printf “%b” “Shinken Notification\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $DATE$ at $TIME$\nService Output : $SERVICEOUTPUT$\n\nService Description: $_SERVICEDETAILLEDESC$\nService Impact: $_SERVICEIMPACT$\nFix actions: $_SERVICEFIXACTIONS$” | /usr/bin/mail -s “$SERVICESTATE$ on Host : $HOSTALIAS$/Service : $SERVICEDESC$” $CONTACTEMAIL$
20Host actionpm-host_actionhost_action
pm-notify-host-by-email/usr/bin/printf “%b” “Shinken Notification\n\nType:$NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\nDate/Time: $DATE$ $TIME$\n” | /usr/bin/mail -s “Host $HOSTSTATE$ alert for $HOSTNAME$” $CONTACTEMAIL$
pm-notify-host-by-email-py$PLUGINSDIR$/send_mail_host.py -n “$NOTIFICATIONTYPE$” -H “$HOSTALIAS$” -a “$HOSTADDRESS$” -i “$SHORTDATETIME$” -o “$HOSTOUTPUT$” -t “$CONTACTEMAIL$” -r “$HOSTSTATE$” -S shinken@localhost
pm-notify-host-by-xmpp$PLUGINSDIR$/notify_by_xmpp.py -a $PLUGINSDIR$/notify_by_xmpp.ini “Host $HOSTNAME$ is $HOSTSTATE$ - Info : $HOSTOUTPUT$” $CONTACTEMAIL$
pm-notify-service-by-email/usr/bin/printf “%b” “Shinken Notification\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTNAME$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $DATE$ $TIME$\nAdditional Info : $SERVICEOUTPUT$\n” | /usr/bin/mail -s “ $NOTIFICATIONTYPE$ alert - $HOSTNAME$/$SERVICEDESC$ is $SERVICESTATE$ ” $CONTACTEMAIL$
pm-notify-service-by-email-py$PLUGINSDIR$/send_mail_service.py -s “$SERVICEDESC$” -n “$NOTIFICATIONTYPE$” -H “$HOSTALIAS$” -a “$HOSTADDRESS$” -i “$SHORTDATETIME$” -o “$SERVICEOUTPUT$” -t “$CONTACTEMAIL$” -r “$SERVICESTATE$” -S shinken@localhost
pm-notify-service-by-xmpp$PLUGINSDIR$/notify_by_xmpp.py -a $PLUGINSDIR$/notify_by_xmpp.ini “$NOTIFICATIONTYPE$ $HOSTNAME$ $SERVICEDESC$ $SERVICESTATE$ $SERVICEOUTPUT$ $LONGDATETIME$” $CONTACTEMAIL$
reload-shinkennohup sh -c '/etc/init.d/shinken reload' > /dev/null 2>&1 &
restart-shinkennohup sh -c '/etc/init.d/shinken restart' > /dev/null 2>&1 &
restart_shinkennohup sh -c '/usr/local/shinken/bin/stop_arbiter.sh && sleep 3 && /usr/local/shinken/bin/launch_arbiter.sh' > /dev/null 2>&1 &

Afin d'utiliser un chemin relatif dans la ligne de commande renseigner le $PATH dans: SHINKEN_DIR/resource.d/paths.cfg (sur le serveur Shinken).

Vérification de la configuration

Il est préférable de tester les commandes localement afin de voir si cela fonctionne bien. Par exemple

user@shinken:~$./check_snmp_storage.pl -H 127.0.0.1 -C public -m / -w 80% -c 90% -G\\ /dev: 0%used(0GB/0GB) /: 20%used(11GB/57GB) (<80%) : OK

Configuration des calendriers

Description sommaire

Les calendriers définissent les périodes pour monitorer les hôte :

Un objet calendrier décrit :

Définir les calendriers

Créer un nouvel élément de calendrier

Dans la vue par défaut du plugin Monitoring appuyer sur = pour accéder à la vue système

Dans le menu Calendrier ajouter une élément +

Créer l'élément de calendrier en indiquant le nom

puis cliquer sur Ajouter

Renseigner les éléments de planification

Ajouter des plages de planification

Retourner dans le menu calendrier

Sélectionner le calendrier

Ajouter autant de plages horaires que nécessaire

Enregistrer les modifications

Retourner dans Calendrier puis Sauvegarder

Configuration des composants

Description sommaire

Les composants sont une association de 3 objets, qui définiront un contrôle avec :

Créer le composant

Créer le composant

Dans la vue par défaut du plugin Monitoring appuyer sur = pour accéder à la vue système

Dans le menu Composants ajouter une élément +

Créer le composant en indiquant :

  1. le nom
  2. la commande
  3. Sélectionner un modèle graphique. La plupart des modèles sont déjà définis. Si vous souhaitez en créer un: Il suffit de mettre votre commande dans le champ Example of perfdata for this control et Enregistrer. Le plugin va générer un nouveau modèle.
  4. la définition de contrôle
  5. la période de contrôle


Modifier le composant ainsi créé

Renseigner les arguments

Certains arguments passés par une commande peuvent être variabilisés dans l'objet commande (cf guide avancé)

Renseigner les arguments de la commande

Il est possible d'utiliser des mots-clefs (tags)

Ces tags représentent des valeurs qui seront récupérées dans les informations de l'hôte afin de servir l'argument concerné.

Liste des tags disponibles :

Ainsi le tag [SNMP:authentication] va passer en argument la communaté SNMP (pour équipement réseau uniquement)

Renseigner les informations WeatherMap (optionnel)

Si le composant fourni des informations de perfdata (cf . guide utilisateur avancé) renseigner les informations permettant de formater ces informations si l'on souhaite les utiliser dans un WeatherMap.

Enregistrer la configuration

Retourner dans Composants puis Sauvegarder

Configuration du catalogue de composants

Description sommaire

Un catalogue de composant décrit pour un processus de monitoring :

Création d'un catalogue de composants

Créer un catalogue de composants

Dans la vue par défaut du plugin Monitoring appuyer sur = pour accéder à la vue système

Dans le menu Catalogue de Composants ajouter une élément +

Indiquer le nom du nouveau catalogue

Puis cliquer sur Ajouter

Configuration du catalogue de composants

Mettre à jour le catalogue

Vérification de la configuration

Une fois le catalogue défini, Shinken devrait normalement redémarrer automatiquement.

Retourner dans le catalogue ainsi créer pour vérifier la présence de tous les éléments .

Conclusion

A partir de ce moment les composants rajoutés dans le catalogue sont monitorés et les données collectés seront affichées dans les différentes vues du plugin Monitoring.

1)
Il est possible d'ajouter les hôtes selon 3 méthodes Manuellement (hôtes statiques), Selon une règle prédéfinie, Dynamiquement