Cómo Instalar Nagios en Debian 10 Buster

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 24

Cómo instalar Nagios en Debian

10 Buster
6 mayo, 2021 por Chacho Cool
En este artículo veremos cómo instalar Nagios Core en Debian 10
Buster paso a paso, de modo que podrás monitorizar vía web los servicios
de cualquier servidor o VPS Debian de forma local y remota, mediante
Nagios Core, Nagios NRPE y los plugins de Nagios.

Antes de instalar Nagios en Debian 10


Buster
Si quieres seguir esta guía de instalación y configuración de Nagios Core
en Debian 10 Buster debes satisfacer estos puntos básicos:

 Una máquina Debian 10 Buster actualizada.


 Servidor web Apache con PHP.
 Un usuario con privilegios de sudo o el propio root.
 Acceso a Internet.
En caso de no disponer del entorno necesario puede ser útil consultar la guía
de instalación de Apache en Debian 10 y la guía de instalación de PHP en
Debian 10.

También necesitaremos algunas herramientas básicas del sistema


procedentes de los repositorios de la distribución, así que actulizamos las
listas de paquetes:

~$ sudo apt update


E instalamos las herramientas que vamos a necesitar:

~$ sudo apt install -y ca-certificates gcc make unzip wget

Cómo instalar los plugins de Nagios en


Debian 10
A pesar de que en los repositorios existen paquetes, para instalar los
plugins de Nagios en Debian 10 Buster descargaremos y compilaremos la
última versión desde la web oficial:
Realizaremos la descarga e instalación de los plugins de Nagios
en todas las máquinas remotas que queramos monitorizar, y
también en la máquina que actuará como servidor Nagios si
queremos supervisar sus servicios locales.
Podemos descargar el paquete .tar.gz desde el navegador o, como haremos
en este tutorial, copiar el enlace para descargarlo desde consola con el
comando wget:

~$ wget https://github.com/nagios-plugins/nagios-plugins/releases/download/release-
2.4.0/nagios-plugins-2.4.0.tar.gz

Compilación e instalación de los plugins


El contenido del paquete que acabamos de descargar viene organizado en
un directorio principal, por lo que podemos descomprimir el paquete en el
directorio de trabajo:
~$ tar xf nagios-plugins-2.4.0.tar.gz
Y cambiamos el directorio de trabajo al nuevo directorio del código fuente
de los plugins:

~$ cd nagios-plugins-2.4.0/
En primer lugar instalaremos algunas dependencias de ciertos plugins. Si ves
alguna que claramente no te interese puedes eliminarla:

$ sudo apt install -y postgresql-server-dev-all libdbi-dev libldap2-dev default-


libmysqlclient-dev libssl-dev dnsutils smbclient qstat fping
Concretamente, el paquete smbclient solicita cierto ajuste de configuración,
que se puede dejar con el valor por defecto.

Puedes consultar más información sobre las librerías de desarrollo y


comandos en el archivo REQUERIMENTS presente en el directorio actual.

Comenzaremos la configuración de la compilación:

$ ./configure
Ya podemos compilar los plugins que se ajusten a la configuración de
nuestro sistema:

$ make
Para instalar los plugins de Nagios en Debian 10 Buster usaremos el
siguiente comando

$ sudo make install


Ya podemos abandonar el directorio de trabajo y borrarlo.

Los plugins quedan instalados en el directorio /usr/local/nagios/libexec/ en


forma de binarios que se pueden ejecutar directamente en línea de
comandos. Vamos a probar alguno:
~$ /usr/local/nagios/libexec/check_disk -w 20% -c 5% -p /
DISK OK - free space: / 1304 MiB (46,76% inode=79%);|
/=1484MiB;2366;2810;0;2958
Otro ejemplo de plugin:

~$ /usr/local/nagios/libexec/check_users -w 5 -c 10
USERS OK - 2 users currently logged in |users=2;5;10;0
Y otro más:

$ /usr/local/nagios/libexec/check_http -H localhost
HTTP OK: HTTP/1.1 200 OK - 10975 bytes in 0,051 second response time |
time=0,051045s;;;0,000000 size=10975B;;;0

Cómo instalar Nagios Core en Debian 10


Buster
Vamos a descargar Nagios Core para Debian 10 Buster desde el sitio
oficial de desarrollo del proyecto. Este proceso lo haremos solamente en el
sistema Debian 10 Buster que actuará como servidor Nagios.
Descargamos el archivo desde consola:

~$ wget https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-
4.4.7/nagios-4.4.7.tar.gz
Y lo descomprimimos en el directorio de trabajo:

