Nagios es una herramienta de monitorización de servicios muy potente. Está publicada bajo una licencia de software libre y, para el caso de Debian, viene con un paquete preparado en los repositorios oficiales.

Para la instalación podemos seguir la documentación publicada que es bastante completa y de buena calidad en general. Yo aprovecho esta entrada para comentar algunos puntos interesantes ya que la instalación en un servidor Debian es bastante directa.

Configuración de las monitorizaciones

Podemos crear tantos ficheros bajo /etc/nagios3/conf.d  como necesitemos, más o menos se pueden agrupar por máquinas (a pesar de que no hace falta, realmente todos los ficheros de configuración se tratan igual).

En el manual de Nagios se explica como se gestiona la configuración. Básicamente se trata de crear entradas para equipos (host) y servicios (service). Los servicios hacen referencias a comandos (commands). Todos estos elementos se configuran en el directorio comentado.

Los comandos los podemos definir nosotros o usar los que trae como plugins estandar bajo /etc/nagios-plugins/config  y que sirven como base y ejemplo. A su vez estos hacen referencia a macros que estan ya instaladas como parte del paquete. Habitualmente podremos usar estas macros pero se pueden crear de nuevas. En la página de los plugins oficiales se puede encontrar la documentación.

Monitorización de servidores remotos (respecto donde se ejecuta Nagios)

Estamos hablando de monitorización con ejecución de plugins Nagios en la máquina remota. Si queremos monitorizar servicios (SSH, HTTP, correo…) lo podemos hacer directamente siempre que sean accesibles desde la máquina donde se ejecuta Nagios.

Así pues si queremos ejecutar plugins Nagios en una máquina remota podemos hacerlo con check_by_ssh, que permite ejecutar comandos remotos vía SSH (autentificación con certificado) o, de manera más general, con el plugin NRPE.

La instalación del plugin es muy sencilla:

  • Instalar el paquete nagios-nrpe-server.
  • Configurar /etc/nagios/nrpe.cfg, especialmente la IP donde escucha (por defecto localhost) y las IPs permitidas.
  • Abrir puerto 5666/tcp al firewall.
  • Comprobar remotamente por linea de comandos con un comando como por ejemplo:
sargue@bsg:/usr/lib/nagios/plugins$ ./check_nrpe -H 10.134.51.58

Hay que configurar los comandos que se pueden ejecutar en el servidor local por seguridad. Dentro del nrpe.cfg hay algún ejemplo, podemos configurar los cambios locales en nrpe_local.cfg que se carga al final del fichero de configuración principal. Una vez configurado podemos comprobarlos también por linea de comandos desde el servidor donde ejecutamos nagios.

sargue@bsg:/usr/lib/nagios/plugins$ ./check_nrpe -H 10.134.51.58 -c check_load

Monitorizaciones pasivas (locales o remotas)

Hay situaciones en que es más fácil crear una monitorización pasiva que una activa. La monitorización pasiva se basa en la notificación por parte de un proceso de un resultado. Un ejemplo claro son las copias de seguridad con automysql. En este blog se ve un ejemplo. Hay que usar el plugin nsca. El paquete debian se llama nsca y contiene tanto el servidor como el cliente. El servidor hay que ejecutarlo en el mismo servidor del nagios puesto que se comunica con él con comandos externos vía la pipe de sistema. El cliente send_nsca se el que permite enviar los comandos remotamente. Se usa el puerto 5667/tcp.