Superviser Puppet avec Xymon



  • Dans cet article, je vais vous présenter une solution pour superviser l’exécution du vos agents Puppet avec Xymon. Cette solution utilise un module Puppet et plus précisément une librairie Ruby pour rajouter une possibilité de “reporting” au niveau de votre Puppet Master. Grâce à cette librairie, vous avez en plus de vos rapports habituels (logs, dashboard…), un voyant puppet pour chacun de vos serveurs Puppetisés. Ce voyant affiche le résultat du dernier déclenchement de l’agent : le test deviendra par exemple rouge (et donc alertant) si l’exécution de Puppet a échouée. Pour la partie installation client/serveur Xymon, je vous renvoie sur mon précédent article.

    Installation du module

    Pour installer le module, c’est très simple : Puppet fourni une commande qui permet d’installer n’importe quel module disponible sur Puppet Forge ainsi que ses éventuelles dépendances.

    puppet module install binbashfr-xymon_report
    

    Le module s’installe directement dans votre répertoire de modules, traditionnellement /etc/puppet/modules. Vous devez donc avoir un /etc/puppet/module/xymon_report.

    Rappel : un client Xymon doit-être installé sur votre Puppet Master.

    Paramétrage du reporting

    Le paramétrage du reporting passe par deux étapes :

    • Déplacez le fichier /etc/puppet/module/xymon_report/xymon_report.yaml dans le répertoire de configuration Puppet (/etc/puppet) et adaptez-le. Vous pouvez par exemple modifier :

      • xymon_servers : c’est une liste de vos serveurs Xymon.
      • xymon_test_name : c’est le nom du test visible dans Xymon.
      • xymon_test_ttl : le TTL du test Xymon. Il doit être au moins égal à l’intervalle de déclenchement de votre agent Puppet pour éviter tout voyant “purple”.
      • xymon_bin_path : le binaire Xymon.
      • clean_message : à yes, les messages Puppet sont nettoyés des md5 et autres… Le message affiché par Xymon est plus concis.
    • Activez le reporting sur Xymon : éditez le fichier de configuration Puppet (/etc/puppet/puppet.conf) et ajoutez xymon_report sur la ligne reports :

    reports = log, xymon_report
    

    Exemples de reporting

    Une fois les étapes précédentes réalisées, votre serveur Xymon devrait faire apparaître progressivement des voyants “puppet” sur chacun de vos serveurs Puppetisés et supervisés. Quelques captures pour vous donner une idée :

    0_1522747413929_xymon.png

    1_1522747413929_xymon_unchanged.png

    2_1522747413929_xymon_changed.png

    N’hésitez pas à me remonter tout problème lié à ce module sur Github. La page dédiée à ce module sur Puppet Forge est ici.