Refaire le paquet Debian nagios-nrpe-server

Nrpe est un agent de super­vi­sion que l’on déploie sur les serveurs lorsque l’on ne veut pas expo­ser un service à l’ex­té­rieur pour le moni­to­rer. Au hasard, disons un serveur Post­greSQL. On pour­rait dire à Post­greSQL d’écou­ter vers l’ex­té­rieur pour pouvoir le super­vi­ser depuis une autre machine. Mais ça fait un service de plus à la merci (certes, toute rela­tive grâce aux méca­nismes d’au­then­ti­fi­ca­tion de Post­greSQL et à un bon pare-feu, mais bon, c’est juste un exemple) du méchant Inter­net. Donc on a envie de le lais­ser écou­ter unique­ment sur localhost.

Pour quand même pouvoir super­vi­ser Post­greSQL, le serveur de super­vi­sion va délé­guer la tâche de sondage à un agent installé sur le serveur super­visé. Dans notre cas, NRPE.

NRPE va lancer les sondes avec ou sans argu­ment four­nis par le serveur de super­vi­sion. Et là, c’est le drame ! La version de NRPE four­nie dans Debian 8 (Jessie) ne permet plus de soumettre des argu­ments à NRPE. La déci­sion a été prise pour des raisons de sécu­rité, les utili­sa­teurs ne compre­nant appa­rem­ment pas comment ce servir de ces argu­ments et faisant n’im­porte quoi. Le main­te­neur du paquet est caté­go­rique, il ne revien­dra pas sur sa déci­sion. Que faire, donc, si on a vrai­ment besoin de passer des argu­ments à NRPE ?

On recom­pile le paquet en remet­tant l’op­tion kiva­bien !

Heureu­se­ment, 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, ajou­ter --enable-command-args \ à la chaîne de confi­gu­ra­tion dans debian/rules. Puis ajou­ter une entrée dans debian/changelog de façon à faire un paquet numé­roté 2.15–2, sinon vous récu­pé­re­rez la version des dépôts Debian au prochain apt-get dist-upgrade. Peut-être est-il aussi néces­saire d’ajou­ter 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 fonc­tionné sans.

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

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’à acti­ver la prise en compte des argu­ments dans la confi­gu­ra­tion de NRPE et redé­mar­rer le service nagios-nrpe-server.

Me soutenir sur Tipeee Me soutenir sur Liberapay

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

    1. 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)

    1. 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

      1. 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 !

        1. 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.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *