User Tools

Site Tools


reseau:monitoring_util

Guide Utilisateur Monitoring

Introduction

Introduction

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

  • Les commandes : pour définir les contrôles
  • Les calendriers: pour définir les périodes de contrôles en jours: Lundi/Mardi/etc… et la période de notification
  • Les composants: pour définir quoi monitorer sur chaque hôte.
  • Les catalogues: pour définir quels hôtes système de monitorer.
    ## Configuration du catalogue de commandes

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 :

  • La ligne de commande qui sera exécutée depuis le serveur
  • Les arguments associés à cette commande

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 :

  • La fréquence des contrôles en jour
  • La plage horaire des contrôles dans la journée

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 :

  • Une commande (ping par exemple)
  • Un calendrier (jour et plage horaire )
  • Une définition de contrôle ( fréquence a laquelle les contrôles sont effectués, au bout de combien d'essais un service ou un hôte est déclaré “down” et le temps entre chaque essai). Un objet composant décrit le processus de contrôle :
  • La commande à exécuter et ses arguments
  • Définition d'un contrôle (le délai entre deux contrôles)
  • La période de contrôle (selon éléments de calendrier)

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 :

  • [[HOSTNAME]] : Nom du matériel
  • [[IP]] : IP du matériel
  • [[NETWORKPORTNUM]] : Numéro de port réseau
  • [[NETWORKPORTNAME]] : Nom de port réseau
  • [[NETWORKPORTDESCR]] : Port réseau ifDescr des matériels réseaux
  • [SNMP:version] : Version SNMP de l'équipement réseau ou imprimante
  • [SNMP:authentication] : Communauté SNMP de l'équipement réseau ou imprimante

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 :

  • la listes des hôtes
  • la liste des composants
  • la liste des contacts

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

  • Indiquer les composants Dans le sous menu Composants
    1. Ajout d'un hôte statique les hôtes à monitorer 1), Dans le sous menu Hôtes statiques
      1. Sélectionner le type d'hôte à ajouter
      2. Sélectionner les hôtes dans la liste
      3. cliquer sur Ajouter
    2. Ajouter un contact (optionnel) Dans le sous menu Contacts, ajouter un contact qui sera prévenu si l'état des composants change (UP, DOWN, WARNING, etc…).
    3. Enregistrer les modifications dans l'onglet Catalogue de composants, appuyer sur Sauvegarder

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
reseau/monitoring_util.txt · Last modified: 2022/03/30 13:22 by 127.0.0.1