Configuration de Opsview

De Wiki de Romain RUDIGER
Aller à : navigation, rechercher

Participant : Romain RÜDIGER.

Période : 04/09.

Les chapitres suivants permettent de comprendre comment configurer la solution OpsView. Il est fortement recommandé de lire le guide de démarrage rapide en ligne [1].

Gestion des hôtes

Un hôte (Host) est la représentation d'un équipement physique ou logique ayant au moins une adresse IP. Voici ce qui définit un hôte sous OpsView :

Représentation logique d'un hôte sous OpsView.

Ajout d'un hôte

Cette partie détaille l'ajout d'un hôte sur OpsView.

Opsview Host configuration menu.png

Il faut se rendre dans : Configuration > Hosts et cliquer sur Create new Host (au dessus du tableau). Deux champs sont alors obligatoires :

  • Primary Hostname/IP
  • Host Title

Il est également préférable de spécifier le groupe auquel appartient cet hôte et de vérifier que le Host Check utilisé est le bon, voici en détail les plus utilisés :

Host Check
nom du test action commande
ping Test par l'envoie de trois messages "ICMP Echo". Les états possibles :
  • Warning : il manque plus de 80% des réponses ou les réponses ont pris de 500 à 1000ms.
  • Critical : aucune réponse ou le temps de réponse est supérieur à 1000ms.
  • Ok : dans les autres cas.
check_icmp -H $HOSTADDRESS$ -t 3 -w 500.0,80% -c 1000.0,100%
tcp port 22 (SSH) Test par la vérification de l'état du port tcp 22 et par la présence du service ssh par une tentative d'authentification. Les états possibles :
  • Critical : le port tcp 22 n'est pas ouvert ou le service ssh ne répond pas.
  • Ok : le port tcp 22 est ouvert et le service ssh répond.
check_ssh -H $HOSTADDRESS$ -t 15
Check Host by SW-2 Test par l'envoie de messages "ICMP Echo" à partir de SW-2 par telnet. Les états possibles :
  • Unknow : impossible de se connecter sur SW-2 (mauvais identifiants telnet ?).
  • Warning : impossible de connaître l'état de l'hôte (problème sur SW-2 ?).
  • Critical : l'hôte ne répond pas.
  • Ok : l'hôte répond.
check_ping_by_telnet 10.1.1.20 athena18 where $HOSTADDRESS$ ping

Vous pouvez retrouver la liste et comprendre comment le test est effectué dans Advanced > Host Check Commands. Par exemple pour le test ping, lorsque l'on ouvre la page d'édition, il y a trois champs :

  • Le nom du test
  • Le plugiciel (plugin) utilisé par ce test
  • Les arguments passés au plugiciel lors de chaque test.

Pour ping, le plugiciel utilisé est check_icmp, il s'agit en fait d'un fichier présent sur le serveur dans le dossier /usr/local/nagios/libexec/. Un plugiciel est donc un script bash, un script perl, un binaire exécutable... Si vous rencontrez un problème avec un plugiciel, que vous ne comprenez pas son fonctionnement ou encore que vous souhaitiez visualiser les paramètres de ce plugiciel, il faut cliquer sur Show plugin help qui vous affichera le résultat de la commande pour check_icmp :

/usr/local/nagios/libexec/check_icmp --help
Opsview Host-templates configuration menu.png

Vous pouvez également associer l'hôte à un modèle (Host Templates), l'utilisation de modèles est intéressante lorsque plusieurs hôtes vont recevoir les mêmes Service checks. Il faut donc créer un modèle dans Configuration > Host Templates et cliquer sur Create new Host Template.

Dans l'onglet Host Template il faut y renseigner un nom, dans l'onglet Monitors, il faut sélectionner les services qui seront testés.

Par exemple, on pourrait créer un modèle "Serveur MySQL" et sélectionner tous les services MySQL disponibles. Ainsi lorsque l'on ajoute dix serveurs MySQL, il suffit de sélectionner le modèle "Serveur MySQL". Une modification du modèle modifiera la configuration de tous les serveurs.


Opsview Service-Checks configuration menu.png

Sur l'onglet suivant lors de la création d'un hôte, en cliquant sur le bouton next en bas de page, vous pouvez ajouter des tests de service à cet hôte sur la page Service Monitors. La gestion des services est disponible dans Configuration > Service Checks.

En bas de cette page, il y a une partie Performance Monitors, il s'agit d'activer ou non l'utilisation du logiciel MRTG, ce logiciel permet par l'utilisation de MIBs SNMP de générer des graphiques de toutes les interfaces de l'hôte en cours. Activez donc cette option si un agent SNMP est disponible sur cet équipement.

