IMA5 2018/2019 P31 : Supervision des serveurs de la plateforme informatique : Différence entre versions
(→Idée général) |
(→Configuration de Nagios) |
||
Ligne 173 : | Ligne 173 : | ||
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é: <code>/usr/local/nagios/etc/servers</code>. | 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é: <code>/usr/local/nagios/etc/servers</code>. | ||
− | + | Les définitions ci-dessous se situent dans le fichier <code>/usr/local/nagios/etc/servers/baleine.cfg</code> et permettent de monitorer le niveau de charge du serveur baleine: | |
+ | |||
+ | On définie un hôte en lui attribuant une adresse: | ||
<font style="color: purple;">define host</font> | <font style="color: purple;">define host</font> | ||
Ligne 182 : | Ligne 184 : | ||
<font style="color: purple;">}</font> | <font style="color: purple;">}</font> | ||
− | + | On met en place un service sur cet hôte: | |
<font style="color: purple;">define service{</font> | <font style="color: purple;">define service{</font> |
Version du 27 septembre 2018 à 14:18
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:
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:
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 }
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 }