Copyright © 2007 Martin Colello
Copyright © 2007 Deny
Copyright © 2007 Joëlle Cornavin
Article paru dans le n°140 de la Gazette Linux de juillet 2007.
Article publié sous Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.
Table des matières
Travailler en tant qu'ingénieur Unix
pour une grande entreprise de fabrication me met en contact avec de nombreux types de systèmes et de services. Un des outils de contrôle de système que j'emploie est l'application open source Hobbit. Les applications de monitorage font d'excellents systèmes d'alerte rapide et peuvent contribuer à éviter des problèmes de réseau et de serveurs à grande échelle. Dans nombre de cas, elles peuvent vous avertir quand les choses sont sur le point de mal tourner, ce qui est beaucoup mieux que de recevoir des appels téléphoniques paniqués au milieu de la nuit. Hobbit est un bon exemple d'un tel « chien de garde » (en anglais, watchdog). Hobbit est un binaire de remplacement compilé pour Big Brother, qui offre plus de fonctionnalité et une vitesse supérieure à l'original. Bien qu'Hobbit dispose en standard de la plupart des tests réseau et système habituels, il est également facile de l'étendre pour surveiller des éléments spécifiques à votre environnement.
Je n'explquerai pas la procédure d'installation d'Hobbit ici, puisqu'elle est bien documentée sur la page d'accueil d'Hobbit. À la place, je vais décrire une des nombreuses extensions personnalisables que j'utilise en production.
Les extensions d'Hobbit peuvent aller de scripts shell simples jusqu'à de véritables programmes compilés, en incluant tout ce qui se trouve dans l'intervalle. Tant que vous avez accès au client Hobbit, vous pouvez créer tous les tests dont vous avez besoin et voir les résultats intégrés dans la page web d'Hobbit et dans le système d'alerte. Mon langage de script de prédilection pour écrire des extensions Hobbit est Perl. Il y a un vaste dépôt d'extensions pour Hobbit/Big Brother qui ont déjà été écrites et ont rendu service à la communauté sur http://www.deadcat.net.
Grâce à une simple commande snmp et un peu de code Perl, nous pouvons tester nombre de services et de processus qui ne sont pas disponibles nativement dans Hobbit. La première étape consiste à déterminer l'OID (Object Identifier, identificateur d’objet) et le mot de passe du service que vous souhaitez tester. Dans cet article, je décrirai comment j'ai utilisé cette méthode pour obtenir le taux d'utilisation du processeur d'un serveur iSeries©, une fonctionnalité qui n'a pas été incluse en standard dans Hobbit. Les mêmes principes s'appliquent à pratiquement tout ce qui peut être pris en charge via SNMP. Mon serveur Hobbit fonctionne sous Solaris
, mais les commandes sont les mêmes pour Linux
. La commande permettant d'obtenir le taux d'utilisation du processeur d'une machine iSeries© à partir de la ligne de commande sous Solaris
est snmpget -v1 -c motdepasse nomduserveur
1.3.6.1.4.1.2.6.4.5.1.0. Avec cette commande à notre disposition, nous pouvons l'insérer dans un script qui communiquera les résultats au serveur Hobbit.
#
!/usr/bin/perl -w use strict; # $test sera le nom affiché dans l'interface graphique de Hobbit, # il devra être aussi court que possible my $test = '400cpu'; # $bbprog est simplement le nom du script my $bbprog = '400cpu.pl'; my ($color, $line, $machine, $warn, $end, $date, $currently); my $server='nomduserveur
'; # Émettez la commande snmp que nous avons étudiée précédemment et enregistrez # les résultats dans $results my $results = `/usr/local/bin/snmpget -v1 -c public wc400 1.3.6.1.4.1.2.6.4.5.1.0`; # Scindez les résultats dans un tableau, en les séparant par des espaces my @results = split / /, $results; # Extrayez simplement du tableau le fragment que nous recherchons, et # placez-le dans $value = my $value = $results[3]; chomp($value); # Si la valeur atteint 3000, ce qui signifie 30 pour cent, faites une rapide # opération sur $value $value = $value/100; $value = int($value); # Tout d'abord, réglez la couleur du test sur "green" (vert), nous la modifierons # en rouge si nécessaire en cas d'alerte. $color = 'green'; # Définissez quelques variables à fournir au serveur Hobbit, la # première dans un format sur deux points my $percent = "\n\nPercentage : $value\n\n"; $currently = "$percent\n\nCPU ok.\n\n\n\n"; # Déterminez si le taux d'utilisation du processeur est trop élevé, si # tel est le cas, changez pour "red" (rouge) if ( $value > 80 ) { $color = 'red'; $currently = "$percent\n\L'utilisation du processeur est élevée.\n\n"; } # Préparez pour le serveur Hobbit au format correct $machine = "$server,amkor,com"; $date = `date`; chomp($date); $line = "status $machine.$test $color $date $currently"; system("/usr/local/hobbit/server/bin/bb nomduserveur_hobbit \"$line\"";
À présent que notre script est prêt, il est temps de configurer le client Hobbit pour l'exécuter une fois toutes les cinq minutes. Ouvrez le fichier clientlaunch.cfg
dans le répertoire etc
de votre répertoire local Hobbit et ajoutez cette ligne :
[400cpu.pl] ENVFILE $HOBBITCLIENTHOME/etc/hobbitclient.cfg CMD $HOBBITCLIENTHOME/ext/400cpu.pl LOGFILE $HOBBITCLIENTHOME/logs/400cpu.pl INTERVAL 5m
Maintenant, vous pouvez redémarrer votre client Hobbit, attendre 10 ou 15 minutes que les données soient rassemblées, puis vérifier que votre interface graphique Hobbit affiche une sortie identique à celle-ci :
Dans ce bref article, nous sommes parvenus à créer un test d'Hobbit fructueux, et nous l'avons intégré dans l'interface graphique d'Hobbit. Des variantes simples de cette technique peuvent être employées pour surveiller pratiquement n'importe quelle mesure pouvant être obtenue via snmp.
Martin Colello est un ingénieur
Unix
qui travaille pour une entreprise d'assemblage et de test de semi-conducteurs du nom de Amkor Technology. Bien qu'il se consacre principalement à l'administration sousSolaris
, il emploieLinux
et d'autres logiciels open source chaque fois que possible pour réaliser rapidement des projets spéciaux. Le plus souvent, il s'agit du domaine de la surveillance des réseaux, serveurs et applications à l'aide d'outils comme Hobbit, Cricket, Cacti et de scriptage Perl.
L'adaptation française de ce document a été réalisée dans le cadre du Projet de traduction de la Gazette Linux.
Vous pourrez lire d'autres articles traduits et en apprendre plus sur ce projet en visitant notre site : http://wiki.traduc.org/Gazette_Linux.
Si vous souhaitez apporter votre contribution, n'hésitez pas à nous rejoindre, nous serons heureux de vous accueillir.