Come posso eseguire manualmente un controllo nagios dalla riga di comando?


24

Quando ho definito e testato nuovi servizi in nagios, ho riavviato nagios, quindi ho fatto clic sul servizio e riprogrammato un controllo il più presto possibile, quindi ho aspettato che il controllo si verificasse.

C'è un modo più efficiente per farlo? Vorrei usare la riga di comando per eseguire quel particolare controllo e ottenere l'output.

Risposte:


31

A volte trovo difficile capire esattamente cosa stia facendo un plugin. Per capirlo ho impostato nagios in modalità debug con la configurazione in questo modo. debug_level=2048 Con nagios in modalità debug ho semplicemente adattato il debug_logfile debug_file=/var/log/nagios3/nagios.debug. Forza un controllo e vedrai esattamente come viene eseguito il comando. Non lascerei questa impostazione normalmente però, è molto dettagliata e riempie il tuo file di registro a un ritmo rapido.


eccezionale. questo è più in linea con quello che intendevo dire. solo perché avevo già cercato nel file command.cfg per capire quali comandi fossero in esecuzione, ma volevo sapere quali flag venivano impostati. Grazie! :)
Cwd,

2
Menzionerò anche per i nuovi utenti che l'utilizzo tail -fti consentirà di continuare a vedere gli aggiornamenti del file in tempo reale e control+clo annullerò.
Cwd

2
I debug_level sono binari - 2048 attiva solo i messaggi dalle macro. Per attivare tutto ciò che si desidera impostare debug_level = 4095. (1 + 2 + ... + 2048)
jwg

18

È abbastanza semplice Basta cd (o meno) nella directory dei plugin (questa posizione della directory varia, a seconda di come è stata installata, ma controlla / usr / local / nagios o / usr / lib / nagios).

Trova il plug-in che desideri eseguire (se non sei sicuro, confronta ciò che vedi nella directory dei plug-in sulla tua scatola Linux con i plug-in che si trovano qui: http://exchange.nagios.org/directory/Plugins , oppure prova a eseguire "./plugin-name -h" per ottenere le informazioni di aiuto sul plugin).

Il metodo per utilizzare uno di questi "plug-in" dalla riga di comando è lo stesso di qualsiasi altro script Linux: basta eseguire "./plugin-name" con i flag appropriati che si desidera controllare e voilà!


1
+1 ... e se questo sembra troppo disturbo, puoi sempre guardare i file di configurazione di Nagios per vedere quali comandi e parametri devono essere eseguiti. Anche la posizione della directory dei plugin è lì.
John Gardeniers,

5
E tieni presente che lo fai sempre con l' nagiosutente su - nagios -s /bin/bash.
Quanta

simpatico. e i -carichi delle variabili ambientali per quell'utente?
Cwd,

Sì, proprio come qualsiasi altra bandiera linux, il "-" con qualunque flag tu usi caricherà il flag. (Se stavo eseguendo df -h sulla CLI di Linux, sto usando il flag "h" - nel caso del comando df, la h sta per "lettura umana".) Quindi, se si desidera eseguire il controllo check_http dalla CLI, eseguiresti ./check_http -I, dove il flag I sta per l'indirizzo IP ( nagiosplugins.org/man/check_http ). nagiosplugins.org/man potrebbe essere utile, così come la directory Plugin che ho collegato in precedenza.
David W,

L'opzione di aiuto dovrebbe essere --help. nagios-plugins.org/doc/guidelines.html
dmourati

5

Prendo una direzione leggermente più bruta di @Zoredache, accedo al server nagios e faccio "mentre è vero; fai ps awwlx | grep NAGIOS_CHECK_NAME; done", mentre forzo un nuovo controllo del servizio, in cui NAGIOS_CHECK_NAME è parte del nome dell'assegno o dell'IP del server che sto cercando. Di solito entro pochi secondi viene visualizzato il comando di controllo completo e quindi uccido il ciclo while ed eseguo il comando di controllo.

Sì, è totalmente forza bruta, ma <shrug> funziona per me.


Prova a "guardare" al posto del ciclo while. linux.about.com/library/cmd/blcmdl1_watch.htm
dmourati

3

Potresti anche provare il plugin 'capture'. Sostanzialmente fa la stessa cosa con un livello di debug di 2048, ma può essere usato per ogni plugin. Questo produce meno output per scavare.

http://www.waggy.at/nagios/capture_plugin.htm


1
Ho faticato a farlo funzionare, non sono sicuro di cosa stavo facendo male (noob) ma il trucco debug_level ha funzionato per me :)
sbditto85

2

Vai alla directory del tuo plugin - nel mio esempio lo è

/usr/lib64/nagios/plugins/

Digita il nome del tuo plugin - nel mio esempio lo è

check_tcp

ora esegui il comando completo - (nome plug-in) -H (nome host) -p (numero porta)

/usr/lib64/nagios/plugins/check_tcp -H myservername -p 8080

produzione

TCP OK - 0.004 second response time on port 8080|time=0.004146s;;;0.000000;10.000000

Tuttavia, in questo esempio il numero di porta è facoltativo

un altro esempio -

nel tuo file di configurazione che è simile al seguente (myserver.cfg) e vuoi eseguire check_cpu dalla riga di comando

define service{
  use                             generic-service
  host_name                       myserver
  servicegroups                   windows
  service_description             CPU
  contact_groups                  sysadmin_email_only
  notification_options            w,c,r
  check_command                   check_nrpe!check_cpu
}

controllare istantaneamente (senza GUI verde o rosso)

Prova questo - (percorso completo del plugin) - H (servername) -c (nome di spunta)

/usr/lib64/nagios/plugins/check_nrpe -H spc7atc01 -c check_cpu

produzione -

OK CPU Load ok.|'5'=4;80;90; '10'=3;80;90; '15'=3;80;90;

Questo è tutto

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.