Cómo Instalar Nagios en Debian 10 Buster
Cómo Instalar Nagios en Debian 10 Buster
Cómo Instalar Nagios en Debian 10 Buster
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.
~$ wget https://github.com/nagios-plugins/nagios-plugins/releases/download/release-
2.4.0/nagios-plugins-2.4.0.tar.gz
~$ 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:
$ ./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
~$ /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
~$ 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:
$ make all
Instalación
La instalación está repartida en una serie de objetivos de make que
enumeramos a continuación.
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.
...
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.
...
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.
...
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).
...
# 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:
...
# 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:
~$ 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:
...
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.
~$ 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:
~$ /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.
...
######################################################################
##########
# 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.
...
#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/.
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.
¡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.