Le pedimos a la inteligencia artificial Gemini de Google que nos explique cómo instalar y configurar Nagios en Linux
Explicanos detalladamente cómo instalar y configurar Nagios en Linux¡Claro! Nagios es un potente sistema de monitorización de código abierto que te permite supervisar la infraestructura de TI, incluyendo servidores, servicios, aplicaciones y métricas de red. Recibirás alertas cuando algo va mal y tendrás una visión general del estado de tu entorno. Aquí te presento una guía detallada sobre cómo instalar y configurar Nagios en Linux (basado en distribuciones Debian/Ubuntu y CentOS/RHEL):
Consideraciones Previas:
Requisitos del Sistema: Un servidor Linux limpio con acceso sudo o root. Se recomienda una cantidad decente de recursos (CPU, RAM, disco) dependiendo de la cantidad de hosts y servicios que planeas monitorizar.
Servidor Web: Nagios necesita un servidor web para su interfaz gráfica. Apache o Nginx son comunes. Esta guía asume que instalaremos Apache.
Dirección IP Estática: Es altamente recomendable asignar una dirección IP estática a tu servidor Nagios.
Parte 1: Instalación de Nagios Core
En Debian/Ubuntu:
Instalar Dependencias:
Bash
sudo apt update
sudo apt install -y apache2 php libapache2-mod-php build-essential libgd-dev libperl-dev libssl-dev
Crear Usuario y Grupo Nagios:
Bash
sudo groupadd nagios
sudo useradd -g nagios nagios
Descargar Nagios Core: Ve a la página de descargas de Nagios Core en su sitio web oficial (nagios.org/downloads/) y copia el enlace de la última versión estable del archivo .tar.gz. Reemplaza VERSION con el número de versión actual.
Bash
cd /tmp
wget https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-VERSION/nagios-VERSION.tar.gz
tar zxf nagios-VERSION.tar.gz
cd nagios-VERSION
Configurar y Compilar Nagios Core:
Bash
./configure --with-nagios-group=nagios --with-nagios-user=nagios --with-httpd-user=www-data --with-php=/usr/bin/php
make all
sudo make install
sudo make install-daemoninit
sudo make install-commandmode
sudo make install-config
sudo make install-webconf
Configurar Permisos del Directorio de Comandos:
Bash
sudo usermod -a -G nagios www-data
Crear el Usuario de Administración Web de Nagios:
Bash
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Se te pedirá que ingreses y confirmes una contraseña para el usuario nagiosadmin.
Reiniciar Apache:
Bash
sudo systemctl restart apache2
En CentOS/RHEL:
Habilitar Repositorios Necesarios:
Bash
sudo yum install -y epel-release
sudo yum install -y httpd php gd gd-devel perl openssl-devel make gcc glibc glibc-common
Crear Usuario y Grupo Nagios:
Bash
sudo groupadd nagios
sudo useradd -g nagios nagios
Descargar Nagios Core: Ve a la página de descargas de Nagios Core en su sitio web oficial (nagios.org/downloads/) y copia el enlace de la última versión estable del archivo .tar.gz. Reemplaza VERSION con el número de versión actual.
Bash
cd /tmp wget https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-VERSION/nagios-VERSION.tar.gz
tar zxf nagios-VERSION.tar.gz
cd nagios-VERSION
Configurar y Compilar Nagios Core:
Bash
./configure --with-nagios-group=nagios --with-nagios-user=nagios --with-httpd-user=apache --with-php=/usr/bin/php
make all
sudo make install
sudo make install-daemoninit
sudo make install-commandmode
sudo make install-config
sudo make install-webconf
Configurar Permisos del Directorio de Comandos:
Bash
sudo usermod -a -G nagios apache
Crear el Usuario de Administración Web de Nagios:
Bash
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Se te pedirá que ingreses y confirmes una contraseña para el usuario nagiosadmin.
Configurar SELinux (si está habilitado):
Bash
sudo chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin
sudo chcon -R -t httpd_sys_content_t /usr/local/nagios/etc
sudo chcon -R -t httpd_sys_content_t /usr/local/nagios/share
sudo setsebool -P httpd_enable_cgi 1
Configurar el Firewall:
Bash
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
Iniciar y Habilitar Apache:
Bash
sudo systemctl start httpd
sudo systemctl enable httpd
Parte 2: Instalación de Nagios Plugins
Los plugins son scripts (en Perl, Python, Shell, etc.) que Nagios utiliza para verificar el estado de los hosts y servicios.
En Debian/Ubuntu y CentOS/RHEL:
Instalar Dependencias para Compilar Plugins:
Bash
sudo apt update
sudo apt install -y build-essential libssl-dev
sudo apt install -y libnet-snmp-perl gettext
# Para CentOS/RHEL:
# sudo yum install -y autoconf automake gcc glibc libtool make net-snmp net-snmp-utils openssl-devel
Descargar Nagios Plugins: Ve a la página de descargas de Nagios Plugins en su sitio web oficial (nagios-plugins.org/downloads/) y copia el enlace de la última versión estable del archivo .tar.gz. Reemplaza VERSION con el número de versión actual.
Bash
cd /tmp
wget https://github.com/nagios-plugins/nagios-plugins/releases/download/release-VERSION/nagios-plugins-VERSION.tar.gz
tar zxf nagios-plugins-VERSION.tar.gz
cd nagios-plugins-VERSION
Configurar y Compilar Nagios Plugins:
Bash
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
sudo make install
Parte 3: Configuración de Nagios
Los archivos de configuración de Nagios se encuentran en /usr/local/nagios/etc/. La estructura principal es la siguiente:
nagios.cfg : Archivo de configuración principal de Nagios.
objects/: Directorio que contiene archivos de definición para hosts, servicios, comandos, contactos, etc.
Configuración Básica:
1 Editar nagios.cfg:
Bash
sudo nano /usr/local/nagios/etc/nagios.cfg
Asegúrate de que las siguientes líneas estén descomentadas y apunten a las ubicaciones correctas:
cfg_dir=/usr/local/nagios/etc/objects
command_file=/usr/local/nagios/var/rw/nagios.cmd
2 Crear Archivos de Definición en objects/:
Puedes crear varios archivos .cfg dentro del directorio objects/ para organizar tu configuración. Algunos archivos comunes son:
commands.cfg: Define los comandos que Nagios utilizará para verificar hosts y servicios.
contacts.cfg: Define los contactos que recibirán notificaciones.
hosts.cfg: Define los hosts que vas a monitorizar.
services.cfg: Define los servicios que vas a monitorizar en cada host.
templates.cfg: Define plantillas para simplificar la configuración.
Ejemplo: commands.cfg (ya debería existir con comandos predefinidos):
Code snippet
define command {
command_name check_ping
command_line /usr/local/nagios/libexec/check_ping -H '$HOSTADDRESS$' -w '$ARG1$,80%' -c '$ARG2$,100%' -p 5
}
define command {
command_name check_http
command_line /usr/local/nagios/libexec/check_http -I '$HOSTADDRESS$' $ARG1$
}
Ejemplo: contacts.cfg:
Code snippet
define contact {
contact_name nagiosadmin
alias Nagios Admin
email you@example.com
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r,f,s
host_notification_options d,u,r,f,s
}
define contactgroup {
contactgroup_name admins
alias Nagios Administrators
members nagiosadmin
}
Ejemplo: hosts.cfg:
Code snippet
define host {
use generic-host ; Hereda las opciones de la plantilla generic-host
host_name localhost
alias Servidor Nagios
address 127.0.0.1
}
define host {
use generic-host
host_name servidor-remoto
alias Servidor Remoto
address 192.168.1.100
}
Ejemplo: services.cfg:
Code snippet
define service {
use generic-service ; Hereda las opciones de la plantilla generic-service
host_name localhost
service_description PING
check_command check_ping!5.0,80%!10.0,100%
}
define service {
use generic-service
host_name localhost
service_description HTTP
check_command check_http
}
define service {
use generic-service
host_name servidor-remoto
service_description PING
check_command check_ping!3.0,80%!5.0,100%
}
define service {
use generic-service
host_name servidor-remoto
service_description SSH
check_command check_ssh
}
Ejemplo: templates.cfg (ya debería existir con plantillas predefinidas):
Code snippet
define host {
name generic-host
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
process_perf_data 1
retain_status_information 1
retain_output 1
register 0 ; NO registrar esta definición - es una plantilla!
}
define service {
name generic-service
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
process_perf_data 0
retain_status_information 1
retain_output 1
register 0 ; NO registrar esta definición - es una plantilla!
}
Verificar la Configuración de Nagios:
Bash
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Revisa la salida en busca de errores o advertencias.
Parte 4: Iniciar y Habilitar Nagios
Bash
sudo systemctl start nagios
sudo systemctl enable nagios
sudo systemctl status nagios
Parte 5: Acceder a la Interfaz Web de Nagios
Abre un navegador web.
Introduce la dirección IP o el nombre de dominio de tu servidor Nagios seguido de /nagios:
Ejemplo: http://tu_servidor_ip/nagios o http://tu_dominio/nagios
Se te pedirá un nombre de usuario y contraseña. Utiliza nagiosadmin como nombre de usuario y la contraseña que configuraste con htpasswd.
Deberías ver la interfaz web de Nagios, donde podrás ver el estado de los hosts y servicios que has configurado.
Parte 6: Configuración Adicional
Notificaciones: Configura las notificaciones por correo electrónico o por otros medios editando el archivo contacts.cfg y asegurándote de que tu servidor Nagios pueda enviar correos electrónicos.
Monitorización Remota: Para monitorizar hosts remotos, asegúrate de que tengan los agentes o servicios necesarios (por ejemplo, SNMP, NRPE) instalados y configurados, y define los hosts y servicios correspondientes en los archivos de configuración de Nagios.
Personalización de la Interfaz Web: Puedes personalizar la apariencia de la interfaz web de Nagios modificando los archivos CSS y HTML en /usr/local/nagios/share/.
Resolución de Problemas Comunes:
Interfaz Web No Accesible: Verifica que Apache esté funcionando y que el archivo de configuración de Nagios para Apache (/etc/apache2/conf-enabled/nagios.conf o similar) esté correctamente configurado. Revisa los logs de Apache.
Errores de Configuración de Nagios: Vuelve a ejecutar el comando de verificación de la configuración (nagios -v) y corrige cualquier error que aparezca.
Problemas con los Plugins: Asegúrate de que los plugins estén instalados en la ubicación correcta (/usr/local/nagios/libexec/) y que los comandos en commands.cfg apunten a ellos correctamente. Verifica los permisos de ejecución de los plugins.
No se Reciben Notificaciones: Verifica la configuración del correo electrónico en contacts.cfg y asegúrate de que tu servidor Nagios pueda enviar correos. Revisa los logs del servidor de correo.
Estado Incorrecto de Hosts/Servicios: Verifica que los plugins estén funcionando correctamente en los hosts monitorizados (puedes ejecutarlos manualmente desde la línea de comandos para probarlos). Asegúrate de que la configuración de los servicios en services.cfg sea correcta.
Esta es una guía detallada para instalar y configurar Nagios Core. Recuerda que Nagios es muy flexible y tiene muchas opciones de configuración. Consulta la documentación oficial de Nagios para obtener información más avanzada y específica. ¡Mucha suerte con tu monitorización!