Subido por gontranpsfer

Práctica 5.4 Implantación de unsistema de monitorización (1)

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”.