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 convinco smartmontools che il mio SSD non è un disco rigido?
  • Accesso lenta del filesystem
  • Come posso creare un VPN non ssh su debian / linux?
  • perché è apt-get installare qualcosa sta chiedendo di aggiornare nginx.conf? Come risolvere questo problema utilizzando lo chef?
  • I routes di loopback IPv6 di Linux vengono aggiunti automaticamente
  • C'è un modo per disabilitare l'interface IPv6 SLAAC in Debian?
  •  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?

  • Come si abilita l'ascolto remoto con rsyslog?
  • mod_jk o mod_proxy
  • Più IP - gateway diversi - un'interface - Debian Squeezy
  • C'è ancora un uso per irqbalance su hardware moderno?
  • Equivalente al checkrestart per CentOS?
  • Apache ha riavviato / ricaricato automaticamente la configuration automaticamente, perché?
  • 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.