¿Qué es Nagios Core?
Nagios Core es el motor de monitorización de sistemas y redes de código abierto más utilizado en entornos empresariales. Permite vigilar en tiempo real el estado de servidores, servicios de red, aplicaciones y dispositivos, enviando alertas automáticas cuando algo falla o se degrada.
A diferencia de Nagios XI (versión comercial con interfaz gráfica completa), Nagios Core se configura íntegramente editando archivos de texto, lo que lo convierte en una herramienta ideal para entender en profundidad cómo funciona la monitorización a nivel técnico.
Instalación desde código fuente: La instalación de Nagios Core en Ubuntu 24.04 se realiza compilando el código fuente porque garantiza la versión más reciente y la configuración óptima. Los repositorios apt a veces ofrecen versiones desactualizadas.
Al finalizar este laboratorio serás capaz de:
- Instalar Nagios Core 4.5.3 y sus plugins en Ubuntu 24.04 desde código fuente
- Configurar Apache para el acceso a la interfaz web
- Añadir hosts y servicios personalizados a la monitorización
- Interpretar los estados y alertas de la interfaz web
- Gestionar el ciclo de verificación → reinicio → revisión
- Preparar la instalación para monitorización avanzada con NRPE
Arquitectura y Conceptos Clave
Antes de empezar es fundamental entender los dos elementos centrales de Nagios:
| Concepto | Definición | Ejemplo |
|---|---|---|
| Host | Un dispositivo físico o virtual que Nagios va a monitorizar | Servidor Ubuntu, Router, Windows PC |
| Service | Una comprobación específica que se ejecuta sobre un host | Ping, HTTP, CPU, Disco, MySQL |
| Plugin | Script o binario que realiza la comprobación y devuelve un estado | check_ping, check_http, check_disk |
| Contact | Persona que recibe las notificaciones de alertas | Administrador de sistemas |
| Template | Plantilla de configuración reutilizable | generic-host, linux-server |
| NRPE | Agente que permite ejecutar plugins en el host remoto | Comprobar RAM de un servidor Windows |
Estados posibles de un host
| Estado | Significado |
|---|---|
| UP | El host responde correctamente a las comprobaciones |
| DOWN | El host no responde — puede estar caído o inaccesible |
UNREACHABLE | Un host intermedio (padre) está caído y bloquea el acceso |
| PENDING | Aún no se ha ejecutado ninguna comprobación |
Estados posibles de un servicio
| Estado | Significado | Ejemplo típico |
|---|---|---|
| OK | El servicio funciona dentro de los parámetros normales | Disco al 45%, ping <100ms |
| WARNING | El servicio está degradado pero no ha fallado | Disco al 80%, ping 250ms |
| CRITICAL | El servicio ha fallado o superado el umbral crítico | Disco al 95%, HTTP 500, ping timeout |
| UNKNOWN | El plugin no pudo determinar el estado (error del propio plugin) | Plugin mal configurado, permisos |
Preparar el Entorno
PrerrequisitosEste laboratorio se realizará sobre Ubuntu 24.04 LTS (Noble Numbat). Necesitas un equipo o máquina virtual con acceso a internet y privilegios de superusuario.
Verificar la versión del sistema:
lsb_release -aNo LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.1 LTS
Release: 24.04
Codename: nobleCrear el directorio de trabajo del laboratorio:
mkdir -p ~/lab-nagios && cd ~/lab-nagios
echo "Directorio: /"Permisos sudo: Casi todos los comandos de este laboratorio requieren privilegios de superusuario. Asegúrate de tener sudo configurado o de trabajar como root. En una VM de laboratorio, trabajar directamente como root con sudo -i simplifica el proceso.
Paso 1: Instalación de Dependencias
aptNagios requiere herramientas de compilación, bibliotecas de gráficos web y el servidor Apache con soporte PHP. Sin estas dependencias, la compilación fallará.
Actualizar el sistema:
sudo apt update
sudo apt upgrade -yInstalar todos los paquetes esenciales en un solo comando:
sudo apt install -y autoconf gcc libc6 make wget unzip apache2 php libapache2-mod-php libgd-dev openssl libssl-dev build-essential| Paquete | Función en Nagios |
|---|---|
autoconf, gcc, make, build-essential | Herramientas de compilación de código C (Nagios Core está escrito en C) |
apache2, php, libapache2-mod-php | Servidor web y soporte PHP para la interfaz gráfica de Nagios |
libgd-dev | Biblioteca de gráficos necesaria para generar los mapas visuales de la interfaz web |
openssl, libssl-dev | Librerías de seguridad para comunicaciones cifradas |
wget, unzip | Herramientas de descarga y descompresión del código fuente |
Verificar que la instalación fue correcta comprobando la versión de Apache:
apache2 -v
php --versionPaso 2: Configuración de Usuario y Grupo
SeguridadEs una práctica recomendada en sistemas Unix crear un usuario y grupo dedicados para cada servicio. Esto limita los permisos del proceso de Nagios al mínimo necesario, reduciendo la superficie de ataque.
Crear el usuario nagios (sin directorio home, sin shell interactiva):
sudo useradd nagiosCrear el grupo nagcmd para el manejo de comandos externos:
sudo groupadd nagcmdAñadir el usuario nagios al grupo nagcmd:
sudo usermod -a -G nagcmd nagiosAñadir el usuario www-data (Apache) al grupo nagcmd:
sudo usermod -a -G nagcmd www-dataEsto permite al servidor web enviar comandos externos a Nagios (reconocer alertas, programar mantenimientos, etc.) a través del pipe de comandos.
¿Por qué www-data necesita estar en nagcmd? La interfaz web de Nagios permite ejecutar acciones (como "reconocer un problema" o "programar downtime") que envían comandos al proceso Nagios a través de un fichero de pipe especial (/usr/local/nagios/var/rw/nagios.cmd). Sin este permiso, la interfaz web no podría enviar esos comandos y daría error 403.
Paso 3: Descarga y Compilación de Nagios Core
v4.5.3Compilar desde código fuente nos da control total sobre la configuración y garantiza que tenemos la versión más reciente con todas las dependencias correctas.
Versiones: Los ejemplos usan la versión 4.5.3. Consulta assets.nagios.com para obtener la URL de la versión más reciente en el momento de realizar el laboratorio.
Descargar Nagios Core v4.5.3:
cd /tmp
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.5.3.tar.gzDescomprimir y acceder al directorio:
tar -zxvf nagios-4.5.3.tar.gz
cd nagios-4.5.3La flag -zxvf significa: descomprimir gzip (z), extraer (x), modo verbose (v), fichero (f).
Configurar la compilación especificando el grupo de comandos:
sudo ./configure --with-command-group=nagcmdEl script configure detecta el sistema, verifica dependencias y genera los Makefile. Al final mostrará un resumen. Si hay errores de dependencias faltantes, los indicará aquí.
Compilar todo el código fuente (puede tardar 2-5 minutos):
sudo make allPara acelerar la compilación en sistemas con varios núcleos: sudo make -j2 all
Instalar Nagios Core ejecutando los targets de make en orden:
# Instala binarios, CGIs y archivos HTML de la interfaz web
sudo make install
# Instala los scripts de inicio del servicio (systemd)
sudo make install-init
# Configura los permisos del archivo de comandos externos
sudo make install-commandmode
# Instala los archivos de configuración de ejemplo en /usr/local/nagios/etc/
sudo make install-config
# Instala el archivo de configuración de Apache para Nagios
sudo make install-webconf| Comando make | Qué instala | Destino |
|---|---|---|
make install | Binarios, CGIs e interfaz HTML | /usr/local/nagios/ |
make install-init | Unit de systemd para el servicio | /lib/systemd/system/nagios.service |
make install-commandmode | Permisos del pipe de comandos | /usr/local/nagios/var/rw/ |
make install-config | Archivos de configuración de ejemplo | /usr/local/nagios/etc/ |
make install-webconf | Configuración de Apache para Nagios | /etc/apache2/conf-enabled/nagios.conf |
Paso 4: Instalación de Plugins de Nagios
v2.4.10Los plugins son los ejecutables que realizan las comprobaciones reales. Sin ellos, Nagios no puede verificar nada. El paquete oficial contiene más de 50 plugins para los servicios más comunes.
Descargar los Nagios Plugins v2.4.10:
cd /tmp
wget https://nagios-plugins.org/download/nagios-plugins-2.4.10.tar.gzDescomprimir y acceder al directorio:
tar -zxvf nagios-plugins-2.4.10.tar.gz
cd nagios-plugins-2.4.10Configurar, compilar e instalar los plugins:
sudo ./configure --with-nagios-user=nagios --with-nagios-group=nagios
sudo make
sudo make installLos plugins se instalan en /usr/local/nagios/libexec/. Puedes listarlos con: ls /usr/local/nagios/libexec/
Verificar que los plugins se instalaron correctamente:
ls /usr/local/nagios/libexec/ | head -20check_apt check_dig check_http
check_by_ssh check_disk check_imap
check_cluster check_dns check_ldap
check_dbi check_dummy check_load
check_dhcp check_file_age check_mrtg
check_disk_smb check_ftp check_mysql
check_ping check_smtp check_tcp
check_pop check_ssh check_udp| Plugin | Qué comprueba | Ejemplo de uso |
|---|---|---|
check_ping | Conectividad ICMP (latencia y pérdida de paquetes) | Cualquier dispositivo en red |
check_http | Estado de un servidor web HTTP/HTTPS | Verificar que el sitio web responde |
check_disk | Uso del disco en el servidor local | Alertar al 80% / crítico al 90% |
check_load | Carga media del sistema | Detectar sobrecarga de CPU |
check_ssh | Accesibilidad del servicio SSH | Puerto 22 abierto y respondiendo |
check_smtp | Servidor de correo SMTP | Puerto 25 disponible |
check_mysql | Estado de una base de datos MySQL | Conexión y credenciales válidas |
check_nrpe | Ejecuta plugins en el host remoto vía NRPE | Disco, RAM, CPU en servidor remoto |
Paso 5: Configuración de Apache y Acceso Web
ApacheHabilitar los módulos de Apache necesarios:
# rewrite: necesario para las URLs amigables de Nagios
sudo a2enmod rewrite
# cgi: necesario para ejecutar los scripts CGI de Nagios (la interfaz web)
sudo a2enmod cgiCrear el usuario administrador web (nagiosadmin):
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadminEl sistema te pedirá introducir y confirmar la contraseña. En el documento de práctica se usa dingdong, aunque en entornos reales debes usar una contraseña robusta.
La flag -c crea un nuevo archivo. Si ya existe y quieres añadir otro usuario sin borrar el primero, omite -c: sudo htpasswd /usr/local/nagios/etc/htpasswd.users otrouser
Reiniciar Apache para aplicar la configuración web:
sudo systemctl restart apache2Verificar la configuración de Nagios antes de iniciar el servicio:
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfgEste comando es crítico: revisa la sintaxis de todos los archivos de configuración. Si hay errores, los indica con número de línea. Nunca inicies Nagios sin verificar primero.
Nagios Core 4.5.3
Copyright (c) 2009-present Nagios Core Development Team
...
Total Warnings: 0
Total Errors: 0
Things look okay - No serious problems were detected during the pre-flight checkHabilitar e iniciar el servicio Nagios:
# Habilitar para que arranque automáticamente con el sistema
sudo systemctl enable nagios
# Iniciar el servicio ahora
sudo systemctl start nagios
# Verificar que está activo
sudo systemctl status nagios● nagios.service - Nagios Core
Loaded: loaded (/lib/systemd/system/nagios.service; enabled)
Active: active (running) since ...
Process: ... ExecStart=/usr/local/nagios/bin/nagios ...
Main PID: 96800 (nagios)
Status: "Daemon running..."Si usas UFW (firewall), permite el tráfico HTTP:
sudo ufw allow 'Apache'
# O específicamente el puerto 80
sudo ufw allow 80/tcp
sudo ufw statusPaso 6: Primer Acceso a la Interfaz Web
VerificaciónCon el servicio activo, abre tu navegador y accede a la interfaz web de Nagios.
Obtener la IP del servidor (si no la conoces):
hostname -I | awk '{print }'Acceder desde el navegador:
http://<tu_direccion_IP>/nagios
# Ejemplo local:
http://localhost/nagios
http://127.0.0.1/nagiosEl navegador mostrará un diálogo de autenticación. Introduce las credenciales que configuraste en el paso anterior:
Usuario: nagiosadmin
Contraseña: La que estableciste (ej: dingdong)
La Interfaz Web de Nagios Core
La interfaz de Nagios Core se divide en un menú lateral izquierdo con cuatro secciones principales. La mayoría del trabajo de monitorización se realiza en Current Status.
| Sección del Menú | Función |
|---|---|
| Current Status | Muestra el estado actual y los problemas (en rojo/naranja) en tiempo real |
| Reports | Muestra el historial de eventos, notificaciones y gráficos de disponibilidad |
| System | Gestión del propio proceso Nagios: comentarios, downtime, rendimiento |
| General | Página de inicio y enlace a documentación oficial |
Referencia completa del menú
Añadir un Host a la Monitorización
ConfiguraciónNagios Core no tiene interfaz gráfica para añadir configuraciones. Toda la configuración se realiza editando archivos .cfg en el servidor Ubuntu. Esta es la diferencia fundamental con Nagios XI.
Ubicación de los archivos de configuración:
- Configuración principal:
/usr/local/nagios/etc/nagios.cfg - Objetos (hosts, servicios):
/usr/local/nagios/etc/objects/ - Plantillas:
/usr/local/nagios/etc/objects/templates.cfg - Comandos:
/usr/local/nagios/etc/objects/commands.cfg
Crear el archivo de definición de hosts (o añadir al existente):
sudo nano /usr/local/nagios/etc/objects/hosts.cfgDefinir el host a monitorizar — añade este bloque al archivo:
define host{
use linux-server ; Plantilla heredada (de templates.cfg)
host_name Servidor_Windows ; Nombre que aparecerá en Nagios
alias Mi Servidor de Pruebas ; Descripción legible
address 192.168.1.5 ; Dirección IP del host (tu máquina Windows)
}Plantillas disponibles: La directiva use hereda configuración de una plantilla definida en templates.cfg. Las más usadas son:
linux-server: Para servidores Linux (comprobación PING activa)windows-server: Para servidores Windowsgeneric-host: Base genérica con valores mínimos
Registrar el nuevo fichero en nagios.cfg añadiendo su ruta:
sudo nano /usr/local/nagios/etc/nagios.cfgBusca la sección cfg_file=... y añade la línea:
cfg_file=/usr/local/nagios/etc/objects/hosts.cfgAlternativamente, puedes usar cfg_dir=/usr/local/nagios/etc/objects/ para que Nagios cargue automáticamente todos los .cfg del directorio, sin necesidad de registrar cada fichero individualmente.
Añadir Servicios a la Monitorización
ConfiguraciónLos servicios definen qué comprobación específica se ejecuta sobre un host. Cada servicio invoca un plugin concreto con sus parámetros de umbral.
Definir un servicio de Ping (el más básico — check_ping):
define service{
use generic-service ; Plantilla heredada
host_name Servidor_Windows ; El nombre del host definido arriba
service_description Estado del Ping ; Descripción del servicio en la UI
check_command check_ping!100.0,20%!500.0,60%
notifications_enabled 1
}
; Explicación de los argumentos de check_ping:
; check_ping!WARN_latencia,WARN_%perdida!CRIT_latencia,CRIT_%perdida
; 100ms y 20% pérdida → WARNING
; 500ms y 60% pérdida → CRITICALMonitorizar el uso de disco (check_disk):
define service{
use generic-service
host_name localhost
service_description Uso de Disco Raiz
check_command check_disk!20%!10%!/
; check_disk!WARN%!CRIT%!PARTICION
; WARNING si queda menos del 20% libre
; CRITICAL si queda menos del 10% libre
; En la partición raíz /
}Monitorizar un servidor web HTTP (check_http):
define service{
use generic-service
host_name Servidor_Windows
service_description Servicio HTTP
check_command check_http
notifications_enabled 1
}
; check_http comprueba que el servidor responde en el puerto 80
; Variantes con argumentos:
; check_http!-p 8080 ; Puerto diferente
; check_http!-S ; HTTPS (puerto 443)
; check_http!-u /health ; URL específicaMonitorizar la carga del sistema (check_load) en el propio servidor Nagios:
define service{
use generic-service
host_name localhost
service_description Carga del Sistema
check_command check_load!5.0,4.0,3.0!10.0,6.0,4.0
; check_load!WARN_1m,5m,15m!CRIT_1m,5m,15m
; Los 3 valores son la media de carga de 1min, 5min y 15min
}| Plugin | Sintaxis del check_command | Parámetros |
|---|---|---|
check_ping | check_ping!100,20%!500,60% | latencia(ms),pérdida(%) para WARN y CRIT |
check_http | check_http | Sin args: comprueba puerto 80 |
check_disk | check_disk!20%!10%!/ | % libre WARN, % libre CRIT, partición |
check_load | check_load!5,4,3!10,6,4 | carga media 1m,5m,15m para WARN y CRIT |
check_ssh | check_ssh | Sin args: comprueba puerto 22 |
check_tcp | check_tcp!3306 | Número de puerto a comprobar |
Comandos Esenciales de Nagios
Operación diariaDespués de modificar cualquier archivo de configuración, debes siempre verificar y recargar Nagios. Nunca apliques cambios sin verificar primero.
| Comando | Función | Cuándo usarlo |
|---|---|---|
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg |
Verifica la sintaxis de todos los archivos. Si hay errores, no continúes. | Siempre antes de reiniciar |
sudo systemctl restart nagios |
Reinicia el servicio Nagios aplicando los cambios de configuración | Después de la verificación exitosa |
sudo systemctl status nagios |
Verifica que el daemon se haya iniciado correctamente | Después del reinicio |
sudo systemctl reload nagios |
Recarga la configuración sin interrupción del servicio | Cambios menores sin reinicio completo |
sudo systemctl stop nagios |
Detiene el servicio completamente | Mantenimiento, actualizaciones |
sudo tail -f /usr/local/nagios/var/nagios.log |
Monitoriza el log de Nagios en tiempo real | Diagnóstico de problemas |
Flujo de Trabajo Estándar
Cada vez que quieras añadir o modificar hosts o servicios en Nagios, debes seguir este flujo sin saltarte ningún paso:
Añadir o editar archivos .cfg con los nuevos hosts/servicios.
Ejecutar la verificación — si hay errores, corrígelos antes de continuar:
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfgBusca la línea Total Errors: 0 al final. Si hay errores, indica la línea exacta del problema.
Ejecutar el reinicio solo si la verificación fue exitosa:
sudo systemctl restart nagios
sudo systemctl status nagiosRevisar el Current Status en la interfaz web. Los nuevos hosts/servicios pueden aparecer en estado PENDING hasta que se ejecute la primera comprobación (normalmente en 1-5 minutos).
El Siguiente Paso: Plugin NRPE
AvanzadoPara monitorizar recursos internos de un host remoto (RAM, CPU, procesos, disco en Windows/Linux), necesitas el Nagios Remote Plugin Executor (NRPE). Los plugins básicos como check_ping o check_http funcionan desde el servidor Nagios, pero no pueden ver el interior del sistema operativo sin un agente.
| Comprobación | Sin NRPE | Con NRPE |
|---|---|---|
| Conectividad PING | ✅ check_ping | — |
| Servicio HTTP | ✅ check_http | — |
| Puerto TCP abierto | ✅ check_tcp | — |
| Uso de CPU del host | ❌ Imposible | ✅ check_nrpe → check_load |
| Uso de RAM del host | ❌ Imposible | ✅ check_nrpe → check_mem |
| Espacio en disco del host | ❌ Imposible | ✅ check_nrpe → check_disk |
| Procesos en ejecución | ❌ Imposible | ✅ check_nrpe → check_procs |
Arquitectura NRPE
check_nrpe plugin
NSClient++ o nrpe daemon
Instalar NRPE plugin en el servidor Nagios (Ubuntu):
sudo apt install -y nagios-nrpe-pluginO compilarlo desde fuente para la versión más reciente:
cd /tmp
wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz
tar -zxvf nrpe-4.1.0.tar.gz
cd nrpe-4.1.0
sudo ./configure --enable-command-args
sudo make check_nrpe
sudo make install-pluginInstalar el agente NRPE en el host remoto Linux:
# En la máquina REMOTA que quieres monitorizar
sudo apt install -y nagios-nrpe-server nagios-pluginsPara Windows, instala NSClient++ que incluye soporte NRPE.
Configurar el agente NRPE en el host remoto Linux para aceptar conexiones del servidor Nagios:
# En la máquina remota
sudo nano /etc/nagios/nrpe.cfgAñade o modifica la línea allowed_hosts:
allowed_hosts=127.0.0.1,IP_SERVIDOR_NAGIOS
# Comandos disponibles para comprobación remota
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda1
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200Definir en Nagios un servicio que use NRPE para comprobar el disco remoto:
define command{
command_name check_nrpe
command_line $/check_nrpe -H $ -c $
}
define service{
use generic-service
host_name Servidor_Remote
service_description Disco Remoto /dev/sda1
check_command check_nrpe!check_hda1
}Grupos de Hosts y Contactos
AvanzadoLos grupos permiten organizar los hosts por función, visualizar su estado de forma agrupada en la interfaz, y definir quién recibe las alertas de cada grupo.
Definir un grupo de hosts en hostgroups.cfg:
define hostgroup{
hostgroup_name servidores-web ; Identificador interno
alias Servidores Web ; Nombre que aparece en la UI
members web01, web02, web03 ; Nombres de los hosts miembros
}Definir un contacto para recibir alertas en contacts.cfg:
define contact{
contact_name admin_web ; Identificador
alias Administrador Web ; Nombre descriptivo
email admin@empresa.com ; Email de notificaciones
use generic-contact ; Plantilla base
host_notification_commands notify-host-by-email
service_notification_commands notify-service-by-email
}Definir un grupo de contactos y asignarlo a un grupo de hosts:
define contactgroup{
contactgroup_name admins-web
alias Administradores de Servidores Web
members admin_web, admin_backup
}Configurar Notificaciones por Email
AvanzadoNagios puede enviar notificaciones por email cuando un host o servicio cambia de estado. Esto requiere que el servidor tenga un MTA (Mail Transfer Agent) configurado.
Instalar mailutils (MTA básico para el envío de emails):
sudo apt install -y mailutils postfixDurante la instalación de Postfix, selecciona "Internet Site" y usa el nombre de dominio del servidor.
Verificar que los comandos de notificación están en commands.cfg:
grep -A5 "notify-service-by-email" /usr/local/nagios/etc/objects/commands.cfgdefine command{
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "..." | /usr/bin/mail -s "** $ Service Alert: $/$ **" $
}Configurar el email del contacto nagiosadmin en contacts.cfg:
define contact{
contact_name nagiosadmin
use generic-contact
alias Nagios Admin
email tu@email.com ; ← Cambia esto
}Resolución de Problemas (Troubleshooting)
DiagnósticoLa mayoría de los problemas en Nagios Core tienen solución consultando los logs. El primer lugar a mirar siempre es /usr/local/nagios/var/nagios.log
| Problema | Causa más común | Solución |
|---|---|---|
| Apache muestra error 403 en /nagios | Módulo CGI no habilitado | sudo a2enmod cgi && sudo systemctl restart apache2 |
| Nagios no arranca tras editar config | Error de sintaxis en un .cfg | Ejecutar nagios -v y corregir el error indicado |
| Servicio en estado UNKNOWN | Plugin no encontrado o sin permisos | Verificar que existe en /usr/local/nagios/libexec/ y es ejecutable |
| Host siempre en PENDING | Nagios no recargó la nueva config | sudo systemctl restart nagios |
| No llegan emails de alerta | Postfix no configurado o email incorrecto | Comprobar /var/log/mail.log y la config del contacto |
| NRPE: CHECK_NRPE: Error | Firewall o allowed_hosts incorrecto | Verificar puerto 5666 abierto y IP en allowed_hosts |
| Interfaz web muy lenta | Demasiadas comprobaciones simultáneas | Ajustar max_concurrent_checks en nagios.cfg |
Comandos de diagnóstico útiles
# Ver el log de Nagios en tiempo real
sudo tail -f /usr/local/nagios/var/nagios.log
# Comprobar el log de Apache (errores de la interfaz web)
sudo tail -f /var/log/apache2/error.log
# Probar un plugin manualmente (fuera de Nagios)
/usr/local/nagios/libexec/check_ping -H 192.168.1.5 -w 100,20% -c 500,60%
# Verificar la sintaxis de configuración
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# Ver el estado del servicio Nagios
sudo systemctl status nagios
# Verificar que NRPE responde en un host remoto
/usr/local/nagios/libexec/check_nrpe -H 192.168.1.5
# Ver todos los procesos de Nagios activos
ps aux | grep nagiosResumen y Cheatsheet de Referencia
¡Laboratorio completado! Has instalado Nagios Core desde código fuente, configurado Apache para el acceso web, añadido hosts y servicios, y aprendido a gestionar el ciclo de operación diaria.
Rutas de archivos importantes
# Binario principal
/usr/local/nagios/bin/nagios
# Configuración principal
/usr/local/nagios/etc/nagios.cfg
# Directorio de objetos (hosts, servicios, contactos)
/usr/local/nagios/etc/objects/
# Plugins
/usr/local/nagios/libexec/
# Log principal
/usr/local/nagios/var/nagios.log
# Credenciales de acceso web
/usr/local/nagios/etc/htpasswd.users
# Pipe de comandos externos
/usr/local/nagios/var/rw/nagios.cmdComandos de operación diaria
──── VERIFICAR / INICIAR / PARAR ────────────────────────────────
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
sudo systemctl restart nagios
sudo systemctl status nagios
sudo systemctl stop nagios
──── FLUJO COMPLETO TRAS EDITAR CONFIGURACIÓN ───────────────────
# 1. Editar archivos .cfg
sudo nano /usr/local/nagios/etc/objects/hosts.cfg
# 2. Verificar
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# 3. Reiniciar (solo si Total Errors: 0)
sudo systemctl restart nagios
# 4. Revisar en la web: http://IP/nagios → Current Status
──── LOGS ───────────────────────────────────────────────────────
sudo tail -f /usr/local/nagios/var/nagios.log
sudo tail -f /var/log/apache2/error.log
──── PROBAR PLUGINS MANUALMENTE ─────────────────────────────────
/usr/local/nagios/libexec/check_ping -H IP -w 100,20% -c 500,60%
/usr/local/nagios/libexec/check_http -H IP
/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /Capacidades adquiridas
- ✓Instalar dependencias de compilación en Ubuntu 24.04
- ✓Crear usuarios y grupos de sistema para Nagios
- ✓Compilar e instalar Nagios Core desde código fuente
- ✓Compilar e instalar los plugins oficiales de Nagios
- ✓Configurar Apache con autenticación para la interfaz web
- ✓Acceder e interpretar la interfaz web de Nagios Core
- ✓Añadir hosts y servicios editando archivos de configuración
- ✓Aplicar el flujo verificar → reiniciar → revisar
- ✓Entender los estados OK/WARNING/CRITICAL/UNKNOWN
- ✓Preparar la instalación para monitorización avanzada con NRPE