~$ tar xf nagios-4.4.7.tar.gz
Al igual que en el caso de los plugins, Nagios Core se organiza en un
subdirectorio que se acaba de crear y al que cambiaremos:

~$ cd nagios-4.4.7/
Instalamos la librería de desarrollo de GD:

$ sudo apt install -y libgd-dev


Ya podemos configurar la instalación:
$ ./configure --disable-ssl
Y compilamos los plugins:

$ make all

Instalación
La instalación está repartida en una serie de objetivos de make que
enumeramos a continuación.

Comenzamos creando el usuario y grupo con el que correrá el servicio


Nagios Core en Debian 10 Buster:

$ sudo make install-groups-users


Instalamos los archivos de Nagios Core en Debian 10:

$ sudo make install


Añadimos los archivos de configuración necesarios para el servidor web:

$ sudo make install-webconf


Instalamos los archivos con la configuración por defecto de Nagios Core:

$ sudo make install-config


Instalamos los scripts del servicio:

$ sudo make install-init


Y habilitamos el servicio Nagios para su inicio automático con cada arranque
de Debian 10 Buster:

$ sudo make install-daemoninit


Configuramos el directorio para comandos externos:

$ sudo make install-commandmode


Podemos salir del directorio y eliminarlo.

En este momento ya podemos iniciar el servicio, ya que la configuración por


defecto es perfectamente funcional:

~$ sudo systemctl start nagios


Para poder acceder a Nagios Core, debemos crear el usuario
administrador, nagiosadmin:

~$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin


New password:
Re-type new password:
Adding password for user nagiosadmin
Tendremos que introducir la contraseña y confirmarla.

Activar el módulo CGI de Apache


Nagios Core en Debian 10 necesita el módulo CGI del servicio web, que en el
caso de Apache no suele estar activado por defecto:

~$ sudo a2enmod cgi


Por último, para que el servicio web pueda trabajar con comandos externos
de Nagios deberá tener los permisos de grupo necesarios:

~$ sudo usermod -a -G nagios www-data


Reiniciamos Apache para que cargue el nuevo módulo:

~$ sudo systemctl restart apache2

Acceder a Nagios Core en Debian 10 Buster


Para acceder a Nagios Core en Debian 10 añadiremos la ruta /nagios a la
dirección IP o dominio del sistema. Por ejemplo, en este tutorial el servidor
Debian 10 es accesible en el dominio debian10.local.lan, por lo que
usaremos http://debian10.local.lan/nagios como URL:

Se nos muestra una ventana para introducir las credenciales de acceso (el
usuario nagiosadmin y la clave que hayamos creado), mostrándose a
continuación la página principal:
Si accedemos a la sección «Hosts» del menú encontraremos que aparece la
máquina local (el propio servidor Nagios Core Debian 10) ya configurada:
Obtendremos información sobre su estado general, última comprobación,
etc.

Si accedemos a la sección «Services» veremos una lista de las máquinas


monitorizadas (hasta el momento sólo la máquina Debian 10 local) y el
estado de los servicios configurados y monitorizados por defecto:
Cómo configurar Nagios Core en Debian
10 Buster
Para configurar Nagios Core en Debian 10 Buster hemos de tener en
cuenta que los archivos de configuración se reparten en el
directorio /usr/local/nagios/etc/. El archivo objects/commands.cfg contiene la
definición de los comandos que utilizan los plugins.

~$ sudo nano /usr/local/nagios/etc/objects/commands.cfg


Los comandos se definen como bloques en los que se define un nombre
para el comando (que será usado desde otras configuraciones para llamar al
comando), y la línea de comando que llama al binario del plugin, al que se
pueden pasar argumentos fijos o variables. Por ejemplo:

...
define command {
command_name check_local_users
command_line $USER1$/check_users -w $ARG1$ -c $ARG2$
}
...
El nombre que se utilizará desde otras configuraciones es check_local_users,
que lanzará el plugin check_users, que es uno de los plugins de Nagios que
instalamos y configuramos anteriormente. Para la línea de comandos se
utilizan argumentos variables, como $USER1$ que contiene la ruta en la que
se encuentra el plugin (/usr/local/nagios/libexec/ en Debian 10)
o $ARG1$ y $ARG2$ que recibirán el número de usuarios que se consideran
como alarmante y crítico, respectivamente.

Estos comandos se usan en múltiples archivos de configuración que definen


sistemas, como la máquina local o las máquinas remotas. La máquina local
está configurada en el archivo objects/localhost.cfg:

