IMA5 2018/2019 P31 : Supervision des serveurs de la plateforme informatique : Différence entre versions

De Wiki de Projets IMA
(Configuration de Nagios)
(Configuration de Nagios)
Ligne 193 : Ligne 193 :
 
  <font style="color: purple;">    check_command check_nrpe!check_load</font>  
 
  <font style="color: purple;">    check_command check_nrpe!check_load</font>  
 
  <font style="color: purple;">}</font>
 
  <font style="color: purple;">}</font>
 +
 +
On peut voir dans la définition du service ci-dessus que Nagios exécute la commande '''check_nrpe''', laquel prend en paramètre '''"check_load"'''
  
 
==Semaine 2==
 
==Semaine 2==
  
 
=Documents Rendus=
 
=Documents Rendus=

Version du 27 septembre 2018 à 14:21


Présentation générale

L'objectif du projet est de réaliser un tableau de bord affichant l'état des serveurs physiques et virtuels de la plateforme informatique.

Description

L'idée pour la réalisation du projet est de remonter l'état des machines physiques et virtuelles sur un serveur virtuel de supervision, serveur sur lequel on va trouver les applications web permettant la génération du tableau de bord ainsi que la gestion des tâches de sauvegarde des machines virtuelles.

Objectifs

Le projet s'articule autour de ces deux principaux objectifs:

  • Créer un serveur de supervision fonctionnel.
  • Mettre en place une solution pour la gestion automatique des sauvegardes des machines virtuelles.

Préparation du projet

Architecture en salle serveur

Cahier des charges

Le système doit rapporter les points suivants :

  • état de santé des machines physiques : température, état des disques, ...
  • occupation des machines physiques : utilisation CPU, utilisation espace disque, utilisation mémoire
  • état de santé des connexions réseau : réseau Renater, réseau ADSL, réseau SDSL
  • état de santé des machines virtuelles : temps d\'exécution de chaque machine virtuelle
  • occupation des machines virtuelles : utilisation disque et mémoire
  • état de certaines applications critiques :
    • date de validité des clefs DNSSEC
    • dates des dernières sauvegardes des machines virtuelles
  • vérification des certificats https de sites web.
  • affichage de la température en salle serveur

En plus de cela, un système de sauvegarde automatique

Choix techniques : matériel et logiciel

Pour la réalisation du serveur de supervision, mon choix s'est tourné vers une solution déjà existante: Nagios Core. En plus d'être facile à mettre en place, Nagios possède l'avantage de posséder les plugins nécessaire au monitoring des machines virtuelles XenServeur.

A cela, on peut aussi ajouter une communauté active mettant à disposition des plugins et addons sur la plateforme communautaire nagios exchange.

Une comparaison avec la solution zabbix pourra éventuellement être effectué.

La surveillance des hôtes ainsi que des machines virtuelles sera assuré grâce à un applicatif déployé sur les hôtes nommé NRPE:

Nagios-NRPE.jpeg

Cet agent permet de faire remonter à notre serveurs serveurs de monitoring (ici notre serveur nagios) le résultat de scripts lancé directement sur les hôtes.

Liste des tâches à effectuer

  • Dans un premier temps, il sera nécessaire de réaliser une phase de test sur les machines projet en salle E306, L'idée sera de monitorer un PC depuis un autre PC.
  • La deuxième étape consistera à installer la machine virtuelle et à mettre en place le serveur de supervision affichant l'état des machines physiques et virtuelles ainsi que des réseaux (réseau Renater, réseau ADSL, réseau SDSL) et effectuant la vérification des certificats https.
  • La troisième partie du projet sera consacré l'automatisation des tâches de sauvegardes des VMs.
  • Une fois cela fait, il faudra se concentrer sur la vérification des clefs DNSSEC.
  • Il a prévu par la suite de mettre en place un système de surveillance de température en salle serveur.
  • Toute autre tâche priorisé par Mr Redon et/ou Mr Vantroys.

Calendrier prévisionnel

Septembre:

  • Un serveur de supervision fonctionnel avec AU MOINS une partie des valeurs à monitorer.

Octobre:

  • Idéalement, avoir toutes valeurs à monitorer.
  • commencer à mettre en place les tâches de sauvegarde.

Novembre:

  • Avoir un serveur de supervision fonctionnel à 100 % avec toutes les valeurs à surveiller.
  • Idéalement, avoir des tâches de sauvegarde fonctionnelles.
  • Commencer à travailler sur la vérification des clefs DNSSEC.

Décembre:

  • Serveur de supervision et tâches de sauvegarde fonctionnelles à 100%.
  • Vérification des clefs DNSSEC en partie fonctionnelle.

Réalisation du Projet

Semaine 0

Durant cette semaine, 12h ont été consacré:

  • A de la documentation pour le choix de la solution à utiliser.
  • Réalisation de test sur les machines en salle E306.
  • Début de l'installation et/ou de la modification de plugins à utiliser avec NRPE pour monitorer certaines valeurs (Température).

Tests réalisé sur zabeth13 en surveillant zabeth15:

NagiosServer.jpg

Semaine 1

