El sistema Nagios incorpora un gran número de comandos por default que se pueden utilizar. Algunos de ellos hacen uso de librerías y paquetes que deben estar instalados en el sistema. En las siguientes líneas se comentan cuales son los comandos que vienen por default y que hacen.
Este comando es muy interesante interesante. Permite ejecutar comandos en ordenadores remotos vía SSH (de forma segura, por tanto). El resultado de ese comando será tomado por Nagios.
Uso : check_by_ssh -H <host> -C <command> [-fqv] [-1|-2] [-4|-6]
[-S [lines]] [-E [lines]] [-t timeout] [-i identity] [-l user] [-n name] [-s servicelist] [-O outputfile] [-p port] [-o ssh-option]
Opciones: -h, –help
Imprimir ayuda detallada
-V, –version
Imprimir informacion de version
-H, –hostname=ADDRESS
Hostname, direccion IP, or socket unix (path completo en este caso)
-p, –port=INTEGER
Puerto a chequear
-4, –use-ipv4
Usar IPv4
-6, –use-ipv6
Usar IPv6
-1, –proto1
Usar protocolo 1 de SSH [optional]
-2, –proto2
Usar protocolo 2 de SSH [optional]
-S, –skip-stdout[=n]
Ignora todas o las primeras n lineas de STDOUT [optional]
-E, –skip-stderr[=n]
Ignora todas o las primeras n lineas de STDERR [optional]
-f
Decirle al SSH que realize un fork en vez de una tty [optional]. Siempre devolver OK si ssh es ejecutado
-C, –command='COMMAND STRING'
Comando a ejecutar en la maquina remota
-l, –logname=USERNAME
Nombre de usuario SSH [optional]
-i, –identity=KEYFILE
Llave SSH autorizada [optional]
-O, –output=FILE
archivo de comando externo de Nagios [optional]
-s, –services=LIST
lista de nombres de servicios Nagios separados por ':' [optional]
-n, –name=NAME
nombre corto del host en la configuracion de Nagios [optional]
-o, –ssh-option=OPTION
llamar ssh con la opcion '-o' (puede ser usada multiples veces) [optional]
-q, –quiet
Tell ssh to suppress warning and diagnostic messages [optional]
-w, –warning=DOUBLE
Response time to result in warning status (seconds)
-c, –critical=DOUBLE
Response time to result in critical status (seconds)
-t, –timeout=INTEGER
Seconds before connection times out (default: 10)
-v, –verbose
Mostrar detalles de la linea de comandos para debug (Nagios truncara la salida)
La forma mas comun de uso, es por medio de una llave ssh con el argumento '-i'. De este modo el par de llaves deben tener una contraseña nula y la llave publica debe estar listada en el archivo authorized_keys del host remoto. Usualmente la llave debe estar restringida para correr solo un comando en el servidor remoto. Si el script remoto permite la adicion de argumentos, puede actuar como una agente al estilo proxy para ejecutar otros comandos remotos.
Ejemplo de como configurarlo como comando
define command { command_name check_ssh_load command_line $USER1$/check_by_ssh -H $HOSTADDRESS$ -C "/user/bin/check_load -w $ARG1$ -c $ARG2$" }
Ejemplo de como configurarlo en un servicio
define service { use local-service hostgroup_name ssh-nagios-services service_description Current Load check_command check_ssh_load!5.0,4.0,3.0!10.0,6.0,4.0 }
Ejemplo de como dar de alta el hostgroup de ejecucion
define hostgroup { hostgroup_name ssh-nagios-services alias Nagios over SSH members remote1,remote2 }
Este comando sirve para comprobar el funcionamiento del servicio de DNS en un equipo remoto. Utiliza dig para esto.
Usage:check_dig -l <query_address> [-H <host>] [-p <server port>] [-T <query type>] [-w <warning interval>] [-c <critical interval>] [-t <timeout>] [-a <expected answer address>] [-v]
Ejemplos: Esto enviara una consulta TCP al servidor DNS consultando por el nombre www.example.com
check_dig -H DNSSERVER -l www.example.com -A "+tcp"
Definir como comando:
define command{ command_name check_dig command_line $USER1$/check_dig -H '$HOSTADDRESS$' -l '$ARG1$' }
Definir como servicio:
define service{ use generic-service host_name nombre_host service_description dig check_command check_dig!www.google.com }
Este comando sirve para comprobar el espacio libre de un volumen montado en el sistema de ficheros donde se esté ejecutando Nagios. Permite especificar dos umbrales y generar disparadores advertencias cuando se supera el menor, y errores críticos cuando se supera el segundo.
Usage: check_disk -w limit -c limit [-W limit] [-K limit] {-p path | -x device} [-C] [-E] [-e] [-g group ] [-k] [-l] [-M] [-m] [-R path ] [-r path ] [-t timeout] [-u unit] [-v] [-X type]
Ejemplos: check_disk -w 10% -c 5% -p /tmp -p /var -C -w 100000 -c 50000 -p /
Checks /tmp and /var at 10% and 5%, and / at 100MB and 50MB
check_disk -w 100M -c 50M -C -w 1000M -c 500M -g sidDATA -r '^/oracle/SID/data.*$'
Checks all filesystems not matching -r at 100M and 50M. The fs matching the -r regex are grouped which means the freespace thresholds are applied to all disks together
check_disk -w 100M -c 50M -C -w 1000M -c 500M -p /foo -C -w 5% -c 3% -p /bar
Checks /foo for 1000M/500M and /bar for 5/3%. All remaining volumes use 100M/50M
Definir como comando:
define command{ command_name check_all_disks command_line $USER1$/check_disk -w '$ARG1$' -c '$ARG2$' }
Definir como servicio
define service{ use generic-service host_name nombre_host service_description Disk Space check_command check_all_disks!20%!10% }
Planificación, especificación, diseño y evaluación de redes Este comando funciona exactamente igual que check_disk pero realiza la comprobación utilizando samba para realizar la comprobación de volúmenes compartidos en quipos remotos, en redes Windows.
Perl Check SMB Disk plugin for Nagios
Usage: check_disk_smb -H <host> -s <share> -u <user> -p <password>
-H, –hostname=HOST
Nombre NetBIOS del servidor
-s, –share=STRING
Recurso compartido a testear
-W, –workgroup=STRING
Grupo de trabajo o dominio usado (Default "WORKGROUP")
-u, –user=STRING
Usuario a loguearse en el servidor. (Defaults "guest")
-p, –password=STRING
Contraseña para loguearse en el servidor. (Defaults NULL)
-w, –warning=INTEGER or INTEGER[kMG]
Percent of used space at which a warning will be generated (Default: 85%)
-c, –critical=INTEGER or INTEGER[kMG]
Percent of used space at which a critical will be generated (Defaults: 95%)
-P, –port=INTEGER
Port to be used to connect to. Some Windows boxes use 139, others 445 (Defaults to smbclient default)
If thresholds are followed by either a k, M, or G then check to see if that much disk space is available (kilobytes, Megabytes, Gigabytes)
Porcentaje WARNING debe ser menor al porcentaje CRITICAL Warning (remaining) disk space should be greater than critical.
Este comando permite hacer una consulta DNS para averiguar la dirección IP de un equipo dado el nombre o viceversa. Utiliza nslookup para ello; permite especificar el servidor DNS a usar o si no usa el o los especificados en /etc/resolv.conf.
Usage:check_dns -H host [-s server] [-a expected-address] [-A] [-t timeout] [-w warn] [-c crit]
Este comando permite realizar una consulta a un dispositivo ficticio (devuelve el mismo parámetro que se le pasa). Puede ser utilizado para comprobaciones y depuraciones.
Usage: check_dummy <estado numerico> [optional text]
Este comando comprueba el funcionamiento de un sistema FlexLM. Este sistema es un servidor de licencias en red usado para obtener permisos de uso de software en red. Devuelve distintos errores dependiendo del estado de estos servidores de licencias.
Este comando realiza comprobaciones de conexión a un servidor FTP remoto. Permite conocer el estado de este servicio.
This plugin tests FTP connections with the specified host (or unix socket).
Usage:check_ftp -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>] [-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>] [-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j] [-D <days to cert expiry>] [-S <use SSL>] [-E]
Este comando comprueba servicios HTTP y HTTPS en equipos remotos. Permite además realizar el seguimiento de redirecciones, tiempos de conexión, la expiración de los certificados para SSL, etcétera. Es especialmente útil para servidores web que sirvan de base para aplicaciones de comercio electrónico.
Usage: check_http -H <vhost> | -I <IP-address> [-u <uri>] [-p <port>]
[-w <warn time>] [-c <critical time>] [-t <timeout>] [-L] [-a auth] [-f <ok | warn | critcal | follow>] [-e <expect>] [-s string] [-l] [-r <regex> | -R <case-insensitive regex>] [-P string] [-m <min_pg_size>:<max_pg_size>] [-4|-6] [-N] [-M <age>] [-A string] [-k string] [-S] [-C <age>] [-T <content-type>]
Ejemplos: CHECK CONTENT: check_http -w 5 -c 10 –ssl -H www.verisign.com
When the 'www.verisign.com' server returns its content within 5 seconds, a STATE_OK will be returned. When the server returns its content but exceeds the 5-second threshold, a STATE_WARNING will be returned. When an error occurs, a STATE_CRITICAL will be returned.
CHECK CERTIFICATE: check_http -H www.verisign.com -C 14
When the certificate of 'www.verisign.com' is valid for more than 14 days, a STATE_OK is returned. When the certificate is still valid, but for less than 14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when the certificate is expired.
Ejemplo desde un script
#!/bin/sh /usr/local/nagios/libexec/check_http -H $1 -p 50000 -u /irj/portal -A "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" -k "Accept-Language: es-ES" -s "Bienvenido"
Este comando comprueba el estado de operación de interfaces de red remotas por medio de SNMP v1 o SNMP v3.
Este comando comprueba el estado general de interfaces de red remotas por medio de SNMP v1 o SNMP v3.
Este comando realiza conexiones contra un servidor IMAP para comprobar su estado de funcionamiento. Permite generar advertencias y errores críticos.
Definir como comando :
define command{ command_name check_imap command_line $USER1$/check_imap -H '$HOSTADDRESS$' }
Chequear IMAP con SSL
define command { command_name check_simap command_line $USER!$/plugins/check_imap -p 993 -H '$HOSTADDRESS$' -S }
Definir como servicio:
define service{ use generic-service host_name nombre_host service_description imaps check_command check_simap }
Este comando comprueba el funcionamiento de un servidor de IRC remoto. Realiza conexiones para ello, esta escrito en Perl.
Este comando realiza conexiones y búsquedas LDAP contra un servidor remoto y comprueba así su estado de funcionamiento y si responde dentro del tiempo esperado o no.
Usage: check_ldap -H <host> -b <base_dn> [-p <port>] [-a <attr>] [-D <binddn>]
[-P <password>] [-w <warn_time>] [-c <crit_time>] [-t timeout] [-2|-3] [-4|-6]
Notes: If this plugin is called via 'check_ldaps', method 'STARTTLS' will be implied (using default port 389) unless –port=636 is specified. In that case 'SSL on connect' will be used no matter how the plugin was called. This detection is deprecated, please use 'check_ldap' with the '–starttls' or '–ssl' flags to define the behaviour explicitly instead.
Este comando trabaja en local en la máquina que está ejecutando el sistema Nagios. Comprueba la carga del sistema en función de unos umbrales que tiene preestablecidos y permite generar advertencias o errores severos según sea esta carga.
Uso:check_load [-r] -w WLOAD1,WLOAD5,WLOAD15 -c CLOAD1,CLOAD5,CLOAD15
-r, –percpu
Divide la carga por el numero de CPU's siempre que fuera posible
Cambia a WARNING si el promedio de carga excede “WLOADn”
Cambia a CRITICAL si el promedio de carga excede “CLOADn”
Definir como comando :
define command{ command_name check_load command_line $USER1$/check_load --warning=$ARG1$,$ARG2$,$ARG3$ --critical=$ARG4$,$ARG5$,$ARG6$ }
define service{ use generic-service host_name nombre_host service_description Current Load check_command check_load!5.0!4.0!3.0!10.0!6.0!4.0 }
Este comando es muy interesante para administradores del sistema. Funciona en local y permite buscar coincidencia de patrones en ficheros de suceso. Cuando el patrón que se busca es encontrado, Nagios recoge esta incidencia.
Usage: check_log -F logfile -O oldlog -q query Usage: check_log –help Usage: check_log –version
Este comando funciona en local en la máquina que corre Nagios. Permite comprobar el número de mensajes que hay en espera en las colas de Sendmail. Se puede establecer un límite para que se genere una notificación en ese caso.
Usage: check_mailq -w <warn> -c <crit> [-W <warn>] [-C <crit>] [-M <MTA>] [-t <timeout>] [-v verbose] Checks the number of messages in the mail queue (supports multiple sendmail queues, qmail) Feedback/patches to support non-sendmail mailqueue welcome -w (--warning) = Min. number of messages in queue to generate warning -c (--critical) = Min. number of messages in queu to generate critical alert ( w < c ) -W (--Warning) = Min. number of messages for same domain in queue to generate warning -C (--Critical) = Min. number of messages for same domain in queue to generate critical alert ( W < C ) -t (--timeout) = Plugin timeout in seconds (default = 15) -M (--mailserver) = [ sendmail | qmail | postfix | exim ] (default = sendmail) -h (--help) -V (--version) -v (--verbose) = debugging output Note: -w and -c are required arguments. -W and -C are optional. -W and -C are applied to domains listed on the queues - both FROM and TO. (sendmail) -W and -C are applied message not yet preproccessed. (qmail) This plugin uses the system mailq command (sendmail) or qmail-stat (qmail) to look at the queues. Mailq can usually only be accessed by root or a TrustedUser. You will have to set appropriate permissions for the plugin to work.
Este comando también trabaja en local en la máquina que está ejecutando Nagios y permite monitorizar los ficheros de sucesos de MRTG; en concreto permite monitorizar cualquiera de los parámetros que se vuelcan sobre dichos ficheros como por ejemplo conexiones, carga del procesador, entrada, salida, etcétera. Permite establecer umbrales que si se superan generan notificaciones.
This plugin will check either the average or maximum value of one of the two variables recorded in an MRTG log file.
Usage:check_mrtg -F log_file -a <AVG | MAX> -v variable -w warning -c critical [-l label] [-u units] [-e expire_minutes] [-t timeout] [-v]
Este comando permite comprobar el servicio UPS en un equipo remoto y establecer umbrales para, según el valor devuelto, disparar una advertencia, un error severo o nada.
This plugin will check the incoming/outgoing transfer rates of a router, switch, etc recorded in an MRTG log. If the newest log entry is older than <expire_minutes>, a WARNING status is returned. If either the incoming or outgoing rates exceed the <icl> or <ocl> thresholds (in Bytes/sec), a CRITICAL status results. If either of the rates exceed the <iwl> or <owl> thresholds (in Bytes/sec), a WARNING status results.
Usage check_mrtgtraf -F <log_file> -a <AVG | MAX> -v <variable> -w <warning_pair>-c <critical_pair> [-e expire_minutes] [-t timeout] [-v]
Options: -h, –help
Print detailed help screen
-V, –version
Print version information
-F, –filename=STRING
File to read log from
-e, –expires=INTEGER
Minutes after which log expires
-a, –aggregation=(AVG|MAX)
Test average or maximum
-w, –warning
Warning threshold pair <incoming>,<outgoing>
-c, –critical
Critical threshold pair <incoming>,<outgoing>
Notes: - MRTG stands for Multi Router Traffic Grapher. It can be downloaded from
http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html
- While MRTG can monitor things other than traffic rates, this
plugin probably won't work with much else without modification.
- The calculated i/o rates are a little off from what MRTG actually
reports. I'm not sure why this is right now, but will look into it for future enhancements of this plugin.
Este comando se ejecuta en la máquina que está ejecutando Nagios y permite comprobar que el archivo de sucesos del sistema de monitorización no sea más antiguo de lo que se especifique.
Usage:check_nagios -F <status log file> -e <expire_minutes> -C <process_string>
Options: -h, –help
Print detailed help screen
-V, –version
Print version information
-F, –filename=FILE
Name of the log file to check
-e, –expires=INTEGER
Minutes aging after which logfile is considered stale
-C, –command=STRING
Substring to search for in process arguments
-v, –verbose
Show details for command-line debugging (Nagios may truncate output)
Examples: check_nagios -e 5 -F /usr/local/nagios/var/status.log -C /usr/local/nagios/bin/nagios
Este comando sirve para, en combinación con cualquiera de los otros plugins, negar su valor. Por ejemplo, el uso normal del comando check_ftp es que devuelve OK cuando el servicio esté funcionando y CRITICAL cuando no. Con este comando se invierten los valores. Es útil para cuando se desea tener notificación explícita de que algo está funcionando bien en lugar de cuando falla.
Usage:negate [-t timeout] [-owcu STATE] [-s] <definition of wrapped plugin>
Este comando establece conexiones NNTP contra un servidor remoto especificado para comprobar que el servicio de NEWS esté activo.
This plugin tests NNTP connections with the specified host (or unix socket).
Usage:check_nntp -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>] [-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>] [-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j] [-D <days to cert expiry>] [-S <use SSL>] [-E]
Este comando realiza peticiones a un equipo Windows NT/2000/XP remoto que esté ejecutando el servicio NSClient para comprobar parámetros locales a dicho equipo como por ejemplo uso de la CPU, de la memoria, del disco, etcétera.
Este comando ejecuta ntpdate para comprobar que el timestamp de la máquina local que ejecuta Nagios no difiere en más de lo especificado del timestamp de una máquina remota dado.
Planificación, especificación, diseño y evaluación de redes Este comando realiza peticiones a un equipo Novell remoto que esté ejecutando el servicio MRTGEXT NLM para comprobar paráme tros locales a dicho equipo como por ejemplo uso de la CPU, de la memoria, del disco, etcétera.
Este comando permite comprobar el estado de un SGBD Oracle en un ordenador remoto así como el estado de los tablespaces, de bases de datos, de las caché, etcétera, de dicho servidor.
Este comando permite comprobar el estado de un servicio Over-CR ejecutándose en un sistema UNIX remoto. Realiza peticiones a este servicio para comprobar su estado.
Este comando comprueba si el servicio POP de un equipo remoto está funcionando correctamente. Realiza peticiones para ello.
Este comando funciona en la máquina donde se está ejecutando Nagios. Comprueba el número de procesos que se están ejecutando en la máquina y genera advertencias cuando este número sobrepasa el umbral especificado.
Este comando comprueba si el servicio REAL de un equipo remoto está funcionando correctamente. Realiza peticiones para ello.
Este comando comprueba si un servicio RPC remoto está registrado y funcionando correctamente. Utiliza para ello llamadas a rpcinfo.
Este comando funciona en la máquina local donde se ejecuta Nagios; necesita de paquetes adicionales instalados en el sistema de monitorización y su función es comprobar el estado del hardware de la máquina.
Este comando permite conocer el estado de un servicio SNMP de una máquina remota. Realiza conexiones a este servicio para averiguar la información necesaria.
Este comando permite conocer el estado de una máquina remota mediante la consulta a su agente SNMP. Utiliza para ello el protocolo SNMP en cualquiera de sus versiones 1, 2 ó 3.
Este comando permite controlar si el servicio SSH de una máquina remota está activo o no. Realiza peticiones a este servicio para obtener la información necesaria.
Este comando funciona en local, en la máquina donde está instalado Nagios. Permite monitorizar el tamaño de la memoria de intercambio utilizada y generar advertencias o errores cuando este valor sobrepaso los umbrales establecidos.
Este comando permite realizar peticiones arbitrarias a conexiones (sockets) TCP contra sistemas remotos. Por tanto permite monitorizar cualquier servicio que utilice sockets TCP para recibir peticiones.
Definir como comando:
define command{ command_name check_tcp command_line $USER1$/check_tcp -H '$HOSTADDRESS$' -p $ARG1$ }
define service{ use generic-service host_name nombre_host service_description telnet check_command check_tcp!23 }
Este comando permite comprobar si el servicio de hora (TIME) está funcionando en una máquina remota. Realiza conexiones a este servicio para obtener la información.
Este comando permite realizar peticiones arbitrarias a conexiones (sockets) UDP contra sistemas remotos. Por tanto permite monitorizar cualquier servicio que utilice sockets UDP para recibir peticiones.
Este comando permite monitorizar el estado del servicio UPS en máquinas remotas; para ello hace peticiones a este servicio. Necesita paquetes adicionales instalados en el sistema de monitorización.
Este comando permite conocer el número de usuarios conectados actualmente en el sistema local, en el que se está ejecutando Nagios. Genera advertencias y errores cuando el número supera el umbral fijado.
Este comando permite comprobar que el tamaño en memoria de un programa determinado no sea mayor de un límite fijado. Cuando se produzca el caso contrario se generarán advertencias y/o errores.
Este comando permite, usando con otro comando, que la salida de este último se pueda mostrar en la pantalla de un navegador en formato HTML como un enlace hipertexto navegable.
Usage:urlize <url> <plugin> <arg1> … <argN>
Options: -h, –help
Print detailed help screen
-V, –version
Print version information
Examples: Pay close attention to quoting to ensure that the shell passes the expected data to the plugin. For example, in:
urlize http://example.com/ check_http -H example.com -r 'two words'
the shell will remove the single quotes and urlize will see:
urlize http://example.com/ check_http -H example.com -r two words
You probably want:
urlize http://example.com/ “check_http -H example.com -r 'two words'”
Importante Para que este comando funcione bien, deberemos tener configurado en el archivo cgi.cfg la siguiente directiva :
escape_html_tags=0
Caracteristicas generales
Script detail page | Description | performance | Supported platforms |
---|---|---|---|
check_snmp_storage | checks storages (disks,swap, memory, etc…) | Yes | All MIB2 compliant |
check_snmp_int | checks interface states, usage on hosts, switch, routers, etc | Yes | All MIB2 compliant |
check_snmp_process | checks if process are running, the number that are running, memory and cpu used. | No | All MIB2 compliant |
check_snmp_load | checks the load or the cpu of a machine | Yes | Linux, Windows, Cisco, AS400, HP Procurve, LinkProof, Blucoat, Nokia,Fortinet, Netscreen,HPUX. |
check_snmp_vrrp | checks the interface state of vrrp cluster | No | Nokia IP (VRRP & Clustering), LinkProof, Alteon |
check_snmp_cpfw | checks Checkpoint Firewall1 status | Yes | Checkpoint Firewall |
check_snmp_mem | Checks memory and swap usage | Yes | Linux/Netsnmp, Cisco, HP Switch |
check_snmp_win | Checks windows services | No | Windows |
check_snmp_css | Checks css services state | No | CSS |
check_snmp_env | Checks environemental status (fan, temp, power supply). | No | Cisco, Nokia, Bluecoat, IronPort, Foundry |
check_snmp_nsbox | Checks nsbox vhost & diode status. | No | NetSecureOne Netbox |
check_snmp_boostedge | Checks Boostedge services | No | Boostedge |
check_snmp_linkproof_nhr | Checks linkproof NHR | No | Radware Linkproof |