Il command Nagios non trasmette tutti gli argomenti

Sto utilizzando il seguente servizio per monitorare il nostro postgres db da nagios:

define service{ use test-service ; Name of servi$ host_name DEMOCGN002 service_description Postgres State check_command check_nrpe!check_pgsql!192.168.1.135!test!test!test notifications_enabled 1 } 

Sulla macchina remota ho configurato il command:

  • Come faccio a impedire Apache2 a tentare di eseguire un file come script?
  • Debian Jessie Hyper-V 2012 - ksoftirqd usando un sacco di tempo CPU
  • Come posso modificare la shell globale di login su un sistema unix?
  • Come configurare bind9 per accettare le connessioni da altre macchine
  • Imansible creare / scrivere nel file '/tmp/#sql_xxxx.MYI' (Errcode: 13)
  • Come fa Ubuntu tenere traccia del flag "System restart required" in motd?
  •  command[check_pgsql]=/usr/lib/nagios/plugins/check_pgsql -H $ARG1$ -d $ARG2$ -l $ARG3$ -p $ARG4$ 

    Nel syslog posso vedere che il command viene eseguito, ma c'è solo un argomento trasmesso:

     Oct 20 13:18:43 DEMOSRV01 nrpe[1033]: Running command: /usr/lib/nagios/plugins/check_pgsql -H 192.168.1.134 -d -l -p Oct 20 13:18:43 DEMOSRV01 nrpe[1033]: Command completed with return code 3 and output: check_pgsql: Database name is not valid - -l#012Usage:#012check_pgsql [-H <host>] [-P <port>] [-c <critical time>] [-w <warning time>]#012 [-t <timeout>] [-d <database>] [-l <logname>] [-p <password>] Oct 20 13:18:43 DEMOSRV01 nrpe[1033]: Return Code: 3, Output: check_pgsql: Database name is not valid - -l#012Usage:#012check_pgsql [-H <host>] [-P <port>] [-c <critical time>] [-w <warning time>]#012 [-t <timeout>] [-d <database>] [-l <logname>] [-p <password>] 

    Perché mancano gli argomenti 2,3 e 4?

  • VPS con Debian Squeeze non può inoltrare la posta elettronica - Nome errore di servizio per nome = gmail.com type = MX: l'host non trovato, riprova
  • Perché non posso eseguire sudo -g?
  • Quale file system devo utilizzare per backuppc su CentOS / Debian e tanti e tanti (200k) di piccoli file hardcopied?
  • Impostare JDK 8 come Java predefinita su Debian 8
  • Cosa esattamente esegue -delete-excluded fare per rsync?
  • I driver Red Hat lavorano su CentOS?
  • 2 Solutions collect form web for “Il command Nagios non trasmette tutti gli argomenti”

    Stai mescolando gli argomenti definiti nell'host di monitoraggio con gli argomenti sull'host remoto. La macro $ARGx$ non può essere utilizzata nell'host NRPE.

    Essere predefinito, il command check_nrpe è definito come:

     define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t 120 } 

    Nell'host remoto è necessario utilizzare il valore "reale", qualcosa di simile:

     command[check_pgsql]=/usr/lib/nagios/plugins/check_pgsql -d test -l test -p test 

    e questo command può essere chiamato dall'host Nagios con:

     define service{ use test-service host_name DEMOCGN002 service_description Postgres State check_command check_nrpe!check_pgsql notifications_enabled 1 } 

    Non è necessario passare l'indirizzo IP perché ottiene il valore di host_name .

    Ho avuto la stessa difficoltà e rispettoso rispettosamente un po 'con la risposta accettata, quindi ho pensato di submit la soluzione nel caso in cui qualcun altro la attraversa.

    È ansible eseguire uno script remoto usando il nrpe mentre passando gli argomenti della row di command dall'host di monitoraggio, altrimenti dovresti dare i valori duri di script remoto su each singola macchina remota che non è fattibile per i grandi set-up.

    Ecco come funziona il mio, questo funziona per passare 3 argomenti in remoto, ma puoi aumentare il numero nei comandi.cfg o nel file equivalente:

     # Check NRPE command define command { command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ $ARG3$ $ARG4$ } 

    Si noti che $ ARG1 $ nella row sopra è riservata al command in sé, quindi è in realtà $ ARG2 $, $ ARG3 $ e $ ARG4 $ che vengono inviati allo script remoto, ma quando arrivano allo script remoto saranno elencati come $ ARG1 $ $ ARG2 $ e $ ARG3 $ (questo è quello che diceva sul mixing degli argomenti) e quindi deve essere definito come tale nel nrpe.cfg della macchina remota

    La macchina remota nrpe.cfg:

     command[check_pgsql]=/usr/lib/nagios/plugins/check_pgsql -d $ARG1$ -l $ARG2$ -p $ARG3$ 

    E finalmente definire il servizio:

     define service{ use test-service; host_name DEMOCGN002; service_description Postgres State; check_command check_nrpe!check_pgsql!test!test!test; notifications_enabled 1; } 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.