Come posso risolvere i risultati "(Verifica servizio non chiusa correttamente)" e "(null)" con i miei servizi?


10

Sto usando alcuni script basati su Perl per i controlli di servizio in Nagios e ottengo (Service check did not exit properly)e (null)come risultato in Nagios, ma lo script funziona alla grande sulla riga di comando.

Ho visto soluzioni online che suggeriscono di disabilitare l'interprete Perl interno impostando enable_embedded_perl=0la configurazione di Nagios o specificando esplicitamente il percorso di un interprete. Questo non ha aiutato con il problema.

Cos'altro potrebbe essere?


Puoi mostrare un esempio di come "funzioni alla grande" tramite CLI?
Keith,

Risposte:


11

Nagios include un proprio interprete perl incorporato. Il tuo plugin probabilmente non è conforme a epn.

Potresti volerlo disabilitare a livello globale o semplicemente disabilitarlo per il tuo script. Il fondo di quella pagina di documenti ti mostra come fare.

Fondamentalmente, aggiungi la # nagios: -epnsua stessa linea da qualche parte all'interno delle prime dieci righe del tuo script. Questo dovrebbe risolvere il tuo problema.

Potresti anche renderlo conforme , ma quasi sicuramente non vale la pena.


Sì, grazie per il suggerimento. Anche se ho dichiarato esplicitamente che ciò non ha avuto alcun impatto sul problema specifico che stavo affrontando.
Der Hochstapler,

Questa è la vera risoluzione per i nagios. senza -epn, il plugin è incluso ed eseguito internamente da nagios. con -epn, viene caricato come eseguibile esterno, simile ai binari o agli script bash. Vedi pagina: nagios.sourceforge.net/docs/3_0/embeddedperl.html e considera il reclamo
epn

1
I due punti sono richiesti in # nagios: -epn, per i documenti e per i miei test.
idupree,

1
Stranamente, l'attuale versione Ubuntu LTS (18.04) di nagios-plugins-standard (2.2-3ubuntu2) presenta questo problema. Le cose funzionano se modifico i plugin interessati, ad esempio check_disk_smbe check_file_age, o se impostouse_embedded_perl_implicitly=0
Akom

Risolto il problema per me! Grazie ...
Oscar Bravo

3

Alcuni script Perl di Nagios Exchange tenteranno di includere il utils.pmmodulo Perl. Troverai una linea come questa da qualche parte in essa:

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

Quando si installa Nagios su Debian, il percorso predefinito del utils.pmfile è /usr/lib/nagios/plugins/utils.pm. Quindi la use libdirettiva dovrebbe essere:

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

L'esecuzione del comando dalla riga di comando ha probabilmente funzionato perché ci si trovava /usr/lib/nagios/plugins/, modificando il plugin.


2

Prefisso il comando con /usr/bin/perl.

Questa soluzione è più una soluzione alternativa, probabilmente non è una buona idea farlo ma almeno il tuo plugin dovrebbe funzionare allo stesso modo quando lo avvii dal terminale.

NOTA: nella mia esperienza # nagios -epnfunziona abbastanza spesso, ma a volte non sembra essere abbastanza. Ho notato che quando ciò accade, i plugin difettosi segnalano molti avvisi (quando viene invocato lo script perl -w).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.