Supervision des serveurs de la plateforme
Sommaire
Présentation générale du projet
Objectif du stage
L'objectif de ce stage est que trouver une application Web standard sous Linux permettant à un administrateur d'obtenir un tableau de bord de machines virtuelles désiminées sur plusieurs machines physiques. Configurer cette application pour obtenir les informations suivantes :
- é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
Voici le schéma du réseau de la plateforme maths/info
Recherche sur des applications de surveillance système et réseau
Nagios
Possibilités:
- Superviser des services réseaux : (SMTP, POP3, HTTP, NNTP, ICMP, SNMP, LDAP, etc.)
- Superviser les ressources des serveurs (charge du processeur, occupation des disques durs, utilisation de la mémoire paginée) et ceci sur les systèmes d'exploitation les plus répandus.
- Interface avec le protocole SNMP.
- La supervision à distance peut utiliser SSH ou un tunnel SSL (notamment via un agent NRPE).
- Les plugins sont écrits dans les langages de programmation les plus adaptés à leur tâche : scripts shell (Bash, ksh, etc.), C++, Perl, Python, Ruby, PHP, C#, etc.
- La vérification des services se fait en parallèle.
- Possibilité de définir une hiérarchie dans le réseau pour pouvoir faire la différence entre un serveur en panne et un serveur injoignable.
- La remontée des alertes est entièrement paramétrable grâce à l'utilisation de plugins (alerte par courrier électronique, SMS, etc.).
- Acquittement des alertes par les administrateurs.
- Gestion des escalades pour les alertes (une alerte non acquittée est envoyée à un groupe différent).
- Limitation de la visibilité, les utilisateurs peuvent avoir un accès limité à quelques éléments.
- Capacité de gestion des oscillations (nombreux passages d'un état normal à un état d'erreur dans un temps court).
- Créer ses propres plugins, dans le langage désiré. Il suffit de respecter la norme Nagios des Codes retour
- Code 0 : OK (tout va bien)
- Code 1 : WARNING (le seuil d'alerte est dépassé)
- Code 2 : CRITICAL (le service a un problème)
- Code 3 : UNKNOWN (impossible de connaître l'état du service)
Zabbix
Le « serveur ZABBIX » peut être décomposé en trois parties séparées : Le serveur de données, l'interface de gestion et le serveur de traitement. Chacune d'elles peut être disposée sur une machine différente pour répartir la charge et optimiser les performances.
Le système dont l'utilisation des ressources doit être analysée comporte un agent fonctionnant sous forme de daemon appelé zabbix-agentd et écoutant par défaut sur le port TCP 10050. Celui-ci est chargé d’exécuter sur le système différents scripts permettant d'échantillonner l'état des ressources des différents composants du système (Mémoire, CPU, débit réseau, entrées-sorties, nombre de connexion à une application, etc.). Le serveur Zabbix appelle donc régulièrement cet agent et lui demande les informations concernant telle ou telle ressource.
Son interface web est écrite en PHP. Elle agit directement sur les informations stockées dans la base de données. Chaque information nécessaire au serveur de traitement étant réactualisée automatiquement, il n'y a pas d'action à effectuer sur le binaire pour lui indiquer qu'il y a eu une mise à jour.
Cette interface dispose des fonctionnalités principales suivantes:
- Affichage des données et état des machines
- Génération de graphiques (évolution des données et état des machines/liens)
- Classement et groupement des machines surveillées
- Auto découverte de machines et ajout automatique
- Gestion fine des droits d'accès pour les utilisateurs de l'interface
MRTG
Multi Router Traffic Grapher (MRTG) est un logiciel développé sous licence GNU/GPL à l'initiative de Tobi Oetiker. Ce logiciel permet de surveiller et mesurer le trafic réseau. Il utilise le protocole SNMP pour interroger des équipements réseaux tels que des routeurs, commutateurs, ou bien encore serveurs, disposant d'une MIB.
MRTG a été développé en Perl , et peut être lancé sous Windows, Linux, MacOS et NetWare.
PRTG
PRTG (Paessler Router Traffic Grapher) est un logiciel qui permet grâce à l'analyse de trames SNMP de créer des graphiques sur le trafic réseau. PRTG est aussi capable de faire du sniffing.
Xymon
Xymon s'inspire du logiciel Big Brother System and Network Monitor de Quest Software. De 2002 et 2004, une version open source s'est appelée bbgen toolkit, puis entre 2005 et 2008 Hobbit, mais étant déjà une marque déposée, l'outil a finalement été baptisé Xymon depuis.
Xymon offre une interface graphique de supervision dans un navigateur web, énumérant les états de différents services sur chaque machine. Il permet de paramétrer des envois de courriels après un certain temps de dégradation, par exemple après 30 minutes d'espace disque utilisé à plus de 90 %. On peut ensuite afficher les statistiques de tous ces services sous forme de graphique.
Notices d'installation
Installation de Nagios sur zabeth17
Nagios 4.3.2 est la dernière version au moment de l'écriture, avant de compiler Nagios à partir de la source; installez des paquets dépendants pour l'outil de surveillance Nagios. Avant de commencer, il faut Passer à l'utilisateur root.
su
Et puis, il faut assurer que le système répond à toutes les exigences logicielles pour la compilation et l'installation de Nagios. Dans la première étape,on a met à jour référentiels système et progiciels en émettant la commande ci-dessous.
apt update
À l'étape suivante,on a lancé une nouvelle commande afin d'installer les utilitaires nécessaires pour gérer le système à partir de la ligne de commande.
apt-get -y install build-essential apache2 php openssl perl make php-gd libgd2-xpm-dev libapache2-mod-php libperl-dev libssl-dev daemon wget apache2-utils unzip
Créez un utilisateur pour autoriser l'exécution des commandes externes via l'interface Web.
utilisateur: nagios
groupe: nagcmd
Ajoutez également "nagios" et l'utilisateur apache (www-data) à la partie du groupe "nagcmd".
useradd nagios groupadd nagcmd usermod -a -G nagcmd nagios usermod -a -G nagcmd www-data cd /tmp wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.3.2.tar.gz tar -zxvf nagios-4.3.2.tar.gz cd /tmp/nagios-4.3.2/
On a utilisé les étapes ci-dessous pour compiler Nagios à partir du code source. ./configure --with-nagios-group=nagios --with-command-group=nagcmd --with-httpd_conf=/etc/apache2/sites-enabled/
make all make install make install-init make install-config make install-commandmode make install-webconf
Tout ce dont on a besoin est de mettre à jour l'adresse e-mail dans le fichier "/usr/local/nagios/etc/objects/contacts.cfg" pour "nagiosadmin" avant de démarrer Nagios ...
vi /usr/local/nagios/etc/objects/contacts.cfg
Et puis on a changé l'adresse e-mail dans ce fichier pour recevoir la notification.
on a créer un compte utilisateur "nagiosadmin" pour connecter à l'interface Web de Nagios. Ensuite, on a défini un mot de passe à l'utilisateur "nagiosadmin".
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Pour activer CGI
a2enmod cgi
Et puis redémarrer le service Web Apache pour que les nouveaux paramètres prennent effet.
service apache2 restart
On a téléchargé et installé les plugins Nagios pour surveiller les services.
cd /tmp wget https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz tar -zxvf /tmp/nagios-plugins-2.2.1.tar.gz cd /tmp/nagios-plugins-2.2.1/
Compiler et installer les plugins.
./configure --with-nagios-user=nagios --with-nagios-group=nagios make make install
Pour Vérifier les exemples de fichiers de configuration Nagios.
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Ensuite, démarrer l'outil de surveillance Nagios en utilisant la commande suivante.
/etc/init.d/nagios start
en fin , on a réussi à installer Nagios 4.3.2 sur Debian 9 .
Ajoute l'hôte linux à la surveillance de nagios en utilisant le plugin NRPE
Installation de Zabbix sur zabeth17
Installation de XYmon sur zabeth17
Installation des smart disks tools sur zabeth17
Travail à effectuer
- Essai d'installation de Nagios, Zabbix et Xymon sur zabeth17 avec remontée d'informations de zabeth15 et de zabeth16 (charge cpu, température, état des systèmes de fichiers et des disques). Décrire pas à pas dans le Wiki les opérations à faire pour les installations.
- Dessiner le schéma du réseau de la plateforme maths/info, trouver un moyen de tester les connexion réseau.
- Trouver des commandes pour évaluer l'état des disques du serveur de sauvegarde (baleine). Regarder ce que peut dire l'utilitaire linux "hpssacli". Regarder aussi du coté des utilitaires "smart disks". Commencer par installer les utilitaires smart disk sur zabeth17 pour tester.
- Réparer l'espace de stockage de baleine (un disque semble presque défecteux), essayer d'évaluer la durée de vie des autres disques, les remplacer si nécessaire.
- Faire un essai de sauvegarde d'une machine virtuelle sur baleine.
- Essayer de trouver un outil pour afficher des informations sur les KSK et ZSK du DNSSEC (en particulier la date de création et la date de fin de vie).