Refaire le paquet Debian nagios-nrpe-server

Nrpe est un agent de supervision que l'on déploie sur les serveurs lorsque l'on ne veut pas exposer un service à l'extérieur pour le monitorer. Au hasard, disons un serveur PostgreSQL. On pourrait dire à PostgreSQL d'écouter vers l'extérieur pour pouvoir le superviser depuis une autre machine. Mais ça fait un service de plus à la merci (certes, toute relative grâce aux mécanismes d'authentification de PostgreSQL et à un bon pare-feu, mais bon, c'est juste un exemple) du méchant Internet. Donc on a envie de le laisser écouter uniquement sur localhost.

Pour quand même pouvoir superviser PostgreSQL, le serveur de supervision va déléguer la tâche de sondage à un agent installé sur le serveur supervisé. Dans notre cas, NRPE.

NRPE va lancer les sondes avec ou sans argument fournis par le serveur de supervision. Et là, c'est le drame ! La version de NRPE fournie dans Debian 8 (Jessie) ne permet plus de soumettre des arguments à NRPE. La décision a été prise pour des raisons de sécurité, les utilisateurs ne comprenant apparemment pas comment ce servir de ces arguments et faisant n'importe quoi. Le mainteneur du paquet est catégorique, il ne reviendra pas sur sa décision. Que faire, donc, si on a vraiment besoin de passer des arguments à NRPE ?

On recompile le paquet en remettant l'option kivabien !

Heureusement, ce n'est pas compliqué.

apt-get source nagios-nrpe-server
sudo apt-get install libssl-dev dpatch debhelper libwrap0-dev autotools-dev \
build-essential
sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib/libssl.so
cd nagios-nrpe-2.15
vi debian/rules

À ce moment, ajouter --enable-command-args \ à la chaîne de configuration dans debian/rules. Puis ajouter une entrée dans debian/changelog de façon à faire un paquet numéroté 2.15-2, sinon vous récupérerez la version des dépôts Debian au prochain apt-get dist-upgrade. Peut-être est-il aussi nécessaire d'ajouter une entrée dans debian/NEWS de la même façon. Je l'ai fait et ça marche, mais peut-être que ça aurait fonctionné sans.

EDIT : pas la peine de toucher à debian/NEWS. Merci à Adrien pour son commentaire

Et on termine avec

./configure
make all
dpkg-buildpackage -rfakeroot
cd ..
sudo dpkg -i nagios-nrpe-server_2.15-2_amd64.deb

Et c'est fini, il n'y a plus qu'à activer la prise en compte des arguments dans la configuration de NRPE et redémarrer le service nagios-nrpe-server.

10 réflexions au sujet de “Refaire le paquet Debian nagios-nrpe-server”

  1. Waaaa… ils sont sérieux les mecs là ? Ya une option par défaut dans NRPE qui désactive ça et faut se palucher un paquet à rebuild parce que faut torcher le cul des vaches maintenant ? … Cela me laisse sans clav

  2. -rfakeroot n’est plus nécessaire (fakeroot est le choix par défaut si rien n’est précisé avec -r)

    • Je me suis pas embêté, j’ai pris les instructions sur le rapport de bug en les adaptant un poil (l’entrée dans debian/changelog notamment)

    • Bloquer la version du paquet peut être une solution, mais pas vraiment pérenne :

      1. ça veut dire aller chercher une version qui accepte encore les arguments. Dans quelques années, ça va être compliqué.
      2. tu n’as plus de mise à jour (fonctionnalités, sécurité, etc). Donc bof.

      Je ne dis pas que ce n’est pas une bonne solution hein ! Mais je préfère être up-to-date au prix d’une petite compilation 🙂

      La meilleure des solutions serait quand même de trouver qq’un de motivé pour s’occuper du paquet et faire en sorte que ça ne pose pas de problème de sécurité, comme le propose Raphaël.

      Merci du signalement 😉

      • Je suis tout à fait d’accord avec toi mais la solution de compiler c’est quand-même ultra-chiant. Pour un serveur ok mais pour 10… A ce propos tu as eu à le faire sur plusieurs serveurs ? Tu t’es aidé d’un Ansible/Puppet/Chef ?

        Merci, Tcho !

        • Plusieurs serveurs, mais je n’ai compilé le paquet Debian qu’une fois, et je l’ai envoyé sur tous les serveurs avec Salt et je l’ai installé avec Salt après.

Les commentaires sont fermés.