Práctica 4.9: Implantación de un sistema de monitorización con Zabbix, PRTG, … Introducción Zabbix es un software de monitorización de código abierto para redes y aplicaciones. Ofrece monitorización en tiempo real de miles de métricas recogidas de servidores, equipos virtuales, dispositivos de red y aplicaciones web. Zabbix usa varias opciones para recoger métricas, incluyendo la monitorización sin agente de los servicios del usuario y de la arquitectura cliente-servidor. Para recoger métricas del servidor, utiliza un agente pequeño en el cliente monitorizado para recopilar datos y enviarlos al servidor Zabbix. Zabbix admite la comunicación cifrada entre el servidor y los clientes conectados, de forma que sus datos están protegidos mientras recorren redes inseguras. El servidor Zabbix almacena sus datos en una base de datos relacional alimentada con MySQL o PostgreSQL. También puede almacenar datos históricos en bases de datos NoSQL como Elasticsearch. En este tutorial, configurará Zabbix en dos equipos Ubuntu 20.04. Uno será configurado como el servidor Zabbix y el otro como un cliente que monitorizará. El servidor Zabbix usará una base de datos MySQL para registrar los datos de monitorización y utilizará Apache para presentar la interfaz web. Zabbix está disponible en el administrador de paquetes de Ubuntu, pero está obsoleto, de forma que utilizaremos el repositorio oficial de Zabbix para instalar la última versión estable. # wget https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix-release/zabbix-r elease_5.2-1+ubuntu20.04_all.deb # dpkg -i zabbix-release_5.2-1+ubuntu20.04_all.deb # apt update Instalamos el servidor, la interfaz y el agente de Zabbix # apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent Ahora instalamos mysql # apt install mysql-server Realizamos la configuración de seguridad inicial # mysql_secure_installation Ahora creamos la base de datos inicial # mysql -uroot -p mysql> mysql> mysql> mysql> create database zabbix character set utf8mb4 collate utf8_bin; create user zabbix@localhost identified by ‘password’; grant all privileges on zabbix.* to zabbix@localhost; quit; Ahora importamos el esquema y los datos iniciales que se encuentran en /usr/share/doc/ # zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix Y configuramos la base de datos para el servidor Zabbix Editamos el archive /etc/Zabbix/Zabbix_server.conf y configuramos los datos de conexión. El siguiente paso será iniciar el agente y el servidor de Zabbix y los configuramos para que se inicien con el Sistema. # systemctl restart zabbix-server zabbix-agent apache2 # systemctl enable zabbix-server zabbix-agent apache2 Ahora modificamos el fichero php.ini de apache y fijamos la zona en Europe/Madrid # nano /etc/php/7.4/apache2/php.ini Y reiniciamos apache Ahora pasamos a realizar el asistente de configuración mediante un entorno web. Abrimos un explorador web e introducimos la dirección ip del servidor seguido de /zabbix Para finalizar nos aparecerá la pantalla de acceso. El usuario es “Admin” y la contraseña es “zabbix”. Nos aparecerá la pantalla principal del dashboard. En caso de que nos aparezca esta otra pantalla… Tendremos que añadir el lenguaje “en_US” a través de los siguientes pasos: Para comprobar que lenguajes tenemos habilitados: # root@Zabbix:~# locale -a Editamos el fichero locale-gen y descomentamos el lenguaje “en_US.UTF-8 UTF-8”: Para generar nuevamente los lenguajes disponibles: #locale-gen Y por último reiniciamos los servicios: # systemctl restart zabbix-server zabbix-agent apache2 Añadir usuarios y grupos al sistema Si queremos crear usuarios para que puedan monitorizar los dispositivos nos dirigimos a “Administration”🡪”Users” También podemos añadir grupos y de esta manera tener clasificados los usuarios y asignarles permisos según al grupo al que pertenezcan. Por ejemplo, podemos crear el grupo “Operadores” y darle permisos de solo lectura a todos los objetos monitorizados. Y ahora creamos un usuario que pertenezca al grupo. En la pestaña “Media” podemos asignarle un método de notificación. En nuestro caso crearemos uno de tipo “Email”. Y en la pestaña “Permissions” le asignamos el rol de usuario. De esta manera si iniciamos sesión con el nuevo usuario, podremos ver la sección de monitorización pero no podremos realizar modificaciones en la configuración de Zabbix. Añadir host a Zabbix En este apartado veremos como añadir un nuevo host a Zabbix. En Zabbix, un host es una entidad física o virtual que queremos monitorizar. Nos dirigiremos a “Configuration”🡪”Hosts” para crear un nuevo host Podemos ver que por defecto ya tenemos configurado un host. Se trata del propio servidor Zabbix y vemos que en disponibilidad tiene activado el agente Zabbix de entre todas las posibilidades de monitorización. Podemos encender una máquina virtual y configurarla en Zabbix para monitorizar. A continuación, se muestra como monitorizar un firewall pfsense, una máquina Windows y un servidor Linux. PFSENSE Para monitorizar pfsense vamos a instalar el agente que viene preparado como paquete en el firewall. Instalaremos el paquete zabbix-agent52 Ahora vemos que nos aparece una nueva opción Configuramos los parámetros necesarios y activamos el servicio. Dentro de Zabbix, en el apartado hosts configuramos la conexión. Como grupo seleccionamos Templates/Operating systems Y en templates seleccionamos FreeBSD Máquina Windows Ahora procedemos a configurar el host para la máquina de windows7. Desde la página de zabbix descargamos el agente e instalamos. Máquina Linux Para monitorizar una máquina con Linux podemos instalar el cliente correspondiente. Descargamos el paquete debian: https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.2-1%2Bub untu20.04_all.deb wget https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.2-1%2Bub untu20.04_all.deb Instalamos dpkg -i zabbix-release_5.2-1+ubuntu20.04_all.deb Actualizamos # apt update Instalamos # apt install zabbix-agent En este caso vamos a utilizar claves precompartidas (PSK) para proteger la conexión entre el servidor y el agente. Primero generamos una PSK: # sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk" El código generado lo utilizaremos en la configuración Ahora editamos el fichero de configuración del agente para especificar los datos de conexión. # nano /etc/zabbix/zabbix_agentd.conf Cambiamos las variables Server y ServerActive poniendo la dirección ip del servidor. En la variable Hostname ponemos el nombre de nuestro hosts Ubuntu. A continuación, buscanis la sección que configura la conexión segura con el servidor Zabbix y habilitamos el soporte con clave precompartida. Buscamos la sección TLSConnect, que tiene el siguiente aspecto: Y añadimos esta línea para configurar el soporte de clave precompartida: TLSConnect=psk Luego, localizamos la sección TLSAccept, que tiene el siguiente aspecto: Y añadimos la siguiente línea al final de la sección TLSAccept=psk Ahora, localizamos la sección TLSPSKIdentity, que tiene el siguiente aspecto: Y elegimos un nombre único para identificar su clave precompartida añadiendo esta línea: TLSPSKIdentity=PSK 001 Usaremos esto como el PSK ID cuando añadamos su host a través de la interfaz web de Zabbix. A continuación, establecemos la opción que apunta a su clave precompartida creada previamente. Buscamos la opción TLSPSKFile: Y seleccionamos el fichero que tiene la clave precompartida: TLSPSKFile=/etc/zabbix/zabbix_agentd.psk Guardamos el archivo y lo cerramos, seguidamente reiniciamos el agente y lo activamos en el sistema. # systemctl restart zabbix-agent # systemctl enable zabbix-agent Ahora añadimos el nuevo host en el servidor Zabbix. Grabamos y veremos el nuevo host en la lista. Esperamos un minuto y volvemos a cargar la página para ver etiquetas verdes que indican que todo funciona bien y la conexión está cifrada. Si ahora nos vamos al apartado “Monitoring” podemos ver el estado de monitorización de las máquinas. Si ahora seleccionamos un host podemos ver los valores de los sensores monitorizados. Por ejemplo, vemos los últimos datos de la máquina windows7 Si ahora apagamos las máquinas y esperamos el tiempo necesario para que salten los disparadores de las alarmas veremos el resultado en el dashboard Configurar notificaciones por correo electrónico Zabbix admite automáticamente muchos tipos de notificaciones: correo electrónico, OTRS, Slack, Telegram, SMS, etc. Como ejemplo, este tutorial configurará notificaciones para el tipo de medio Correo electrónico. Hacemos clic en Administración, y a continuación en Tipos de medio en la barra de navegación izquierda. Veremos la lista de todos los tipos de medios. Existen dos opciones preconfiguradas para correos electrónicos: para la notificación de texto sin formato y para las notificaciones HTML. En este tutorial, usará la notificación de texto sin formato. Hacemos clic en Correo electrónico. Configuramos los parámetros de conexión a una de nuestras cuentas de email. En la pestaña Plantillas de mensaje, podemos ver la lista de mensajes predefinidos para varios tipos de notificaciones. Finalmente, hacemos clic en el botón Actualizar en la parte inferior del formulario para actualizar los parámetros del correo electrónico. Ahora podemos probar el envío de notificaciones. Para hacer esto, hacemos clic en el enlace subrayado Prueba en la línea correspondiente. Ahora vamos a habilitar las notificaciones. Hacemos clic en la pestaña Configuración y a continuación en Acciones en la barra de navegación izquierda. Veremos una acción preconfigurada, que es responsable de enviar notificaciones a todos los administradores Zabbix. Podemos revisar y cambiar los ajustes haciendo clic en su nombre. A efectos de este tutorial, utilizaremos esta acción para crearnos una nueva para el grupo de usuarios de operadores. Comprobamos que esté activa la acción. Ahora está listo para recibir alertas. En el siguiente paso, generará una para probar la configuración de notificaciones. Por ejemplo, parar el servidor con el agente instalado “UbuntuJ”.