Les tests ayant été concluants voir (semaine 0), l'objectif pour cette semaine fut de mettre en place la supervision sur le serveur de sauvegarde baleine.

Résumé du travail effectué

Lundi matin (4h):

  • Rédaction du wiki
  • Installation de nagios sur la VM de supervision "supervise"
  • Installation de NRPE sur baleine
  • Premier tests des plugins:
    • check_load : test la surcharge du serveur.
    • check_mem : retourne la quantité de mémoire et SwAP disponible sur le serveur
    • check_disk : retourne la quantité d'espace de stockage disponible

Jeudi (8h):

  • Mise en place d'un plugin vérification de température du processeur
  • Création d'un plugin de vérification d'état de santé des disques

Vendredi (8h):

  • Mise en place d'un plugin de vérification de l'état des VMs
  • Résolution de problèmes pour NRPE (accès/droit des utilisateurs pour l’exécution de certain scripts)

Problèmes rencontrés et résolution

Des problèmes ont été rencontré lors de la mise en place des plugin de vérification d'état des disques et des VMs. Ces derniers furent lié à un souci de droit d'accès de certains plugins lancé par NRPE.

L'erreur s'est manifesté de la manière suivante: Le lancement d'une commande shell via un script(plugin) par NRPE s'est faite sans erreur mais avec aucun output.

Pour régler le problème, il a été nécessaire de donner à NRPE les même droits que le root pour l’exécution de certains plugins en suivant les étapes indiqué dans ce guide:

  • Installation de sudo
  • Ajout des lignes suivantes au fichier /etc/sudoers avec visudo:
Defaults: nagios !requiretty
nagios    ALL=(root)  NOPASSWD: /usr/local/nagios/libexec/check_xenvm
nagios    ALL=(root)  NOPASSWD: /usr/local/nagios/libexec/smart_check_disks.sh 

NB: Cette configuration peut être dangereuse est sera modifié par la suite.

  • Dans le fichier de configuation /usr/local/nagios/etc/nrpe.cfg:
command[check_xenvm]=/usr/bin/sudo /usr/lib/nagios/plugins/check_xenvmm -w 1 -c 2
command[check_smartN]=/usr/bin/sudo /usr/lib/nagios/plugins/check_smartN N

Déploiement NRPE & Configuration de Nagios

Idée générale

La mise en place de la surveillance d'un serveur (physique comme virtuel) se fait en deux temps:

  • Installation et configuration de NRPE sur le serveur distant à surveiller.
  • Configuration de Nagios sur le serveur de supervision.

Configuration de Nagios

La configuration de Nagios se fait de manière assez simple par la modification des fichiers de configuration présent dans le répertoire /usr/local/nagios/etc/.

L'arborescence dans ce répertoire se présente comme suit:

|-- cgi.cfg                    Config de l'application web de nagios 
|-- htpasswd.users             Contient les identifiants pour la connexion à l'application web, ici: nagiosadmin:1234 
|-- nagios.cfg                 Fichier de configuration de Nagios    
|-- resource.cfg               Définition de chemin pour l'accès aux scripts lancé par Nagios    
|-- objects                    Dossier contenant les fichier de configuration relatifs aux services et hôtes   
|    |-- commands.cfg          Fichier de configuration des commandes pouvant être lancé par Nagios
|    |-- contacts.cfg          Configuration des contacts à avertir en cas de problème 
|    |-- localhost.cfg         Configuration de la supervision du serveur hôte Nagios 
|    |-- printer.cfg           Définition des imprimantes hôtes à superviser 
|    |-- switch.cfg            Définition des switchs hôtes à superviser 
|    |-- templates.cfg         Fichier contenant des templates de base pour la définition d'hôtes ou de services   
|    |-- timeperiods.cfg       Définition des configs de temps 
|    |-- windows.cfg           Exemple d'un fichier de configuration pour une machine Windows 
|-- servers                    Dossier contenant les fichier de configuration servant à la définition des hôtes à monitorer et des services à executer   
|    |-- baleine.cfg           Définitions pour l'hôte baleine    
|    |-- vmBaleine.cfg         Définitions pour les VMs se trouvant sur baleine    

Afin se surveiller une donnée, il est nécessaire de définir deux principaux élément:

  • Un hôte à surveiller.
  • Un servir à mettre en place.

La définition de ces objets se fait au moyen de macros dans des fichier de configuration (.cfg), situés dans un répertoire dédié: /usr/local/nagios/etc/servers.


Les définitions ci-dessous se situent dans le fichier /usr/local/nagios/etc/servers/baleine.cfg et permettent de monitorer le niveau de charge du serveur baleine:

On définie un hôte en lui attribuant une adresse:

define host 
      use linux-box 
      host_name baleine.insecserv.deule.net{ 
      alias Serveur de sauvegarde Baleine 
      address 172.26.64.15 
}

Et on met en place un service sur cet hôte:

define service{ 
     use generic-service 
     host_name baleine.insecserv.deule.net 
     service_description Current Load 
     check_command check_nrpe!check_load 
}

On peut voir dans la définition du service ci-dessus que Nagios exécute la commande check_nrpe, laquel prend en paramètre "check_load"

Semaine 2

Documents Rendus