~$ sudo nano /usr/local/nagios/etc/objects/localhost.cfg


Este archivo contiene la definición de máquina:

...
define host {
use linux-server
host_name localhost
alias localhost
address 127.0.0.1
}
...
Podemos ver la plantilla que se usa (linux-server) y datos como el nombre de
máquina y dirección.

Opcionalmente también podemos ver a qué grupo pertenece la máquina:

...
define hostgroup {
hostgroup_name linux-servers
alias Linux Servers
members localhost
}
...
Y todos los servicios que se supervisan a través de llamadas a comandos. Por
ejemplo, uno de los servicios que se definen es la supervisión del servicio
web local:

...
define service {
use local-service
host_name localhost
service_description HTTP
check_command check_http
notifications_enabled 0
}
...
Vemos que el parámetro check_command hace referencia al
comando check_http, que a su vez hace referencia a un comando definido
en commands.cfg, que a su vez llama al plugin check_http (casualmente el
comando y el plugin tienen el mismo nombre).

Podemos añadir un nuevo servicio usando el comando que vimos antes


como ejemplo, check_local_users, añadiendo la siguiente definición:

...
# Chequea los usuarios con sesión iniciada
define service {
use local-service
host_name localhost
service_description Usuarios locales
check_command check_local_users!3!5
}
Guardamos los cambios y cerramos el archivo.

Finalmente el archivo nagios.conf:

~$ sudo nano /usr/local/nagios/etc/nagios.cfg


Se encarga, entre otras muchas cosas, de cargar las configuraciones de otros
archivos, como por ejemplo commands.cfg y localhost.cfg:

...
# You can specify individual object config files as shown below:
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
...
# Definitions for monitoring the local (Linux) host
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
...
Cualquier cambio en estos y otros archivos de configuración se aplicará al
recargar la configuración del servicio Nagios Core:

~$ sudo systemctl reload nagios


Si has introducido servicios nuevos, como hemos hecho en el tutorial, en
unos instantes se reflejarán en la interfaz de Nagios Core:
Cómo instalar Nagios NRPE en Debian
10 Buster
Vamos a instalar y configurar Nagios NRPE en Debian 10 Buster, en
la máquina remota que monitorizaremos desde el servidor Nagios Core. Se
supone que ya has instalado previamente los plugins de Nagios en esta
máquina, por lo que el único trabajo que queda es instalar el servicio NRPE.

Para ello descargaremos desde el sitio oficial el paquete con la última


versión de Nagios NRPE para Debian 10 Buster:
Copiamos el enlace del paquete .tgz y lo descargamos desde consola con
wget:

~$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-
4.0.3.tar.gz
Descomprimimos el archivo en el directorio actual:

~$ tar xf nrpe-4.0.3.tar.gz
Cambiamos el directorio de trabajo:

~$ cd nrpe-4.0.3/
Configuramos la compilación:

$ ./configure
Compilamos:
$ make nrpe
Creamos el usuario y grupo con el que correrá el servicio NRPE:

$ sudo make install-groups-users


Instalamos el script del servicio:

$ sudo make install-daemon


También instalamos los archivos de configuración del servicio NRPE:

$ sudo make install-config


Instalamos los scripts de manejo del servicio:

$ sudo make install-init


Abandonamos el directorio y lo eliminamos.

Y ya podemos iniciar el servicio:

~$ sudo systemctl start nrpe


Comprobamos su estado:

~$ systemctl status nrpe


Para asegurarnos de que el servicio esté siempre disponible, lo habilitaremos
y así Nagios NRPE iniciará en cada arranque de Debian 10:

~$ sudo systemctl enable nrpe

Configurar el servicio NRPE en Debian 10


Para poder conectar con el servidor Nagios tendremos que editamos el
archivo de configuración de Nagios NRPE:

~$ sudo nano /usr/local/nagios/etc/nrpe.cfg


Buscamos la directiva allowed_hosts:

...
allowed_hosts=127.0.0.1,::1
...
Y añadimos la dirección del servidor Nagios Core que monitorizará esta
máquina:

...
allowed_hosts=127.0.0.1,::1,debian10.local.lan
...
Este archivo además debe contener la definición de los comandos que podrá
utilizar el servidor Nagios Core. De hecho, existen algunos comandos de
prueba activados y otros muchos desactivados, como por ejemplo:

...
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -r -w .15,.10,.05 -
c .30,.25,.20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p
/dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
...
Puedes borrarlos, desactivarlos, modificarlos o añadir nuevos comandos. Por
ejemplo, modificaré el comando chech_hda1, ya que en esta máquina remota
no existe unidad /dev/hda, sino /dev/sda, quedando por tanto el comando
así:

