¿Cómo puedo ejecutar manualmente una verificación de nagios desde la línea de comandos?

24

Al definir y probar nuevos servicios en nagios, he estado reiniciando nagios, luego haciendo clic en el servicio y reprogramando una verificación lo antes posible, y luego esperando hasta que ocurra la verificación.

¿Hay una manera más eficiente de hacer esto? Me gustaría usar la línea de comando para ejecutar esa verificación en particular y obtener el resultado.

cwd
fuente

Respuestas:

31

A veces me resulta difícil descubrir exactamente qué está haciendo un complemento. Para resolver esto, configuré nagios en modo de depuración con la configuración como esta. debug_level=2048 Con nagios en modo de depuración, simplemente sigo el debug_logarchivo debug_file=/var/log/nagios3/nagios.debug. Fuerce una comprobación y verá exactamente cómo se ejecuta el comando. Sin embargo, no dejaría esta configuración normalmente, es muy detallada y llena su archivo de registro a un ritmo rápido.

Zoredache
fuente
increíble. Esto está más en la línea de lo que quise decir. solo porque ya había buscado en el archivo command.cfg para averiguar qué comandos se estaban ejecutando, pero quería saber qué banderas se estaban configurando. ¡Gracias! :)
cwd
2
También mencionaré a los nuevos usuarios que el uso tail -fle permitirá continuar viendo actualizaciones del archivo en tiempo real, y control+clo cancelará.
cwd
2
Debug_levels son binarios: 2048 solo activa mensajes de macros. Para activar todo lo que desea establecer debug_level = 4095. (1 + 2 + ... + 2048)
jwg
18

Es muy simple Simplemente cd (o no) en el directorio de complementos (la ubicación de este directorio varía, dependiendo de cómo lo haya instalado, pero marque / usr / local / nagios o / usr / lib / nagios).

Encuentre el complemento que desea ejecutar (si no está seguro, compare lo que ve en su directorio de complementos en su cuadro de Linux con los complementos ubicados aquí: http://exchange.nagios.org/directory/Plugins , o intente ejecutar "./plugin-name -h" para obtener la información de ayuda sobre el complemento).

El método para usar cualquiera de estos "complementos" desde la línea de comandos es el mismo que cualquier otro script de Linux: simplemente ejecute "./plugin-name" con los indicadores apropiados que desea verificar, ¡y listo!

David W
fuente
1
+1 ... y si eso parece demasiado problema, siempre puedes mirar los archivos de configuración de Nagios para ver qué comando y parámetros deben ejecutarse. Incluso la ubicación del directorio de complementos está allí.
John Gardeniers
55
Y ten en cuenta que siempre lo haces con el nagiosusuario su - nagios -s /bin/bash.
quanta
bonito. y las -cargas de las variables ambientales para ese usuario?
cwd
Sí, al igual que cualquier otra bandera de Linux, el "-" con cualquier bandera que use cargará la bandera. (Si estaba ejecutando df -h en la CLI de Linux, estoy usando la bandera "h"; en el caso del comando df, la h significa "legible por humanos"). Entonces, si desea ejecutar check_http check desde la CLI, ejecutaría ./check_http -I, donde el indicador I representa la dirección IP ( nagiosplugins.org/man/check_http ). nagiosplugins.org/man podría ser útil, así como el directorio de complementos al que me vinculé anteriormente.
David W
La opción de ayuda debería ser --help. nagios-plugins.org/doc/guidelines.html
dmourati
5

Tomo un poco más de fuerza bruta que @Zoredache, inicio sesión en el servidor nagios y hago "while true; do ps awwlx | grep NAGIOS_CHECK_NAME; done", mientras forzo una nueva verificación del servicio, donde NAGIOS_CHECK_NAME es parte del nombre de verificación o la IP del servidor que estoy buscando. Por lo general, en unos segundos aparece el comando de verificación completo y luego apago el ciclo while y ejecuto el comando de verificación.

Sí, es totalmente fuerza bruta, pero <shrug> funciona para mí.

Sean Reifschneider
fuente
Intente "mirar" en lugar del bucle while. linux.about.com/library/cmd/blcmdl1_watch.htm
dmourati
3

También es posible que desee probar el complemento 'capturar'. Básicamente, hace lo mismo que un nivel de depuración de 2048, pero se puede usar por complemento. Esto produce menos salida para excavar.

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

Keith
fuente
1
Luché para conseguir que esto funcione, no está seguro de lo que estaba haciendo mal (novato), pero el truco nivel_depuracion trabajado para mí :)
sbditto85
2

Vaya a su directorio de complementos; en mi ejemplo, es

/usr/lib64/nagios/plugins/

Escriba su nombre de complemento; en mi ejemplo, es

check_tcp

ahora ejecute el comando completo - (nombre del complemento) -H (nombre de host) -p (número de puerto)

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

salida

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

Sin embargo, en este ejemplo, el número de puerto es opcional

otro ejemplo -

en su archivo de configuración que se ve más abajo (myserver.cfg) y desea ejecutar check_cpu desde la línea de comandos

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
}

para comprobar al instante (sin GUI verde o rojo)

Pruebe esto - (ruta completa del complemento) - H (nombre del servidor) -c (nombre de verificación)

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

salida -

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

Eso es

Sharia Chowdhury
fuente