Monitoring réseau : avertissements par courriel (Perl)

Monitoring réseau : avertissements par courriel (Perl)

Je décris ci-après ma contribution à deux scripts Perl élaborés par leur auteur Frank Migge. Ce dernier est d’origine allemande. Il vit et travaille actuellement au Japon. Vous trouverez d’autres renseignements sur lui et notre collaboration en consultant mon profil sur Linkedin.
Comprenez également que je ne parle pas japonais, mais allemand oui !

Fonctionnement

Les scripts en question permettent d’envoyer des avertissements provenant de machines (nagios_send_host_mail.pl) et de services (nagios_send_service_mail.pl), à l’origine en allemand ou en japonais, par courriel aux personnes dont un compte a été configuré sur Nagios.
Ils permettent également de reconstruire et d’inclure les graphiques élaborés à partir des données “perfdata” de la base RRD (Round Robin Database) que le serveur Nagios renseigne à intervalles réguliers.
Un premier script énonce les alertes concernant les machines, par exemple le défaut de la réponse au “ping”.

Un second script transmet les alertes dues à un défaut de service tel que défini dans nagios.

Mes contributions

Mes contributions consistent dans un premier temps en l’ajout de nouvelles options afin d’augmenter le champs d’applications et la flexibilité des scripts.

  1. Choix des destinataires
    Dans un premier temps j’ai ajouté une fonction basée sur la variable $CONTACTGROUPMEMBERS$ définie dans Nagios et permettant d’adresser le courriel  à des groupes de personnes plutôt qu’à des individus, et ce selon le niveau de l’alerte ou de sa cause.
  2. Ajout des graphes issus de PNP4nagios
    Comme j’avais installé et configuré PNP4nagios (auteur: Joerg Linge) sur notre serveur  nagios, il m’a paru opportun d’ajouter aux scripts la possibilité d’utiliser directement les graphiques produits par ce dernier.
  3. Modification fondamentale de la structure des messages afin de permettre le choix de la langue de ces derniers et apporter une solution simple pour l’ajout d’autres langues, dont le français. La traduction se fait à l’aide de tables de hachage dont la composition est facile à reconnaître, ce qui autorise l’ajout d’autres langue d’une manière très simple.
  4. Au passage, j’ai ajouté une portion de déboguage fonctionnant en script CGI-bin permettant d’afficher dans le navigateur un tableau HTML affichant la valeur de différentes variables, permettant ainsi de vérifier rapidement la validité de celles-ci.

Dans le script ci-dessous, mes contributions, qui ont finalement conduit à la reécriture complète du script, sont pour l’essentiel surlignées.