Monitoreo · 21 min read · Nov 09, 2025
Cómo instalar y configurar Nagios en Rocky Linux 9

Nagios es un sistema de monitoreo de código abierto popular y uno de los más poderosos. Monitorea tu infraestructura de TI y mantiene tus redes, servidores, aplicaciones y procesos funcionando sin problemas. Con un sistema de monitoreo, puedes detectar problemas antes de que ocurran y solucionarlos rápidamente para ahorrar costos y tiempo de inactividad.
Este tutorial te enseña cómo instalar y configurar Nagios en un servidor Rocky Linux 9. También haremos una configuración básica e instalaremos el Ejecutador de Plugins Remotos de Nagios (NPRE), que nos permite monitorear hosts remotos.
Prerrequisitos
- Un servidor que ejecute Rocky Linux 9.
- Un usuario no sudo con privilegios de root.
- SELinux está deshabilitado. Para este tutorial, incluso si mantienes SELinux habilitado, funcionará sin problemas. Pero dependiendo de los monitores de Nagios que uses, necesitarás configurar SELinux o será mejor mantenerlo deshabilitado.
- Otro servidor que ejecute Rocky Linux 9 que deseas monitorear.
- Asegúrate de que todo esté actualizado.
$ sudo dnf update
Paso 1 - Configurar el Firewall
El primer paso es configurar el firewall. El servidor Rocky Linux viene con el firewall Firewalld.
Verifica si el firewall está en funcionamiento.
$ sudo firewall-cmd --state
Deberías obtener la siguiente salida.
running
Verifica los servicios/puertos permitidos actualmente.
$ sudo firewall-cmd --permanent --list-services
Debería mostrar la siguiente salida.
dhcpv6-client mdns ssh
Permite los puertos HTTP y HTTPS.
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Verifica nuevamente el estado del firewall.
$ sudo firewall-cmd --permanent --list-services
Deberías ver una salida similar.
dhcpv6-client http https mdns ssh
Recarga el Firewall.
$ sudo firewall-cmd --reload
Paso 2 - Instalar Apache y PHP
Para ejecutar Nagios, necesitarás Apache junto con PHP instalado.
Instala y habilita el servicio de Apache.
$ sudo dnf install httpd
$ sudo systemctl enable httpd
Para instalar PHP, usaremos el Repositorio Remi. Instala el Repositorio Remi y habilita PHP 8.1.
$ sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.1 -y
Instala PHP y varios módulos PHP comunes.
$ sudo dnf install -y php php-gd php-curl
Verifica la instalación de PHP.
$ php --version
PHP 8.1.16 (cli) (built: Feb 14 2023 18:59:41) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.16, Copyright (c) Zend Technologies
with Zend OPcache v8.1.16, Copyright (c), by Zend Technologies
Habilita PHP y comienza el servicio.
$ sudo systemctl enable --now php-fpm
Reinicia el servicio de Apache para que el cambio tenga efecto.
$ sudo systemctl restart httpd
Puedes verificar la instalación de Apache y PHP creando un archivo info.php en el directorio /var/www/html que fue creado por el instalador de Apache.
$ sudo nano /var/www/html/info.php
Pega el siguiente código en el editor.
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Abre la URL http:// en tu navegador y deberías ser recibido por la siguiente página.

