Configurar monitorización con Nagios3 en Debian Jessie

Instalar y configurar Nagios3 en Debian Jessie 8.2
Comparte con tus amigos










Enviar

Logotipo de Nagios, software de monitorización.Nagios es una herramienta de código libre enfocada a la monitorización automática y continúa del hardware y software de los sistemas que componen una red. Entre sus posibilidades de monitorización están hosts como servidores, equipos domésticos, switches, routers, impresoras… o servicios como SSH, SQL, HTTP, IMAP… pasando por el seguimiento de otros aspectos como el espacio en disco o la carga del sistema.

Además de ser multiplataforma, cuenta con plugins para ampliar la monitorización a otras plataformas y servicios, interfaz web, envío de notificaciones, log de eventos…

Otro de los paquetes de Nagios es NRPE, un paquete que es instalado y ejecutado en segundo plano en otros equipos para monitorizar métricas. Es el daemon que recibe las peticiones de ejecución de comandos mandadas por el plugin check_nrpe.

El escenario del que partimos es que el utilizaré durante todo el curso en el módulo Seguridad y Alta Disponibilidad de 2º ASIR. Se trata de, en un principio, tres máquinas nombradas con personajes de la Warner Bros virtualizadas en el cloud privado del IES Gonzalo Nazareno.

  • Piolin: Debian Jessie 8.2 / IP flotante: 172.22.203.47 / IP interna: 10.0.0.9
  • Silvestre: Ubuntu 14.04 / IP flotante: 172.22.203.48 / IP interna: 10.0.0.10
  • Taz: CentOS 7.1 / IP flotante: 172.22.203.49 / IP interna: 10.0.0.11
Esquema e información de los nodos de red.

Esquema e información de los hosts. Siendo piolin el equipo de monitoreo.

Instalación del servidor de monitorización Nagios3

Piolin será el equipo que monitorizará al resto de hosts de nuestra red, así pues, instalamos el paquete nagios3 con apt-get install nagios3.

Tras definir una contraseña para la administración de Nagios y comprobar que podemos acceder a su interfaz web mediante: http://IPpiolin/nagios3, hacemos una copia del fichero de configuración de los hosts. El fichero de configuración que viene creado por defecto es localhost_nagios2.cfg, ubicado en /etc/nagios3/conf.d.

Nuestro nuevo fichero tendrá por nombre nodos_cloud.cfg mientras que al anterior le cambiamos la extensión por .BKcfg. En el nuevo fichero, con privilegios de root, reemplazamos todas las referencias de localhost por piolin.

# A simple configuration file for monitoring the local host
# This can serve as an example for configuring other servers;
# Custom services specific to this host are added here, but services
# defined in nagios2-commom_services.cfg may also apply.
#

define host{
        use                     generic-host            ; Name of host template to use
        host_name               piolin
        alias                   piolin
        address                 127.0.0.1
        }

define host{
        use                     generic-host            ; Name of host template to use
        host_name               silvestre
        alias                   silvestre
        address                 10.0.0.10
        }

define host{
        use                     generic-host            ; Name of host template to use
        host_name               taz
        alias                   taz
        address                 10.0.0.11
        }

A continuación, reiniciamos el servicio con la instrucción: systemctl restart nagios3.service.

Instalación del plugin NRPE de Nagios

Como he comentado, NRPE corresponde a las siglas Nagios Remote Plugin Executor y es un paquete que recibe las instrucciones de check_nrpe.

Tanto en las máquinas piolin como silvestre la instalación la realizamos con: apt-get install nagios-nrpe-server.

En taz (CentOS 7.1), lo hacemos añadiendo un repositorio de Fedora con rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm e instalamos NRPE con la ejecución de yum install nrpe.x86_64.

Admitir la monitorización remota de piolin

En silvestre y en taz editamos el fichero /etc/nagios/nrpe.cfg y en la sección ALLOWED HOST ADDRESSES reemplazamos allowed_hosts=10.0.0.10 por allowed_host=127.0.0.1,10.0.0.9. También modificamos el parámetro dont_blame_nrpe cambiando su valor 0 por 1.

De esta manera permitimos el monitoreo a través de la dirección IP 10.0.0.9 y permitimos que se reciban argumentos en los comandos.

# ALLOWED HOST ADDRESSES
# This is an optional comma-delimited list of IP address or hostnames
# that are allowed to talk to the NRPE daemon. Network addresses with a bit mask
# (i.e. 192.168.1.0/24) are also supported. Hostname wildcards are not currently
# supported.
#
# Note: The daemon only does rudimentary checking of the client's IP
# address.  I would highly recommend adding entries in your /etc/hosts.allow
# file to allow only the specified host to connect to the port
# you are running this daemon on.
#
# NOTE: This option is ignored if NRPE is running under either inetd or xinetd
 