...
command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p
/dev/sda1
...
Observa que hemos cambiado también el nombre del comando, pasando
de check_hda1 a check_sda1.

Al terminar los ajustes, guardamos y cerramos el archivo, y recargamos la


configuración del servicio NRPE:

~$ sudo systemctl reload nrpe.service

Cómo configurar el firewall UFW para Nagios


NRPE en Debian 10
Si tienes activado el firewall UFW en la máquina remota Debian 10 hay que
añadir la siguiente regla para permitir las conexiones entrantes desde el
servidor Nagios Core:

~$ sudo ufw allow nrpe

Cómo añadir máquinas remotas en


Nagios Core
De vuelta en el servidor Nagios Core, descargamos Nagios NRPE:

~$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-
4.0.3.tar.gz
Descomprimimos el paquete:

~$ tar xf nrpe-4.0.3.tar.gz
Cambiamos el directorio activo:

~$ cd nrpe-4.0.3/
Configuramos la compilación:

$ ./configure
En lugar de compilar el servicio, en el servidor Nagios Core compilamos el
plugin NRPE:

$ make check_nrpe
Y lo instalamos:

$ sudo make install-plugin


Podemos probarlo directamente en consola pasando como argumento la
dirección de la máquina remota Debian 10 que hemos configurado
anteriormente:

~$ /usr/local/nagios/libexec/check_nrpe -H debian102.local.lan
NRPE v4.0.3
La máquina remota responde con la versión del servicio NRPE instalado.

Configurar Nagios Core para añadir máquinas


remotas
Crearemos un comando para manejar el plugin NRPE, para lo que
editaremos el archivo commands.cfg:

~$ sudo nano /usr/local/nagios/etc/objects/commands.cfg


Y añadiremos el bloque para la definición del nuevo comando, junto al resto
de definiciones:

...
######################################################################
##########
# NOTE: The following 'check_...' commands are used to monitor services on
# both local and remote hosts.
######################################################################
##########
...
define command {
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
...
Guardamos los cambios y cerramos commands.cfg.

Ahora vamos a preparar un directorio independiente para las


configuraciones de las máquinas remotas. Para ello editamos el archivo de
configuración de Nagios Core, nagios.cfg:

~$ sudo nano /usr/local/nagios/etc/nagios.cfg


Buscamos esta línea:

...
#cfg_dir=/usr/local/nagios/etc/servers
...
Podemos ver que la configuración de Nagios Core ya tiene previsto un
directorio para máquinas remotas, pero hay que activarlo:

...
cfg_dir=/usr/local/nagios/etc/servers
...
Guardamos los cambios y cerramos. Ahora Nagios Core incluirá en su
configuración los archivos existentes en la ruta /usr/local/nagios/etc/servers/.

Esa carpeta no existe aún, así que la creamos:

~$ sudo mkdir /usr/local/nagios/etc/servers


Y el primer archivo de configuración que crearemos será el correspondiente
a la máquina remota Debian 10 que preparamos en un paso anterior:

~$ sudo nano /usr/local/nagios/etc/servers/debian102.local.lan.cfg


Incluiremos los datos de identificación y conexión de la máquina:

define host {
use linux-server
host_name debian102.local.lan
alias Debian 10 Buster (remota)
address debian102.local.lan
max_check_attempts 5
check_period 24x7
notification_interval 30
notification_period 24x7
}
Además añadiremos las definiciones de todos los servicios que queramos
supervisar:

...
define service {
use generic-service
host_name debian102.local.lan
service_description Carga de CPU
check_command check_nrpe!check_load
}
define service {
use generic-service
host_name debian102.local.lan
service_description Espacio libre en /dev/sda1
check_command check_nrpe!check_sda1
}
Naturalmente, puedes añadir tantos servicios como necesites. Guardamos
los cambios y cerramos.

Terminada la configuración de Nagios Core, recargamos la configuración del


servicio:
~$ sudo systemctl reload nagios
Y accedemos a la aplicación web. Ahora en la sección «Services» veremos la
nueva máquina remota y sus correspondientes servicios monitorizados:

¡Así de fácil!

Conclusión
Ahora que sabes cómo instalar Nagios Core, Nagios NRPE y los plugins de
Nagios en Debian 10 Buster, puedes monitorizar máquinas remotas tanto en
red local como a través de Internet, comprobando su estado y el de sus
servicios gracias a esta potente y prestigiosa aplicación.

También podría gustarte