19 abril, 2024

IsProto

Soluciones para Redes e Internet

que es nagios

¿Qué es Nagios? Es una aplicación muy completa para monitorear los servicios y procesos asociados a tu red. Permite el monitoreo de diversos servicios, tanto a nivel cliente como servidor, así como los puertos en donde se alojan los servicios de tu red.

¿Qué es Nagios?

Éste software es una aplicación que te permite el monitoreo de recursos, procesos, servicios de red, detección de problemas, etc. Es una herramienta robusta y de alto alcance, tal y como se describe en su sitio web: http://www.nagios.org.

Algunas de sus características principales son las siguientes:

  • Monitorear los servicios de red, por ejemplo: SMTP, POP3, HTTP, HTTPS, PING, NNTP, entre otros.
  • Monitoreo de los recursos de la computadora en general, por ejemplo, carga del procesador, uso de disco, de memoria, etc.
  • Permite la detección plug-in de dispositivos, así también muestra cuando un dispositivo o equipo de la red es inalcanzable.
  • Envío de notificaciones al presentarse un problema. La notificación puede ser registrada a través de un fichero o email.
  • Establecer manejadores de eventos para los servicios, con el objetivo de encontrar una solución.
  • Soporte de implementación de monitoreo redundante en los equipos, así como mostrar logs de éstos.
  • Mantener un historial de problemas, status del monitoreo de red, entre otras funcionalidades.

Componentes de Nagios

que es nagios

El servicio cuenta con varias partes que te permiten tener un monitoreo completo del sistema.

  • Tiene una amplia gamma de componentes (plugins) para permitirte personalizar tus reportes.
  • El daemon mantiene un servicio latente para verificar los servicios y sus puertos.
  • Cuenta con un CGI (Common Gateway Interface), el cual es un programa opcional que permite agregar una mejora a tu sistema de monitoreo a través de un cliente.

Anatomía de Nagios

Para enten der cómo funciona éste software, es importante mostrar cómo se encuentra organizado éste software, tanto es su configuración, así como sus tipos de objeto, para facilitarte su uso.

Archivo de configuración web

El archivo de configuración para la interfaz web se llama nagios.conf. Éste archivo contiene todas las directivas de configuración para iniciar el directorio de trabajo de la aplicación, el cual se activa al reiniciar el servidor web apache después de establecer la configuración.

La ubicación por defecto del archivo de configuración está en la ruta:

  • /etc/httpd/conf.d/nagios.conf (Para distribuciones basadas en Redhat o CentOS)
  • /etc/apache2/conf.d/nagios.conf (Para distribuciones tipo Debian o Ubuntu)

La configuración del archivo contiene directivas muy similares a las de apache. Una configuración predeterminada podría ser la siguiente:

ScriptAlias /nagios/cgi-bin "/usr/lib/nagios/cgi"
<Directory "/usr/lib/nagios/cgi">
        Options ExecCGI
        AllowOverride None
        Order allow,deny
        Allow from all
        AuthName "Acceso a Nagios"
        AuthType Basic
        AuthUserFile /etc/nagios/htpasswd.users
        Require valid-user
Alias /nagios "/usr/share/nagios"
<Directory "/usr/share/nagios">
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
        AuthName "Acceso a Nagios"
        AuthType Basic
        AuthUserFile /etc/nagios/htpasswd.users
        Require valid-user
</Directory>

Fichero de contraseñas

Como vimos en el archivo de configuración anterior, se requiere un archivo de contraseñas para autenticar al usuario. El archivo puede ser generado con el comando htpasswd de la siguiente forma:

htpasswd -c /etc/nagios/htpasswd.users admin

El cual nos solicitará introducir una nueva contraseña para el usuario nagadmin, la cuál será guardada en el archivo /etc/nagios/htpasswd.users. Si ya existe el fichero, omitimos escribir la opción -c.

Instalación de Nagios

que es nagios

Finalmente hemos llegado al punto de realizar las instalación del paquete. De acuerdo a nuestra distribución y versión del sistema operativo, la instrucción para llevar a cabo la instalación del paquete y sus dependencias es el siguiente:

Instalación en distribuciones Red Hat o Fedora

yum install nagios nagios-plugins nagios-plugins-nrpe nagios-devel

Instalación desde el código fuente

También es posible realizar la compilación e instalación directamente utilizando el release actual desde el sitio oficial. Lo descargamos utilizando wget o curl.

wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.5.tar.gz

Ahora descomprimimos el paquete tar.gz y vamos al directorio de trabajo.

tar xzf nagios-4.4.5.tar.gz