Le dernier onglet, SNMP, permet de spécifier la configuration SNMP de l'hôte. Elle est obligatoire si vous utilisez le module MRTG ou des tests de services utilisant SNMP. Deux outils sont disponibles sur cette page, le premier, Query Host, permet de visualiser toutes les interfaces trouvées et y associer des tests. Le second outil est un explorateur SNMP, il va parcourir de façon récursive toute la MIB de l'hôte.

Opsview Configuration status.png

Maintenant que l'hôte est configuré, il faut régénérer la configuration de Nagios. Il faut pour cela cliquer sur le bouton Configuration Status alert (en bas de toutes les pages) puis sur Reload configuration.

Création d'un service

Il s'agit de créer un nouveau service. Deux choix sont possibles, soit c'est un nouveau service au niveau du serveur, soit c'est un nouveau service au niveau d'un hôte.

Service local au serveur

Opsview Service-Checks configuration menu.png

Pour ajouter un service en utilisant un plugiciel existant, il faut aller dans Configuration > Service Checks puis cliquer sur Create new Service Check ou sur l'icône de clonage (Opsview Service-Checks clone-service.png) d'un service existant proche de celui que l'on souhaite créer.

Il faut au moins renseigner les champs suivants :

  • Name : nom du nouveau service
  • Description : elle est important et doit décrire en quoi consiste le service
  • Service Group : pour retrouver facilement le service, choisissez le bon groupe.
  • Plugin : le plugiciel choisi, il en existe plus d'une centaine ! Cliquez sur Show plugin help pour connaître ce que fait ce plugiciel ainsi que les arguments possible. Vous pouvez ajouter un plugiciel en ajoutant un script dans le dossier /usr/local/nagios/libexec/.
  • Arguments : les arguments dépendent du plugiciel choisi. Vous pouvez utilisez des macros pour rendre ce service générique à tous les hôtes, pour voir les macros disponibles, il faut cliquer sur Show macro help.
  • Flap Detection : est un système qui permet de détecter un service instable qui change d'état constamment pour éviter des notifications inutiles.
Opsview Configuration status.png

Pensez à régénérer la configuration de Nagios. Il faut pour cela cliquer sur le bouton Configuration Status alert (en bas de toutes les pages) puis sur Reload configuration.

Service sur un hôte

il y a deux solutions pour créer un service sur un hôte :

  • Exécuter une commande par une connexion SSH.
  • Exécuter une commande par un agent NRPE.

Par une connexion SSH, il s'agit d'utiliser le plugiciel check_by_ssh du serveur. Par exemple pour exécuter la commande uptime sur un hôte il faut :

check_by_ssh -H $HOSTADDRESS$ -t 40 -l nagios -i /home/nagios/.ssh/id_dsa -C uptime -o GSSAPIAuthentication=no -o PubkeyAuthentication=yes

Par un agent NRPE, l'agent NRPE sera interrogé par le plugiciel check_nrpe qui crée une liaison SSL entre le serveur et l'agent NRPE. Le plugiciel exécute une commande spécifiée dans la configuration de l'agent NRPE, par défaut dans le fichier /etc/nagios/nrpe.cfg. Voici un exemple :

command[check_dns]=/usr/lib/nagios/plugins/check_dns $ARG1$

Ainsi, il s'agit de la commande "check_dns" qui va exécuter le script local /usr/lib/nagios/plugins/check_dns avec les arguments passés à check_nrpe. Du coté du serveur OpView, le service utilisera donc check_nrpe avec les arguments suivants :

-H $HOSTADDRESS$ -c check_dns -a '-H google.com -w 2 -c 4'
Opsview Configuration status.png

Pensez à régénérer la configuration de Nagios. Il faut pour cela cliquer sur le bouton Configuration Status alert (en bas de toutes les pages) puis sur Reload configuration.

Création d'un plugiciel

Que cela soit un plugiciel au niveau du serveur ou sur un hôte, il doit utiliser les mêmes codes de retour.

Codes de retour des plugiciels
Code de retour Statut du service Description
0 OK Le plugiciel a réussi à tester le service et celui-ci fonctionne correctement.
1 WARNING Le plugiciel a réussi à tester le service et celui-ci ne semble pas fonctionner correctement.
2 CRITICAL Le plugiciel a détecté que le service n'est pas rendu.
3 UNKNOWN Le plugiciel n'arrive pas à tester le service correctement.

Pour les tests de présentes hôtes, ce sont les mêmes plugiciels qui sont utilisés. Nagios interprète donc les résultats de la façon suivante :

Interprétation des codes de retour des plugiciels pour les tests de présence d'un hôte (host check).
Code de retour du plugiciel Statut du service Statut de l'hôte
0 OK UP
1 WARNING UP
2 CRITICAL DOWN
3 UNKNOWN DOWN