allowed_hosts=127.0.0.1,10.0.0.9
dont_blame_nrpe=1

Reiniciamos el servicio del plugin con service nagios-nrpe-server restart en silvestre y service nrpe restart en taz.

Configuración de la monitorización con Nagios3

Las configuraciones para la monitorización mediante Nagios3 se realizan en la máquina servidor, en este caso piolin. En él estableceremos la monitorización del servicio SSH, así como la carga de las máquinas silvestre y taz.

Para monitorizar el servicio SSH, debemos editar el fichero /etc/nagios3/conf.d/hostgroups_nagios2.cfg y, al final del archivo, modificar los miembros del grupo ssh-servers.

# A list of your ssh-accessible servers
define hostgroup {
        hostgroup_name  ssh-servers
        alias           SSH servers
        members         piolin, silvestre, taz
        }

En el fichero de configuración nodos_cloud.cfg tenemos la plantilla de configuración para la monitorización del espacio en disco, el número de usuarios conectados, el número de procesos o la carga del sistema.

En el directorio de Nagios podemos crear tantos ficheros de configuración como nos haga falta, pudiendo dividir cada fichero según el tipo o grupo de hosts que se monitoree. En vista a ello, crearemos un nuevo archivo llamado carga.cfg y cortaremos la parte del nodos_cloud.cfg en la que se define los distintos elementos a monitorizar. En cada host_name, donde pone piolin, añadiremos silvestre y taz de tal manera que el fichero quede así:

# Define a service to check the disk space of the root partition
# on the local machine.  Warning if < 20% free, critical if
# < 10% free space on partition.

define service{
        use                             generic-service         ; Name of service template to use
        host_name                       piolin, silvestre, taz
        service_description             Disk Space
        check_command                   check_all_disks!20%!10%
        }

# Define a service to check the number of currently logged in
# users on the local machine.  Warning if > 20 users, critical
# if > 50 users.

define service{
        use                             generic-service         ; Name of service template to use
        host_name                       piolin, silvestre, taz
        service_description             Current Users
        check_command                   check_users!20!50
        }

# Define a service to check the number of currently running procs
# on the local machine.  Warning if > 250 processes, critical if
# > 400 processes.

define service{
        use                             generic-service         ; Name of service template to use
        host_name                       piolin, silvestre, taz
        service_description             Total Processes
        check_command                   check_procs!250!400
        }

# Define a service to check the load on the local machine.

define service{
        use                             generic-service         ; Name of service template to use
        host_name                       piolin, silvestre, taz
        service_description             Current Load
        check_command                   check_load!5.0!4.0!3.0!10.0!6.0!4.0
        }

Si reiniciamos el servicio, en la página Services de la interfaz web de Nagios observaremos que se han añadido nuevos servicios para monitorear e información sobre estos.
Página de monitorización de servicios de Nagios.

Añadir un usuario para el acceso y visualización a través del panel de Nagios

Otro de los requisitos es añadir al usuario profesor, que ya está creado y configurado para su acceso al sistema, para que pueda acceder al panel web de Nagios. Para añadirlo ejecutamos la orden: htpasswd /etc/nagios3/htpasswd.user profesor.

De esta manera podría acceder a la interfaz web, pero no podría ver datos en ella.

Así pues, en el fichero /etc/nagios3/cgi.cfg agregamos el usuario con permisos de lectura añadiendo el usuario profesor en los campos authorized_for_all_services y authorized_for_all_hosts de la sección GLOBAL HOST/SERVICE VIEW ACCESS.

# GLOBAL HOST/SERVICE VIEW ACCESS
# These two options are comma-delimited lists of all usernames that
# can view information for all hosts and services that are being
# monitored.  By default, users can only view information
# for hosts or services that they are contacts for (unless you
# you choose to not use authorization). You may use an asterisk (*)
# to authorize any user who has authenticated to the web server.

authorized_for_all_services=nagiosadmin,profesor
authorized_for_all_hosts=nagiosadmin,profesor

Con la finalización de estos cambios en los ficheros de configuración, reiniciamos el servicio nagios nuevamente con la instrucción: systemctl restart nagios3.service.

Compartir es agradecer. Si te ha gustado... ¡compartélo!
Comparte con tus amigos










Enviar

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.