cd nagioscore-nagios-4.4.5/

Configuramos el paquete, al cual habilitamos el directorio del sitio httpd en donde se procesarán las instrucciones del cliente a través de la GUI, después compilamos con el conocido comando para Makefiles.

sudo ./configure –with-httpd-conf=/etc/apache2/sites-enabled

sudo make all

En éste momento instalamos ahora los grupos necesarios para el funcionamiento de nagios, en donde en el caso de Debian, Ubuntu o distribuciones similares, utilizamos www-data como el grupo, mientras que para Red Hat, Fedora o CentOS, utilizamos el usuario apache (o nginx).

sudo make install-groups-users

sudo usermod -a -G nagios www-data

Ahora procedemos a colocar los usuarios dentro de los directorios por default para que tanto el daemon, como el cliente puedan acceder a sus políticas de configuración. Ese es finalmente el objetivo del make install.

sudo make install

sudo make install-daemoninit

sudo make install-commandmode

sudo make install-config

sudo make install-webconf

Ahora activamos el módulo rewrite. En el caso de Debian o Ubuntu con Apache, utilizamos a2enmod para activar los módulos rewrite, cgi.

sudo a2enmod rewrite cgi

Por último reiniciamos el servidor web, para tener acceso al servicio de monitores a través de la ruta indicada en la configuración de Apache.

systemctl restart apache2

Archivo de configuración CGI

El archivo de configuración cgi.cfg contiene la configuración que debe tener el sistema para permitir el acceso a la información, comandos, configuración, procesos y servicios de Nagios, éste archivo lo puedes crear en /etc/nagios y editar con vim o con nano.

Un contenido estándar para el archivo cgi.cfg podría ser el mostrado a continuación:

# Uso de autenticación
use_authentication=1

# Acceso al sistema o proceso de información
authorized_for_system_information=nagadmin

# Acceso a la información de configuración
authorized_for_configuration_information=nagadmin

# Acceso al sistema o proceso de comandos
authorized_for_system_commands=nagadmin

# Acceso al host global y servicio de vista
authorized_for_all_services=nagadmin
authorized_for_all_hosts=nagadmin

# Acceso al host global y servicio de comandos
authorized_for_all_service_commands=nagadmin
authorized_for_all_host_commands=nagadmin

Como verás en éste archivo se manejan las autorizaciones para el servicio, en donde estamos proporcionando un acceso total al usuario “nagadmin” a todas las funcionalidades del servicio.

Archivo de configuración nagios.cfg

El archivo nagios.cfg contiene las directivas de configuración que se establecerán al servicio. Pueden configurarse en un solo archivo único, o a través de otros archivos derivados, por ejemplo:

# archivos de configuración
cfg_file=/etc/nagios/contactgroups.cfg
cfg_file=/etc/nagios/contacts.cfg
cfg_file=/etc/nagios/hostgroups.cfg
cfg_file=/etc/nagios/hosts.cfg
cfg_file=/etc/nagios/services.cfg
cfg_file=/etc/nagios/timeperiods.cfg

# opciones de comandos externas
check_external_commands=1

# comando externo para verificar intervalo
command_check_interval=1

Evidentemente cada archivo de configuración derivado debe ser creado con anterioridad, por ejemplo con el comando touch, así como darle el propietario y grupo con el comando chown;

touch /etc/nagios/[nombre_archivo].cfg

chown nagios:nagios /etc/nagios/[nombre_archivo].cfg

En forma recursiva para cada uno de los archivos especificados en el archivo de configuración.

Configuración de archivos adicionales

Adicionalmente se pueden configurar las siguientes propiedades del objeto:

  • Lapsos de tiempo.
  • Contactos y sus grupos.
  • Anfitriones y sus grupos.
  • Servicios ofrecidos.

Para personalizar cada uno de éstos servicios, o establecer una configuración diferente a la predeterminada, puedes consultar la guía en la wiki de Centos, configuración también aplicable a otros entornos y distribuciones de Linux.

Inicialización del servicio

Para iniciar el servicio, primero verificamos que la configuración esté correcta e inicializamos utilizando los comandos:

chkconfig nagios on
nagios -v nagios.cfg

Si no hay errores en la sintaxis de la configuración, podemos iniciar el servicio con systemctl:

systemctl start nagios

Con lo cual nuestro monitor queda iniciado. En éste momento el deamon se encuentra en ejecución y puedes empezar a monitorear tus procesos, servicios, red, etc.

Otros temas de seguridad recomendados

También te recomendamos aprender sobre los siguientes temas enfocados a la seguridad: