Nagios, primeros pasos

[Última revisión: 16 de enero de 2020]

Nagios es un sistema de monitorización de cuya instalación en un Ubuntu Server 18.04 ya nos ocupamos en esta otra entrada. Ahora nos ocuparemos de cómo definir los dispositivos (hosts) que Nagios tendrá que monitorizar.

Imaginemos que en una empresa pequeña hay tres ordenadores funcionando, y los queremos monitorizar con Nagios, esto es, Nagios vigilará que estos ordenadores funcionen (en la terminología de Nagios, que estén arriba, up) y, si no lo hacen, mandará un aviso de que esos ordenadores no están funcionando (en la terminología de Nagios, están abajo, down). Uno de los ordenadores está en el vestíbulo de la empresa, otro en una sala común de los trabajadores y el tercero está en el despacho del jefe.

Vamos a crear un archivo donde definiremos estos dispositivos. Este archivo se puede crear donde se quiera dentro de nuestra máquina. Aquí vamos a ir, por ejemplo, al directorio /usr/local/nagios/etc:

cd /usr/local/nagios/etc

cd=change directory (cambiar de directorio)

/usr/local/nagios/etc (adonde queremos ir)

Si en esta dirección hacemos un ls:

ls

Podemos ver que en esta carpeta se han instalado muchos ficheros pertenecientes a Nagios. Lo que vamos a hacer ahora es crear una nueva carpeta donde meteremos los ficheros donde se encontrarán los datos de los dispositivos que queremos monitorizar con Nagios. Esta carpeta se puede crear donde se quiera y a modo de ejemplo se va a crear en /usr/local/nagios/etc. Desde /usr/local/nagios/etc, se escribe el comando:

sudo mkdir cosas

Con este comando creamos una carpeta, llamada cosas, donde vamos a crear los ficheros con los datos que Nagios necesita para monitorizar.

sudo mkdir=crear carpeta

cosas=nombre de la carpeta que se quiere crear

Si hacemos un nuevo ls, vemos que la carpeta cosas, que acabamos de crear, aparece. Estando en /usr/local/nagios/etc, escribimos

cd cosas

Y así nos metemos en la carpeta cosas. Dentro de esta carpeta, es decir, en /usr/local/nagios/etc/cosas, escribimos:

sudo nano dispositivos.cfg

Y se abre un archivo de texto nuevo (ya que dispositivos.cfg no existía) para editar. En este archivo vamos a escribir las instrucciones para que Nagios pueda monitorizar:

define host{

host_name                                JEFAZO

alias                                           el ordenador de don Miguel

address                                    192.168.1.35

check_command                    check-host-alive

max_check_attempts             4

check_interval                        2

retry_interval                         1

check_period                           24×7

contacts                                    nagiosadmin

notification_interval             30

notification_options              d,u,r

                                                                                               }

define host{

host_name                                VESTIBULO

alias                                            el ordenador del vestíbulo

address                                      192.168.1.36

check_command                     check-host-alive

max_check_attempts            4

check_interval                        2

retry_interval                          1

check_period                             24×7

contacts                                      nagiosadmin

notification_interval               30

notification_options                d,u,r

                                                                                                         }

define host{

host_name                                SALACOMUN

alias                                           el ordenador de la sala común

address                                     192.168.1.37

check_command                    check-host-alive

max_check_attempts             4

check_interval                         2

retry_interval                          1

check_period                            24×7

contacts                                    nagiosadmin

notification_interval             30

notification_options               d,u,r

                                                                                                          }

Una vez terminado de editar el archivo, pulsando Ctrl+x podemos salir del editor del archivo. Al salir nos preguntará si deseamos guardar el archivo y le decimos que sí. Si ahora, desde /usr/local/nagios/etc/cosas hacemos un ls, podemos ver que en la carpeta creada está el archivo dispositivos.cfg. De ahora en adelante, cada vez que estando en /usr/local/nagios/etc/cosas se escriba el comando sudo nano dispositivos.cfg, no se abrirá un archivo nuevo sino que se editará éste que ya existe.

Ahora bien, ¿qué hemos hecho y qué significan todas estas directivas que hemos escrito?

Cada vez que escribimos define host{, estamos definiendo un nuevo dispositivo, cuya definición finalizará al cerrar la llave: }.

Veamos ahora qué significan las directivas y valores que hemos dado:

host_name es una directiva

JEFAZO es un valor

host_name: es el nombre del dispositivo que queremos monitorizar, en una sola palabra y sin espacios. Es el nombre que utilizaremos para identificar al dispositivo en los archivos de Nagios.

alias: es un nombre descriptivo sobre el dispositivo que se monitoriza.

address: es la dirección IP del dispositivo que queremos monitorizar.

check_command: es lo que queremos que monitorice Nagios. En este caso, check-host-alive es un comando que vigila que el dispositivo esté en funcionamiento. El dispositivo donde está instalado Nagios envía un ping al ordenador que se monitoriza. Nagios considerará que todo funciona correctamente si el dispositivo monitorizado devuelve el ping.

max_check_attempts: Nagios, cuando no reciba la señal de que un dispositivo está funcionando, intentará conectar de nuevo con el dispositivo antes de mandar el aviso de que algo va mal. Si se escribe que max_check_attempts son 4, estamos diciendo que Nagios intentará contactar, cuando un dispositivo no funcione, 4 veces con él, antes de mandar una señal de alarma.

check_interval: cuando ponemos que es 2, nos referimos a que es de 2 minutos. El minuto es el intervalo de tiempo definido como predeterminado en Nagios. Esta directiva dice cada cuánto Nagios comprueba que los ordenadores están funcionando. Si escribimos 2, Nagios comprobará cada 2 minutos que los ordenadores funcionan.

retry_interval: cuando Nagios no detecte uno de los dispositivos, hará otros intentos para contactar con él. En el max_check_attempts definimos el máximo número de estos intentos, que como ejemplo hemos puesto de 4. El retry_interval es el periodo de tiempo entre esos 4 intentos. En este caso, con un retry_interval de 1, estamos diciendo que el intervalo de tiempo entre intentos sucesivos cuando un dispositivo da error es de 1 minuto. Una vez alcanzado el número de intentos que indica max_check_attempts sin éxito, Nagios marcará el dispositivo como «abajo» y seguirá intentando contactar con él cada intervalo de tiempo que marque el check_interval.

check_period: 24×7 quiere decir que se vigilará el dispositivo 24 h al día, 7 días a la semana, es decir, siempre.

contacts: es el contacto al que se avisa cuando algo va mal. Si ponemos nagiosadmin, estamos diciendo que es el propio Nagios el que nos mostrará si hay algún problema con alguno de los dispositivos.

notification_interval: como ejemplo hemos puesto 30, es decir, un intervalo de 30 minutos. Es el intervalo entre notificaciones de que algo falla con el dispositivo, en caso de que se haya puesto a una persona de contacto.

notification_options: dice en qué situaciones debe mandar notificaciones Nagios. Como ejemplo hemos puesto cuando el dispositivo esté d (down, abajo), u (unreachable, inalcanzable) o r (recoveries, se manda la notificación cuando se recupera la señal con un dispositivo que estaba abajo).

Puedes aprender mucho más sobre estas directivas en esta página de Nagios, ya que esta entrada sólo pretende tener un carácter inicial.

Falta un paso muy importante. Hemos creado un archivo con información para Nagios pero ahora hay que decirle a Nagios que lea esta información.

Vamos de nuevo a /usr/local/nagios/etc:

cd /usr/local/nagios/etc

Si hacemos un ls, vemos que uno de los archivos que existen se llama nagios.cfg. Este archivo es muy importante. Si nos lo cargamos, Nagios dejará de funcionar. Así que como vamos a tener que editarlo, vamos a hacer lo primero una copia de seguridad de este archivo. Estando en /usr/local/nagios/etc, se escribe el comando:

sudo mv nagios.cfg nagios2.cfg

Se ha creado una copia del archivo nagios.cfg llamada nagios2.cfg, como podemos comprobar haciendo un ls. Al tener hecha una copia de seguridad, ya podemos editar el archivo nagios.cfg sin temor a una consecuencia catastrófica si nos lo cargamos:

sudo nano nagios.cfg

Se abre el archivo para poder editarlo. Las líneas que comienzan con una almohadilla (#) son comentarios, es decir, no aportan nada al programa. En una línea cualquiera, añadimos:

########MIS DISPOSITIVOS########

cfg_file=/usr/local/nagios/etc/cosas/dispositivos.cfg

De esta manera, Nagios sabe que debe leer el archivo dispositivos.cfg que está en /usr/local/nagios/etc/cosas.

Otra manera, igualmente válida, hubiese sido escribir:

########MIS DISPOSITIVOS########

cfg_dir=/usr/local/nagios/etc/cosas

De esta manera, le estamos diciendo a Nagios que lea todo lo que está en la carpeta cosas, carpeta que creamos antes y donde se encuentra el archivo dispositivos.cfg. Esto es útil cuando se crean muchos archivos diferentes.

Ya se ha terminado. Ahora hay que reiniciar Nagios:

sudo systemctl restart nagios

Si todo va bien, reiniciar Nagios no dará ningún error y todo funcionará bien. Desgraciadamente, es muy fácil confundirse al escribir una directiva o un valor. Si hay algún error se nos avisará y se nos pedirá meter el comando journalctl -xe. Al meter este comando se nos desplegarán unas líneas en las que se nos dirá dónde está el error que hemos cometido. Sabiéndolo, sólo tenemos que volver a editar los archivos hasta que todo esté correcto. Damos a la letra q para salir de esta información y nos ponemos a editar los archivos hasta corregir todos los errores.

Anuncio publicitario

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s