web-dev-qa-db-fra.com

Comment puis-je résoudre »(Vérification du service n'a pas quitté correctement)» "(NULL)" Résultats avec mes services?

J'utilise des scripts à base de Perl pour les chèques de service à Nagios et je reçois (Service check did not exit properly) et (null) À la suite de Nagios, mais le script fonctionne bien sur la ligne de commande.

J'ai vu des solutions en ligne suggérant de désactiver l'interprète Perl interne en définissant enable_embedded_Perl=0 Dans la configuration Nagios ou en spécifiant le chemin d'accès à un interprète explicitement. Cela n'a pas aidé à la question.

Quoi d'autre cela pourrait-il être?

10
Der Hochstapler

Certains scripts Perl de l'échange Nagios vont essayer d'inclure le utils.pm Module perl. Vous trouverez une ligne comme celle-ci quelque part:

use lib "/usr/local/nagios/libexec";

Lors de l'installation de Nagios sur Debian, l'emplacement par défaut du utils.pm fichier est /usr/lib/nagios/plugins/utils.pm. Alors le use lib La directive devrait être:

use lib "/usr/lib/nagios/plugins";

Exécuter la commande de la ligne de commande a probablement fonctionné parce que vous étiez dans /usr/lib/nagios/plugins/, éditer votre plugin.

3
Der Hochstapler

Nagios inclut son propre interprète Perl intégré. Votre plugin n'est probablement pas compatible EPN.

Vous voudrez peut-être le désactiver globalement ou simplement le désactiver pour votre script. Le bas de cette page Docs vous montre comment faire cela.

Fondamentalement, ajoutez # nagios: -epn Sur sa propre ligne quelque part dans les dix premières lignes de votre script. Cela devrait résoudre votre problème.

Vous pourriez aussi le rendre conforme , mais il ne vaut presque certainement pas la peine.

11
Keith

Préfixer la commande avec /usr/bin/Perl.

Cette solution est plus une solution de contournement, ce n'est probablement pas une bonne idée de le faire, mais au moins, votre plugin devrait fonctionner de la même manière que vous le faites lorsque vous le lancez depuis le terminal.

Remarque: dans mon expérience # nagios -epn fonctionne assez souvent, mais parfois, cela ne semble pas suffire. J'ai remarqué que lorsque cela se produit, les plugins défectueux indiquent de nombreux avertissements (lorsque le script est invoqué avec Perl -w).

2
tiktak