Un plugiciel peut être écrit dans n'importe quel langage de programmation du moment qu'il est interprétable par le serveur ou l'hôte. Je recommande de suivre le guide de programmation d'un plugiciel Nagios disponible ici et de vérifier que le plugiciel que vous souhaitez réaliser n'existe pas déjà sur la ressource Nagios Exchange.

Ajouter une icône

Sélection de l'icône d'un hôte.

Ce chapitre permet de savoir comment ajouter une icône sur OpsView. Cette icône est visible dans les statuts, la carte...

Il faut tout d'abord préparer une image au format suivant :

  • format gif
  • taille 40x40

En SSH sur le serveur, il faut envoyer ce fichier dans le dossier /tmp/ puis faire :

/usr/local/nagios/bin/hosticon_admin add 'LOGO - nouvelle icone' /tmp/icon_by_romain.gif

Le script va placer l'icône dans le bon dossier et créer d'autres tailles de cette image.

Vous devriez maintenant voir votre nouvelle image dans la configuration d'un hôte.

Superviser un serveur Unix

Dans ce chapitre, vous retrouverez en détail les étapes pour superviser un hôte fonctionnant sous Unix.

Sur l'hôte, il faut créer un moyen d'obtenir des informations internes, voici les possibilités :

Les moyens de superviser un hôte sous unix.
Nom de la solution Fonctionnement Avantages
NRPE Le serveur de supervision exécute un script qui se situe sur l'hôte au travers d'un tunnel SSH. Il est ainsi possible de faire des scripts spécifiques à l'hôte. Comme utiliser des variables propres à un utilisateur.
SSH Le serveur de supervision exécute une commande au travers d'une connexion SSH. Les avantages sont les mêmes que ceux de l'agent NRPE mais c'est beaucoup plus lent.
SNMP L'hôte met à disposition un certains nombre de compteurs consultable par une requête SNMP. L'avantage est la facilité de mise en place mais il sera impossible de faire remonter des compteurs spécifiques au système ou aux applications.

Pour installer chaque solution :

  • pour installer un agent NRPE voir le manuel d'installation pour Fedora ou pour RedHat.
  • pour l'accès SSH, il faut installer OpenSSH, toute la documentation est sur leur site : [2].
  • pour l'agent SNMP, il suffit d'installer le paquet Net SNMP, voir sur le site pour son installation [3].

Pour NRPE et SSH, il faut installer les plugiciels Nagios qui permettront de superviser un grand nombre de choses sans écrire la moindre ligne de code. Pour cela il suffit de suivre le manuel d'installation de Nagios-plugins sous Unix.

Pour SSH, il faut configurer l'authentification SSH par clé publique décrite dans ce chapitre : Authentification SSH par clé publique.

Sur le serveur, avec l'interface OpsView, voici les étapes pour ajouter et configurer ce nouvel hôte (pour le détail des étapes, voir le chapitre Ajout d'un hôte ou consulter la documentation en ligne en cliquant sur le nom du paramètre) :

Opsview Host configuration menu.png
  1. Il faut se rendre dans : Configuration > Hosts et cliquer sur Create new Host ou sur l'icône d'un des hôtes pour le cloner et ainsi récupérer sa configuration.
    1. Primary Hostname/IP : IP de l'hôte
    2. Host Title : Nom de l'hôte qui doit être unique
    3. Host Group : Le groupe auquel appartient cet hôte
    4. Host Check : Comment Nagios sait si l'hôte est actif ou non (ping, test tcp...), la liste est disponible dans Advanced > Host Check Commands.
    5. Host Templates : permet d'associer l'hôte à un modèle, généralement on peut au moins l'associer au modèle Network - Base qui test la connectivité entre le serveur et l'hôte.
  2. Sur la page suivante :
    1. Vous pouvez ajouter des tests de service dans Service Monitors. Pour la gestion des services, il faut aller dans Configuration > Service Checks. Pour créer un nouveau service, voir le chapitre Création d'un service.
      • Si vous utilisez NRPE, il faut utiliser exclusivement les services utilisant le plugiciel check_nrpe.
      • Si vous utilisez SSH, il faut n'utiliser que les services utilisant le plugiciel check_by_ssh.
      • Si vous utilisez SNMP, il faut prendre les services utilisant un plugiciel commençant par check_snmp*.
    2. La section Performance Monitors permet d'ajouter l'hôte au logiciel MRTG qui est destiné à générer les graphiques de toutes les interfaces réseau. MRTG utilise SNMP, il faut donc avec un agent SNMP sur l'hôte. Dans le cas d'un hôte sous Unix, MRTG n'est pas utilisable.
  3. Sur la page suivante, vous pouvez configurer l'agent SNMP avec :
    1. SNMP Version : la version d'authentification utilisée par l'agent.
    2. SNMP Community : la communauté SNMP ou le mot de passe selon la version de l'agent.
    3. Use NMIS for interfaces : NMIS est un outil dédié à la supervision au sens de l'état et non pas du service d'un équipement réseau ou d'un serveur offrant des services réseau. Il permet de générer des rapports très détaillés. Dans le cas d'un hôte sous Unix, NMIS est envisageable si l'hôte offre des services réseau.

Exemple de la première page avec un hôte sous Unix, la configuration est la même qu'il y ait un agent NRPE, SSH ou SNMP :

Exemple de configuration d'un hôte sous Unix, page 1.

Exemple de la seconde page avec un hôte sous Unix ayant un agent NRPE :

Exemple de configuration d'un hôte sous Unix ayant NRPE, page 2.

Exemple de la seconde page avec un hôte sous Unix ayant un agent SSH :

Exemple de configuration d'un hôte sous Unix ayant SSH, page 2.
Opsview Configuration status.png

Maintenant que l'hôte est configuré, il faut régénérer la configuration de Nagios. Il faut pour cela cliquer sur le bouton Configuration Status alert (en bas de toutes les pages) puis sur Reload configuration.

Superviser un équipement réseau

Ce chapitre détail comment superviser un équipement réseau intégrant un agent SNMP.

Dans un premier temps, il faut autoriser le serveur à interroger cet équipement par SNMP. Par exemple sur un équipement cisco il faut ajouter :

snmp-server user public public v2c
snmp-server community wlanread RO 20
access-list 20 permit 10.1.1.30

Maintenant sur la console d'OpsView :

Opsview Host configuration menu.png
  1. Il faut se rendre dans : Configuration > Hosts et cliquer sur Create new Host ou sur l'icône d'un des hôte pour le cloner et ainsi récupérer sa configuration.
    1. Primary Hostname/IP : IP de l'hôte
    2. Host Title : Nom de l'hôte qui doit être unique
    3. Host Group : Le groupe auquel appartient cet hôte
    4. Host Check : Comment Nagios sait si l'hôte est actif ou non (ping, test tcp...), la liste est disponible dans Advanced > Host Check Commands.
    5. Host Templates : permet d'associer l'hôte à un modèle, généralement on peut au moins l'associer au modèle Network - Base et SNMP - Cisco.
  2. Sur la page suivante :
    1. Vous pouvez ajouter des tests de service dans Service Monitors. Pour la gestion des services, il faut aller dans Configuration > Service Checks. Pour créer un nouveau service, voir le chapitre Création d'un service.
      • Il faut prendre les services utilisant un plugiciel commençant par check_snmp*.
      • Vous pouvez également effectuer des tests réseau comme vérifier que le port telnet est ouvert.
    2. La section Performance Monitors permet d'ajouter l'hôte au logiciel MRTG qui est destiné à générer les graphiques de toutes les interfaces réseau. MRTG utilise SNMP et il est judicieux de l'activer pour un équipement réseau comme un routeur, commutateur ou encore un pare-feu.
  3. Sur la page suivante, vous pouvez configurer l'agent SNMP avec :
    1. SNMP Version : la version d'authentification utilisée par l'agent.
    2. SNMP Community : la communauté SNMP ou le mot de passe selon la version de l'agent.
    3. Query host : une fois les paramètres SNMP saisis, cliquez sur ce bouton pour visualiser les interfaces réseaux et ainsi créer des services pour certaines avec comme paramètres :
      • Warning : seuil de danger déclenché par un dépassement de l'utilisation de l'interface exprimé en pourcentage ou en bits par seconde (pas byte mais bien bit).
      • Critical : seuil critique déclenché par un dépassement de l'utilisation de l'interface exprimé en pourcentage ou en bits par seconde.
    4. Use NMIS for interfaces : NMIS est un outil dédié à la supervision au sens de l'état et non pas du service d'un équipement réseau. Il permet de générer des rapports très détaillés d'utilisation, de disponibilité... Je recommande d'activer cette option si c'est un équipement réseau vital ou important. NMIS ne déclenche pas de notification.

Exemple de configuration des services pour un SSG :

Exemple de services pour un SSG.

Voici la configuration du service SSG Active Hosts, ce service utilise donc un agent SNMP en interrogeant l'objet SNMPv2-SMI::enterprises.9.9.260.1.2.4.0 :

Détail d'un service utilisant SNMP.
Opsview Configuration status.png

Maintenant que l'hôte est configuré, il faut régénérer la configuration de Nagios. Il faut pour cela cliquer sur le bouton Configuration Status alert (en bas de toutes les pages) puis sur Reload configuration.