Paso 3 - Instalar Nagios
La mayor parte de este tutorial requerirá que instales y trabajes en tu servidor principal.
Instalar Dependencias
Este tutorial requerirá que Nagios y sus plugins se construyan desde la fuente. Por lo tanto, necesitas instalar algunas bibliotecas de desarrollo primero. También necesitamos el repositorio EPEL, pero se instaló automáticamente con el repositorio Remi en el paso anterior, así que podemos omitirlo aquí.
$ sudo dnf install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel unzip wget gettext autoconf net-snmp-utils postfix automake perl-Net-SNMP
Descargar Nagios
Descarga la última versión desde la página de lanzamientos de GitHub de Nagios. En el momento del tutorial, 4.4.10 es la última versión disponible. Modifica el comando en caso de que desees una versión diferente.
$ cd ~
$ sudo wget -O nagios.tar.gz https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.4.10/nagios-4.4.10.tar.gz
Extrae el archivo tar.
$ sudo tar zxf nagios.tar.gz
Mueve el directorio extraído al directorio /usr/src.
sudo mv nagios-4.4.10 /usr/src/nagios
Cambia al directorio /usr/src/nagios.
$ cd /usr/src/nagios
Compilar Nagios
El siguiente paso es compilar Nagios desde sus archivos fuente. Ejecuta el script configure para realizar verificaciones y asegurarte de que todas las dependencias estén presentes.
$ sudo ./configure
Deberías obtener una salida similar después de la finalización exitosa del script.
* Resumen de configuración para nagios 4.4.10 2023-01-17 *:
Opciones Generales:
-------------------------
Ejecutable de Nagios: nagios
Usuario/grupo de Nagios: nagios,nagios
Usuario/grupo de comando: nagios,nagios
Broker de Eventos: sí
Instalar ${prefix}: /usr/local/nagios
Instalar ${includedir}: /usr/local/nagios/include/nagios
Archivo de bloqueo: /run/nagios.lock
Directorio de resultados de verificación: /usr/local/nagios/var/spool/checkresults
Directorio Init: /lib/systemd/system
Directorio conf.d de Apache: /etc/httpd/conf.d
Programa de correo: /usr/sbin/sendmail
OS del host: linux-gnu
Método IOBroker: epoll
Opciones de Interfaz Web:
------------------------
URL HTML: http://localhost/nagios/
URL CGI: http://localhost/nagios/cgi-bin/
Traceroute (usado por WAP):
Revisa las opciones anteriores para verificar su precisión. Si parecen correctas,
type 'make all' para compilar el programa principal y los CGIs.
Inicia la compilación.
$ sudo make all
Crear Usuario y Grupo de Nagios
Crea un nuevo usuario y grupo que ejecutará el proceso de Nagios.
$ sudo make install-groups-users
Deberías ver la siguiente salida.
groupadd -r nagios
useradd -g nagios nagios
Agrega el usuario apache al grupo nagios.
$ sudo usermod -a -G nagios apache
Instalar Binarios de Nagios
Ejecuta el siguiente comando para instalar los binarios de Nagios, CGIs y archivos HTML.
$ sudo make install
Crear Directorio de Comandos Externos
Nagios puede procesar comandos de aplicaciones externas y para ello, necesita que se configure un directorio.
$ sudo make install-commandmode
/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw
* Directorio de comandos externos configurado *
Instalar Archivos de Configuración de Nagios
Instala los archivos de configuración de muestra.
$ sudo make install-config
Instalar Archivos de Configuración de Apache
Ejecuta el siguiente comando para instalar los archivos de configuración de Apache.
$ sudo make install-webconf
Reinicia el servidor web para activar la configuración.
$ sudo systemctl restart httpd
Crear un Archivo de Servicio Systemd
Ejecuta el siguiente comando para instalar un archivo de unidad systemd.
$ sudo make install-daemoninit
Habilitar Autenticación HTTP
Puedes bloquear la interfaz web de Nagios a través de la autenticación HTTP. Ejecuta el siguiente comando para usar htpasswd para crear el usuario. Se te pedirá una contraseña.
$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Nueva contraseña:
Reescribe la nueva contraseña:
Agregando contraseña para el usuario nagiosadmin
El nombre predeterminado para el usuario es nagiosadmin. Puedes usar otro nombre de usuario reemplazando todas las instancias de nagiosadmin en el archivo /usr/local/nagios/etc/cgi.cfg por el nombre de usuario preferido. O puedes agregar el nombre de usuario usando una coma como la siguiente.
authorized_for_system_information=nagiosadmin, username1
authorized_for_configuration_information=nagiosadmin, username1
authorized_for_system_commands=nagiosadmin, username1
authorized_for_all_services=nagiosadmin, username1
authorized_for_all_hosts=nagiosadmin, username1
authorized_for_all_service_commands=nagiosadmin, username1
authorized_for_all_host_commands=nagiosadmin, username1
Puedes agregar usuarios con acceso de solo lectura habilitando la siguiente configuración en el archivo al eliminar el hash (#) frente a ella. Luego, ejecuta htpasswd con el nombre de usuario.
authorized_for_read_only=username2
Reinicia el servidor para que la configuración tenga efecto.
$ sudo systemctl restart httpd
Paso 4 - Instalar Plugins de Nagios
Instala los prerrequisitos requeridos para los plugins de Nagios.
$ sudo dnf install epel-release
$ sudo dnf install -y gcc glibc glibc-common make gettext automake autoconf wget openssl-devel net-snmp net-snmp-utils postgresql-devel openldap-devel bind-utils samba-client fping openssh-clients lm_sensors perl-Net-SNMP
Descarga la última versión desde la página de GitHub de los plugins de Nagios. En el momento del tutorial, 2.4.3 es la última versión disponible. Modifica el comando en caso de que desees una versión diferente.
$ cd ~
$ sudo wget -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.4.3/nagios-plugins-2.4.3.tar.gz
Extrae el archivo tar.
$ sudo tar zxf nagios-plugins.tar.gz
Mueve el directorio extraído al directorio /usr/src.
$ sudo mv nagios-plugins-2.4.3 /usr/src/nagios-plugins
Cambia de nuevo al directorio /usr/src/nagios-plugins.
$ cd /usr/src/nagios-plugins
Ejecuta los siguientes comandos para compilar e instalar los plugins.
$ sudo ./configure
$ sudo make
$ sudo make install
Paso 5 - Instalar el Plugin check_nrpe
Descarga la última versión desde la página de lanzamientos de NRPE en GitHub. En el momento de escribir este tutorial, la última versión disponible es 4.1.0. Modifica el siguiente comando en caso de que desees una versión diferente.
$ cd ~
$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz
Extrae el archivo.
$ tar zxf nrpe-*.tar.gz
Mueve el directorio extraído al directorio /usr/src.
$ sudo mv nrpe-4.1.0 /usr/src/nrpe
Cambia al directorio /usr/src/nrpe.
$ cd /usr/src/nrpe
Configura e instala el plugin.
$ sudo ./configure
$ sudo make check_nrpe
$ sudo make install-plugin
Esto colocará el plugin check_nrpe en el directorio /usr/local/nagios/libexec/.
Paso 6 - Iniciar Nagios
Con Nagios y los plugins instalados, es hora de iniciar el servicio de Nagios.
$ sudo systemctl start nagios
Verifica el estado del servicio para ver si está funcionando correctamente.
$ sudo systemctl status nagios
Interfaz Web de Nagios
Abre la URL http:// en tu navegador. Deberías ver un aviso de inicio de sesión.
Ingresa las credenciales que creaste durante el método de autenticación HTTP y deberías ser recibido con la siguiente pantalla.

Paso 7 - Monitorear Hosts
Para monitorear un host, necesitas instalar el Daemon NRPE y los plugins de Nagios en el host. Monitorearemos un servidor Rocky Linux 9 desde nuestro servidor Nagios.
Inicia sesión en tu host.
$ ssh user@monitored_server_ip
Instalar Plugins de Nagios
Instala los plugins de Nagios repitiendo el paso 4 de antes.
Instalar NRPE
Instala los prerrequisitos requeridos para el daemon NRPE.
$ sudo dnf install -y gcc glibc glibc-common openssl openssl-devel perl wget
Descarga NRPE.
$ cd ~
$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz
Extrae el archivo.
$ tar zxf nrpe-*.tar.gz
Mueve el directorio extraído al directorio /usr/src.
$ sudo mv nrpe-4.1.0 /usr/src/nrpe
Cambia al directorio NRPE.
$ cd /usr/src/nrpe
Configura e instala NRPE.
$ sudo ./configure --enable-command-args
$ sudo make all
Crea el usuario y grupo.
$ sudo make install-groups-users
Instala los binarios de NRPE, el daemon NRPE y el plugin check_npre.
$ sudo make install
Instala los archivos de configuración.
$ sudo make install-config
Actualiza el archivo de servicios. El archivo /etc/services se utiliza para traducir nombres de servicios a números de puerto.
$ sudo sh -c "echo >> /etc/services"
$ sudo sh -c "sudo echo '# Servicios de Nagios' >> /etc/services"
$ sudo sh -c "sudo echo 'nrpe 5666/tcp' >> /etc/services"
Instala el daemon de servicio NPRE.
$ sudo make install-init
$ sudo systemctl enable nrpe
Necesitas actualizar el archivo de configuración de NPRE ubicado en /usr/local/nagios/etc/nrpe.cfg.
Abre el archivo para editar.
$ sudo nano /usr/local/nagios/etc/nrpe.cfg
Por defecto, NPRE escucha solicitudes solo desde el localhost (127.0.0.1). Necesitas agregar la dirección IP de tu servidor Nagios al archivo.
allowed_hosts=127.0.0.1,10.25.5.2
La siguiente opción determina si el daemon NPRE permitirá a los clientes especificar argumentos de comando. Permite la opción ingresando el valor como 1, lo que habilita configuraciones avanzadas de NPRE.
dont_blame_nrpe=1
A continuación, a medida que desplazas hacia abajo, encontrarás una lista de comandos NRPE con sus definiciones. Todos ellos están comentados. Necesitas descomentarlos para que Nagios pueda usarlos.
Cada comando puede recibir argumentos. Algunos de los comandos tienen argumentos codificados en frente de ellos, mientras que algunos pueden aceptar argumentos del usuario. Cada comando puede tener las siguientes opciones de notificación.
- W significa estados de servicio de advertencia
- C significa estados de servicio críticos
- R significa notificar sobre la recuperación del servicio (estados OK)
Por lo tanto, puedes especificar en qué nivel qué tipo de notificación un comando puede enviar. No profundizaremos en la descripción detallada y función de cada uno de los comandos, ya que están más allá del alcance de este tutorial.
# Los siguientes ejemplos utilizan argumentos de comando codificados...
# Este es, con mucho, el método más seguro de usar NRPE
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
# Los siguientes ejemplos permiten argumentos proporcionados por el usuario y pueden
# solo usarse si el daemon NRPE fue compilado con soporte para
# argumentos de comando *Y* la directiva dont_blame_nrpe en este
# archivo de configuración está configurada en '1'. Esto plantea un riesgo de seguridad potencial, así que
# asegúrate de leer el archivo SECURITY antes de hacer esto.
### MÉTRICAS DEL SISTEMA MISC ###
command[check_users]=/usr/local/nagios/libexec/check_users $ARG1$
command[check_load]=/usr/local/nagios/libexec/check_load $ARG1$
command[check_disk]=/usr/local/nagios/libexec/check_disk $ARG1$
command[check_swap]=/usr/local/nagios/libexec/check_swap $ARG1$
command[check_cpu_stats]=/usr/local/nagios/libexec/check_cpu_stats.sh $ARG1$
command[check_mem]=/usr/local/nagios/libexec/custom_check_mem -n $ARG1$
### SERVICIOS GENÉRICOS ###
command[check_init_service]=sudo /usr/local/nagios/libexec/check_init_service $ARG1$
command[check_services]=/usr/local/nagios/libexec/check_services -p $ARG1$
### ACTUALIZACIONES DEL SISTEMA ###
command[check_yum]=/usr/local/nagios/libexec/check_yum
#command[check_apt]=/usr/local/nagios/libexec/check_apt
### PROCESOS ###
command[check_all_procs]=/usr/local/nagios/libexec/custom_check_procs
command[check_procs]=/usr/local/nagios/libexec/check_procs $ARG1$
### ARCHIVOS ABIERTOS ###
command[check_open_files]=/usr/local/nagios/libexec/check_open_files.pl $ARG1$
### CONEXIONES DE RED ###
command[check_netstat]=/usr/local/nagios/libexec/check_netstat.pl -p $ARG1$ $ARG2$
Descomenta los comandos anteriores eliminando el símbolo # frente a ellos. Puedes descomentar tantos comandos como necesites.
Agrega el siguiente comando para verificar el espacio en disco raíz.
command[check_root]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /
Una vez que hayas terminado, guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Permite el puerto 5666 que es utilizado por el plugin NPRE.
$ sudo firewall-cmd --permanent --add-port=5666/tcp
Recarga el firewall.
$ sudo firewall-cmd --reload
Inicia NPRE.
$ sudo systemctl start nrpe
Todos los comandos de aquí en adelante se ejecutarán en el servidor Nagios principal a menos que se especifique lo contrario.
Verifica si NRPE está funcionando ejecutando el siguiente comando en tu servidor Nagios principal.
$ /usr/local/nagios/libexec/check_nrpe -H monitored_server_ip
Deberías ver la siguiente salida.
NRPE v4.1.0
Para monitorear los hosts, necesitarás crear archivos de configuración para cada host que desees monitorear. Estos hosts se volverán accesibles a través de la interfaz web de Nagios.
Crea el directorio para almacenar los archivos de configuración y dale los permisos adecuados.
$ sudo mkdir /usr/local/nagios/etc/servers
$ sudo chown -R nagios:nagios /usr/local/nagios/etc/servers
$ sudo chmod g+w /usr/local/nagios/etc/servers
Abre el archivo de configuración de Nagios /usr/local/nagios/etc/nagios.cfg para editar.
$ sudo nano /usr/local/nagios/etc/nagios.cfg
Encuentra el siguiente archivo y descomenta eliminando el # frente a él.
cfg_dir=/usr/local/nagios/etc/servers
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
El siguiente paso es agregar el comando check_nrpe al archivo /usr/local/nagios/etc/objects/commands.cfg para que pueda usarse para monitorear hosts.
Abre el archivo /usr/local/nagios/etc/objects/commands.cfg para editar.
$ sudo nano /usr/local/nagios/etc/objects/commands.cfg
Pega el siguiente código al final del archivo.
define command {
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$ $ARG2$
}
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Crea un nuevo archivo de configuración para el host remoto en el directorio /usr/local/nagios/etc/servers/.
$ sudo nano /usr/local/nagios/etc/servers/yourhost.cfg
Agrega el siguiente código reemplazando el valor host_name con el nombre de tu host remoto, el valor alias con la descripción de tu host y el valor address con la dirección IP de tu host remoto.
define host {
use linux-server
host_name monitored_server_host_name
alias Mi servidor cliente
address monitored_server_private_ip
max_check_attempts 5
check_period 24x7
notification_interval 30
notification_period 24x7
}
Con esta configuración, Nagios te informará cuando el host esté arriba o abajo. Necesitarás agregar más servicios para monitorear cosas adicionales.
Agrega el siguiente bloque para verificar las estadísticas de conexión del host.
define service {
use generic-service
host_name monitored_server_host_name
service_description PING
check_command check_ping!200.0,20%!400.0,90%
}
Agrega el siguiente bloque para monitorear el promedio de carga de tu servidor.
define service {
use generic-service
host_name monitored_server_host_name
service_description Promedio de carga
check_command check_nrpe!check_load!-a '-w 0.7,0.6,0.5 -c 0.9,0.8,0.7'
}
La directiva use generic-service le dice a Nagios que herede de una plantilla llamada generic-service predefinida por Nagios.
A continuación, agrega un bloque para monitorear el uso del disco. Modifica el comando con las etiquetas de disco apropiadas.
define service {
use generic-service
host_name monitored_server_host_name
service_description /dev/vda1 espacio libre
check_command check_nrpe!check_disk!-a '-w 20% -c 10% -p /dev/vda1'
}
Monitorea SSH usando el siguiente bloque. El siguiente bloque verificará el servidor SSH y generará una alerta si el servidor no responde dentro de los 5 segundos.
define service {
use generic-service
host_name monitored_server_host_name
service_description Verificación de versión SSH
check_command check_ssh!-t 5
}
Verifiquemos el número total de procesos en ejecución.
define service{
use generic-service
host_name monitored_server_host_name
service_description Total de Procesos
check_command check_nrpe!check_total_procs
}
Verifica los usuarios actualmente conectados.
define service{
use generic-service
host_name monitored_server_host_name
service_description Usuarios actuales
check_command check_nrpe!check_users!-a '-w 5 -c 10'
}
Verifica el uso del disco SWAP.
define service{
use generic-service
host_name monitored_server_host_name
service_description Uso de SWAP
check_command check_nrpe!check_swap!-a '-w 40% -c 20%'
}
Verifica la partición raíz y su uso de disco.
define service{
use generic-service
host_name nagiosclient
service_description Raíz / Partición
check_command check_nrpe!check_disk!-a '-w 20% -c 10% -p /'
}
Verifica si un servidor HTTP está instalado.
define service {
use generic-service
host_name nagiosclient
service_description HTTP
check_command check_http
}
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Reinicia Nagios.
$ sudo systemctl restart nagios
Verificar Monitores
Abre tu panel de control de Nagios y haz clic en la opción Hosts en la barra lateral izquierda. Deberías ver el nuevo host configurado junto con localhost en la página.

Haz clic en el nuevo host configurado (nagiosclient) y si todo está configurado correctamente, deberías ver su estado. Tomará un minuto o más para que el estado aparezca.

Para ver los servicios o los monitores que configuramos, haz clic en la opción Ver Detalle de Estado para Este Host y deberías ser recibido por la siguiente página.

Esto debería darte una idea adecuada de cómo están funcionando tus hosts.
Paso 8 - Instalar Nginx
Puedes ejecutar Nagios directamente a través de la IP del servidor o tenerlo alojado en tu nombre de dominio. Nagios ya incluye archivos de configuración de Apache, pero usaremos Nginx para ejecutarlo. Usaremos Nginx como un proxy inverso frente al servidor web Apache.
Apache ya lo está ejecutando en el puerto 80. Por lo tanto, necesitamos cambiar eso primero. Y luego, podemos ejecutar Nginx como proxy.
Abre el archivo /etc/httpd/conf/httpd.conf para editar.
$ sudo nano /etc/httpd/conf/httpd.conf
Cambia la línea Listen 80 a Listen 8080. Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida. Dado que usaremos el nombre de dominio para acceder a Nagios, no necesitamos abrir el puerto 8080 para acceso público.
Reinicia el servidor Apache.
$ sudo systemctl restart httpd
A continuación, instala Nginx.
Rocky Linux 9 incluye una versión más antigua de Nginx. Necesitas descargar el repositorio oficial de Nginx para instalar la última versión.
Crea y abre el archivo /etc/yum.repos.d/nginx.repo para crear el repositorio oficial de Nginx.
$ sudo nano /etc/yum.repos.d/nginx.repo
Pega el siguiente código en él.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Instala el servidor Nginx.
$ sudo dnf install nginx
Verifica la instalación.
$ nginx -v
nginx version: nginx/1.22.1
Habilita e inicia el servidor Nginx.
$ sudo systemctl enable nginx --now
Paso 9 - Instalar y Configurar SSL
Antes de configurar Nginx, configuraremos y configuraremos un certificado SSL para el dominio que vamos a usar con Nagios. En nuestro caso, usaremos http://nagios.example.com.
Usaremos el instalador de paquetes Snapd para eso. Dado que Rocky Linux no lo incluye, instala el instalador Snapd. Requiere que el repositorio EPEL funcione, que ya instalamos anteriormente, así que podemos omitir eso.
Instala Snapd.
$ sudo dnf install -y snapd
Habilita e inicia el servicio Snap.
$ sudo systemctl enable snapd --now
Instala el paquete Snap core y asegúrate de que tu versión de Snapd esté actualizada.
$ sudo snap install core && sudo snap refresh core
Crea los enlaces necesarios para que Snapd funcione.
$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
Emite el siguiente comando para instalar Certbot.
$ sudo snap install --classic certbot
Usa el siguiente comando para asegurarte de que el comando Certbot pueda ejecutarse creando un enlace simbólico al directorio /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Verifica la instalación.
$ certbot --version
certbot 2.3.0
Ejecuta el siguiente comando para generar un certificado SSL.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d nagios.example.com
El comando anterior descargará un certificado en el directorio /etc/letsencrypt/live/nagios.example.com en tu servidor.
Genera un certificado de grupo Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Haz una prueba del proceso para verificar si la renovación de SSL está funcionando bien.
$ sudo certbot renew --dry-run
Si no ves errores, estás listo. Tu certificado se renovará automáticamente.
Paso 10 - Configurar Nginx
Antes de configurar Nginx, hay otro cambio que deberíamos hacer. Por defecto, Apache sirve Nagios a través de http://. Ahora, podemos configurar un proxy directamente con Nagios, pero se servirá a través de https://nagios.example.com/nagios. Podemos hacer una redirección en Nginx a la URL raíz, lo que complica las cosas. Por esa razón, haremos un cambio en Apache y Nagios directamente.
Primero, abre el archivo /usr/local/nagios/etc/cgi.cfg para editar.
$ sudo nano /usr/local/nagios/etc/cgi.cfg
Cambia url_html_path=/nagios a url_html_path=/.
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
A continuación, abre /etc/httpd/conf.d/nagios.conf para editar.
$ sudo nano /etc/httpd/conf.d/nagios.conf
Cambia ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" a ScriptAlias /cgi-bin "/usr/local/nagios/sbin".
Comenta la línea Alias /nagios "/usr/local/nagios/share" cambiándola a lo siguiente.
#Alias /nagios "/usr/local/nagios/share"
Agrega la siguiente línea debajo de ella.
DocumentRoot /usr/local/nagios/share
Agrega la siguiente línea en la parte superior del archivo.
Agrega la siguiente línea en la parte inferior del archivo.
Una vez que hayas terminado, guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Y por último, abre el archivo /usr/local/nagios/share/config.inc.php para editar.
$ sudo nano /usr/local/nagios/share/config.inc.php
Cambia $cfg['cgi_base_url']='/nagios/cgi-bin'; a $cfg['cgi_base_url']='/cgi-bin';.
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Reinicia tanto Apache como Nagios.
$ sudo systemctl restart httpd
$ sudo systemctl restart nagios
Para confirmar que todo funciona correctamente, abre la URL http:// en tu navegador y deberías ver a Nagios funcionando correctamente. También asegúrate de que los datos de los Hosts se estén recibiendo.
Una vez que todo esté funcionando, podemos proceder a crear nuestro archivo de configuración para Nginx.
Crea un archivo de configuración para Nagios en el directorio /etc/nginx/conf.d.
$ sudo nano /etc/nginx/conf.d/nagios.conf
Pega el siguiente código en él.
server {
listen 80; listen [::]:80;
server_name nagios.example.com;
return 301 https://$host$request_uri;
}
server {
server_name nagios.example.com;
listen 443 ssl http2;
listen [::]:443 ssl http2;
access_log /var/log/nginx/nagios.access.log;
error_log /var/log/nginx/nagios.error.log;
ssl_certificate /etc/letsencrypt/live/nagios.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/nagios.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/nagios.example.com/chain.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Una vez que hayas terminado, guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Valida el archivo de configuración.
$ sudo nginx -t
Si obtienes el siguiente error, necesitarás editar el archivo /etc/nginx/nginx.conf para agregar/ajustar el tamaño de la variable server_names_hash_bucket_size.
nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size
Abre el archivo /etc/nginx/nginx.conf para editar.
$ sudo nano /etc/nginx/nginx.conf
Agrega la siguiente línea antes
server_names_hash_bucket_size 64;
Una vez que hayas terminado, guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida. Valida Nginx nuevamente.
Si no ves problemas, reinicia el servidor Nginx.
$ sudo systemctl restart nginx
Configurar SELinux
Si has mantenido SELinux habilitado, ejecuta el siguiente comando para permitir que Nginx se conecte a la red.
$ sudo setsebool -P httpd_can_network_connect on
Lanza el dominio https://nagios.example.com en tu navegador, y deberías ser recibido con la página de inicio de Nagios.
Conclusión
Has instalado y configurado Nagios en un servidor Rocky Linux 9 para monitorear varios servicios como la carga, el uso de disco/swap, usuarios, total de procesos, HTTP y SSH. Esto concluye nuestro tutorial. Para aprender más, deberías consultar la documentación oficial de Nagios que cubre el monitoreo y varios comandos en gran detalle. Si tienes alguna pregunta, publícalas en los comentarios a continuación.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.