wiki:InsiaAdminSysTp2_6

Sommaire

TP - Nagios, Oreon (et Mon)

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
Last modified 13 years ago Last modified on Apr 30, 2007, 1:14:59 PM