Table des matières
Ressources :
1. Principes du monitoring
Le principe d'outils de monitoring tels que Nagios ou Mon consiste à détecter des situations ou événements particuliers, et prendre des décisions en conséquences (principalement donner l'alerte). Un tel outil enregistre en général les événements, mais pas les mesures même qui ont permis de déclencher les événements, d'où une symbiose naturelle avec Cacti par exemple.
Les fonctions que l'on est en droit d'attendre :
- Pouvoir recenser un parc informatique (serveurs, postes de travail, routeurs, switches, etc) et le ranger de manière au minimum “groupée” (voire hiérarchique)
- Pouvoir associer une batterie de tests précis à un groupe de machines
- Pouvoir configurer le test, sa période de pertinence et sa sensibilité suivant le groupe surveillé
- Pouvoir établir des relations de dépendances entre les tests pour minimiser les alertes
- Pouvoir concevoir un test spécifique et l'intégrer facilement
- Pouvoir configurer une action (alerte, etc) en fonction du groupe et du test
- Pouvoir configurer une répétition d'action sur une panne persistante
- Pouvoir modifier la configuration du monitoring sans le perturber
- Pouvoir consulter l'historique des événéments
Les outils plus sophistiqués comme Nagios rajoutent une gestion de droit et une hiérarchie d'utilisateurs afin de modéliser ce qu'il peut se passer dans un système de maintenance classique à 2 ou 3 niveaux avec les mécanismes standard d'escalade.
2. Installation de Nagios
Pour installer Nagios 2, rien de plus simple avec Debian Etch:
# aptitude install nagios2
Si votre niveau de configuration ne vous l'affiche pas par défaut, configurez explicitement l'installeur pour obtenir un compte administrateur par défaut :
# dpkg-reconfigure nagios2-common
Le compte administrateur est donc nagiosadmin et l'outil automatiquement en ligne à l'adresse http://localhost/nagios2/.
Vous devez alors éditer les fichiers de configuration pour créer une situation intéressante. Vous allez monitorer l'ensemble des machines de votre salle (exemple: sm1-1..50.linux ou 10.42.17.1-50), en surveillant en particulier ces services :
- SSH
- MySQL
- portmap
On utilise traditionnellement des fichiers de configuration distincts pour les descriptions des machines (hosts.cfg, hostgroups.cfg et services.cfg notamment), pensez à les activer dans nagios.cfg. Vous avez des modèles pour chacun d'eux dans le répertoire conf.d/, ils sont vos meilleurs repères !
3. Installation d'Oreon
Son installation est assez lourde (12 étapes dont une moitié pénible), mais faisable.
Si vous décompressez l'archive oreon-1.4.tar.gz en tant que /var/www/oreon, alors il suffit de déclarer un nouvel alias, par exemple en créant le fichier /etc/apache2/con.f/oreon avec ce contenu :
Alias /oreon /var/www/oreon/www
Vous aurez besoin de quelques dépendances :
# aptitude install php4-gd php4-ldap php-pear
Rechargez Apache. Vous devriez alors pouvoir aborder l'interface d'installation en suivant le lien http://localhost/oreon/. Recherchez les informations demandées (utilisateurs/groupes Unix et quelques chemins) et fournissez-les.
Vous devrez ajuster les droits de la plupart des fichiers de configuration de Nagios pour qu'ils soient modifiés par Oreon. Comme nous n'utilisons pas suPHP, le mécanisme de sécurité est discutable mais simple, il suffit que l'utilisateur Apache soit propriétaire de ces fichiers et répertoires. C'est ce qu'Oreon vous proposera, avec d'autres modifications moins intelligentes mais auxquelles vous obtempérerez (en râlant bien sûr !).
Note: il y a un bug sur la détection du chemin de PEAR. Créez un fichier www/install/installoreon.conf.php avec ce contenu :
<?php $conf_installoreon['pear_dir'] = '/usr/share/php'; ?>
Note (bis): Oreon réclame de nombreuses dépendances installables uniquement via Perl, vous pouvez télécharger leur liste pour contourner le manque de copier/coller entre Qemu et son hôte.
4. Mon
Il s'agit d'un moniteur des plus simples mais aussi extrêmement efficace. Il utilise un simple fichier de configuration, mais pour peu que l'on utilise un préprocesseur quelconque on peut facilement gérer des centaines d'équipement.
Mon est écrit en Perl et s'installe de manière triviale :
# aptitude install mon
Mon constitue également une bonne illustration de ce que l'on peut attendre d'un tel outil. Voici un exemple de configuration :
hostgroup allservers myportal.com mymail.com hostgroup webservers myportal.com watch allservers service ping interval 30s monitor fping.monitor period wd {Sun-Sat} alertevery 1h alertafter 2 alert mail.alert admin@mycompany.com upalert mail.alert admin@mycompany.com service ssh interval 5m monitor telnet.monitor -p 22 -t 60 -l /^SSH-2\.0-OpenSSH_.*/ depend allservers:ping period wd {Sun-Sat} alertevery 1h alert mail.alert admin@mycompany.com upalert mail.alert admin@mycompany.com watch webservers service http interval 1m monitor http.monitor depend allservers:ping period wd {Sun-Sat} alert mail.alert admin@mycompany.com upalert mail.alert admin@mycompany.com