Busqueda sobre Linux y software libre

Noticias sobre linux y software libre - Google 

Cómo instalar y configurar Nagios en Linux

 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!

Ads by CJ - Linux Foundation

Share This