Zabbix: monitorización de tu infraestructura – instalación y configuración con Docker

En este tutorial, explicaré cómo configurar Zabbix con Docker para monitorear su servidor e infraestructura de red.

Para los que me siguen habitualmente, hace tiempo que soy fan de PRTG por su «simplicidad» pero que tiene ciertos límites en comparación con Zabbix. Volveré a ello en un artículo explicando por qué hoy prefiero Zabbix.

Presentamos Zabbix

Si no conoces Zabbix, te daré una presentación rápida, también puedes leer la página Wikipedia.

Zabbix es una utilidad de monitoreo de redes y sistemas de código abierto (servidores, aplicaciones, bases de datos, etc.). Zabbix funciona en un entorno Linux, se puede instalar directamente en Linux o en un contenedor usando Docker.

Zabbix se compone de varios elementos:

  • El servidor Zabbix que es el servicio de monitoreo, está publicado en el puerto 10051, se encarga de interrogar equipos, recopilar y procesar datos.
  • La base de datos donde se almacena la información, es posible utilizar MySQL/MariaDB, PostgreSQL o incluso Oracle.
  • La interfaz de usuario, que es una interfaz gráfica escrita en PHP, es posible utilizar diferentes servidores web (Apache2, Nginx)
  • También hay un agente Java para monitorear Jvms.
  • Proxy Zabbix: que es un componente opcional, que se puede utilizar en sitios remotos para centralizar la supervisión por parte del mismo o en grandes infraestructuras para distribuir la carga.

Para monitorear dispositivos, Zabbix admite varios métodos:

  • Agente: es posible instalar un agente en los servidores (Windows/Linux) para recopilar los datos y luego enviarlos a los servidores o proxy, existen dos versiones del agente, una versión escrita en C y la otra en Go (Agente Zabbix 2). https://www.zabbix.com/documentation/current/en/manual/appendix/agent_comparison Los agentes también tienen dos métodos de operación (activo y pasivo). En pocas palabras, en modo pasivo (modo predeterminado), es el servidor Zabbix (o el proxy) el que contactará al agente y le pedirá las métricas, en modo activo, el agente recupera su configuración del servidor Zabbix (o proxy) y luego envía los datos a los servidores.
  • SNMP: como todas las herramientas de monitoreo, Zabbix admite el protocolo SNMP.
  • IPMI : que es un protocolo estándar para la supervisión de elementos físicos como Idrac/Ilo.

Prerrequisitos

Como dije en la introducción, vamos a usar Docker para «instalar» Zabbix, por lo que necesitará un servidor Linux (para mí, Ubuntu) con Docker y Docker Compose instalados.

Si está utilizando Ubuntu, aquí hay un script para instalar Docker y Docker Compose:

Instalación de Zabbix con docker-compose

Para la instalación de Zabbix con Docker, usaremos un archivo docker-compose.yml para configurar Zabbix diferentes:

  • El servidor Zabbix
  • La base de datos (MariaDB)
  • La interfaz web
  • Un agente de monitoreo para el servidor Zabbix.

Para ponértelo más fácil, he creado un repositorio con los archivos necesarios que puedes encontrar aquí : https://git.rdr-it.io/docker/zabbix.

En su servidor creó una carpeta, que recibirá una copia de los archivos del repositorio y los datos de Zabbix.

En mi servidor, usaré la carpeta /containers/zabbix.

Una vez en su carpeta, ingrese el siguiente comando para clonar el repositorio:

sudo git clone https://git.rdr-it.io/docker/zabbix.git .

Si desplegamos el contenido, tenemos los archivos:

Tenemos el archivo docker-compose.yml, que contiene las definiciones de los diferentes contenedores.

Antes de recuperar las imágenes e iniciarlas, te aconsejo que modifiques las contraseñas de la base de datos MariaDB.

Vaya a la carpeta env_vars que contiene los distintos archivos de configuración.

cd env_vars

Como mínimo, edite los archivos .MYSQL_PASSWORD y .MYSQL_ROOT_PASSWORD, cambie a una contraseña personalizada.

Suba un nivel en las carpetas para volver donde está el archivo docker-compose.yml.

Ahora podremos descargar las imágenes, antes de invitarlo a leer el archivo docker-compose.yml del cual aquí hay una descripción general:

En la captura de pantalla, podemos ver la configuración del contenedor del servidor Zabbix y una vista previa del contenedor que administra la GUI.

Por cierto, vemos que el servidor está publicado en el puerto 10051 y que el servidor web en el puerto 8080.

Dependiendo de sus necesidades, edite el archivo.

Aquí vamos, ya podemos descargar las diferentes imágenes, para ello ingresa el siguiente comando:

sudo docker-compose pull
Download Zabbix image container

Espere mientras se descargan las imágenes.

Ahora podremos lanzar los contenedores para iniciar Zabbix.

Para el primer arranque te aconsejo no desligar la ejecución de los contenedores para tener la devolución en la terminal, para eso arrancamos los contenedores sin la opción -d.

Introduzca el siguiente comando:

sudo docker-compose up

Espera mientras se inician las diferentes imágenes y la configuración «automática» de Zabbix incluyendo la creación de la base de datos.

Espera 5 minutos…

Cuando en la terminal tienes a cambio varias líneas con curl/7.80.0 podemos considerar que todo está bien.

La mejor manera de averiguar si todo funciona ahora es intentar ir a Zabbix desde un navegador.

Desde un navegador de Internet, ingrese la dirección http://ip_server_zabbix:8080, si llega a la página de autenticación de Zabbix, ¡todo está bien!

Zabbix login

Felicitaciones, ha implementado Zabbix, ¡pero es solo el comienzo!.

Primer paso con Zabbix

Ahora que nuestro servidor Zabbix está listo, descubriremos su interfaz y comenzaremos a manipularlo, incluida la configuración del agente que permite monitorear el propio servidor Zabbix.

Para conectarnos a Zabbix, comenzaremos con la cuenta predeterminada cuyo nombre de usuario es Admin 1 y contraseña zabbix 2, una vez ingresadas las credenciales, haga clic en Iniciar sesión 3.

Una vez conectado, llegamos a la página con un tablero vacío (Dashboard) por el momento. Este tablero le permite ver de un vistazo los diferentes problemas, si los hay.

Zabbix Dashboard

Como puede ver, la interfaz es «bastante simple», en la parte izquierda tiene un menú de navegación que permite acceder a todas las características y configuración de Zabbix, veremos en este tutorial algunos elementos y otros se tratarán en otros tutoriales. .

Hay varios paneles disponibles de forma predeterminada, haga clic en Todos los paneles 1 que se encuentra en la ruta de navegación.

Llegamos a la lista de paneles disponibles, por defecto hay 3, haga clic en Zabbix server health 1.

Llegamos al panel de control de salud del servidor Zabbix

Zabbix server health

¡Por el momento, este está incompleto, porque el agente no está configurado correctamente!

Desde el menú de navegación en la parte de Monitoreo, haga clic en Hosts 1.

En esta página se muestran todos los equipos que son supervisados ​​por Zabbix, es desde esta lista que se puede acceder a los diferentes datos (métricas) de la supervisión y acceder a las gráficas y los diferentes dashboards de los equipos. Como se puede ver a continuación, el servidor Zabbix es rojo 1.

Vamos a modificar la configuración del host (agente), desde el menú de navegación haga clic en Configuración 1 luego en Hosts 2.

Llegamos a una nueva página, que se parece mucho a la anterior, aquí también encontramos todos los equipos supervisados ​​por Zabbix, con la diferencia que desde esta, configuramos los equipos (Nombre, direcciones IP, modelo.. .) , encontramos nuestro servidor Zabbix, pulsamos sobre él para acceder a la configuración.

Zabbix hosts list - Configuration

Se abre una ventana «modal» con la configuración del host, el problema aquí es la dirección IP del agente que está en 127.0.0.1, como recordatorio estamos en contenedores, y la dirección 127.0.0.1 corresponde en este caso a el contenedor de la imagen del servidor, para corregir este problema, es necesario poner el nombre del contenedor del agente.

El nombre del contenedor del agente Zabbix se puede encontrar en el archivo docker-compose.yml, en la captura de pantalla a continuación, vemos que el nombre es zabbix-agent y tiene alias.

Ingrese el nombre DNS del agente 1 y seleccione DNS 2 y haga clic en el botón Actualizar 3.

Podemos ver que se modifica la configuración de la interfaz del agente, por el momento el agente sigue sin estar disponible.

Espere 5 minutos, normalmente el host del servidor Zabbix debería estar disponible como en la siguiente captura de pantalla:

En la parte de Monitoreo, también es bueno:

Si volvemos al salpicadero, debería haber evolucionado con más información en cuanto a gráficos.

Esta manipulación normalmente debería comenzar a familiarizarlo con Zabbix.

Monitoree servidores Windows y Linux con el agente Zabbix

Ahora veremos cómo monitorear servidores Windows y Linux con el agente Zabbix 2.

En este tutorial usaré el agente 2, que es una versión escrita en Go que ofrece más posibilidades

También configuraré los agentes en modo activo (más sobre por qué más adelante).

En esta parte primero veremos la instalación del agente en Ubuntu y luego en Windows, una vez instalado el agente veremos como agregar los hosts en Zabbix, esta parte es igual para Linux o Windows, es necesario elige el modelo adecuado.

Instalación y configuración del agente Zabbix en Ubuntu

Para instalar el agente en Ubuntu / Debian, primero debe descargar un paquete (deb) que agregará el repositorio a la máquina y luego realizará una instalación «clásica» del paquete.

Para Ubuntu encontrará el paquete aquí : https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/

Copie el enlace del paquete correspondiente a su distribución y su versión, haga clic derecho en el enlace y luego copie el enlace.

En la terminal de su máquina, ingrese el siguiente comando para descargar el paquete:

wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-1%2Bubuntu20.04_all.deb

Una vez descargado, instale el paquete:

sudo dpkg -i zabbix-release_6.0-1+ubuntu20.04_all.deb

Actualizar lista de paquetes:

sudo apt update

En la consola, debería ver consultar el repositorio de Zabbix.

Ahora instalaremos el agente 2 de Zabbix:

sudo apt install zabbix-agent2 -y

Ahora que el agente está instalado, se debe configurar, para ello se debe editar el archivo/etc/zabbix/zabbix_agent2.conf

sudo nano /etc/zabbix/zabbix_agent2.conf

Edite los siguientes parámetros:

Server=127.0.0.1

Reemplace la dirección IP con la dirección IP del servidor Zabbix o su nombre DNS.

ServerActive=127.0.0.1

Reemplace la dirección IP con la dirección IP del servidor Zabbix o su nombre DNS.

Hostname=Zabbix server

Reemplace el servidor Zabbix con el nombre del dispositivo (nombre del servidor), esto se usará para configurar el host en Zabbix.

Los cambios realizados, guarde el archivo.

Habilitar servicio de agente:

sudo systemctl enable zabbix-agent2

Termine iniciando el servicio:

sudo systemctl start zabbix-agent2

El agente está instalado.

Puede verificar el estado del agente usando el siguiente comando:

sudo systemctl status zabbix-agent2

Instalación y configuración del agente Zabbix en Windows

Descargue el agente Zabbix para Windows en esta dirección : https://www.zabbix.com/fr/download_agents

Para este tutorial, continuaré con la versión 2 del agente.

Ejecute el archivo de descarga.

Cuando se inicie el asistente, haga clic en Siguiente 1.

Acepte la licencia 1 y haga clic en Siguiente 2.

Ingrese el nombre de host 1> para enlazar con Zabbix, luego ingrese el nombre DNS o IP del servidor Zabbix 2 y haga clic en Siguiente 3.

Al personalizar la instalación, haga clic en Siguiente 1.

Confirme la instalación haciendo clic en el botón Instalar 1.

Espere mientras instala…

Cuando se complete la instalación, cierre el asistente haciendo clic en Finalizar 1.

Si necesita modificar la configuración del agente, debe editar el archivo: zabbix_agent2.conf ubicado en la carpeta: C:\Program Files\Zabbix Agent 2

Para que los cambios surtan efecto, debe reiniciar el servicio de Windows: Restart-Service ‘Zabbix Agent 2’

Agregar servidor en Zabbix

Ahora que hemos instalado los agentes de Zabbix, veremos cómo agregarlos al servidor para obtener información de monitoreo.

Regrese a la interfaz web de Zabbix.

En el menú de navegación, expanda Configuración 1 y haga clic en Hosts 2.

En la lista de hosts, haga clic en el botón Crear host 1, que se encuentra en la parte superior derecha.

Ingrese el nombre del host 1 como se define en el archivo de configuración, seleccione la(s) plantilla(s) 2 que determinarán los elementos a monitorear, seleccione al menos un grupo 3 y haga clic en Agregue 4.

Seleccione cómo se supervisará el equipo, aquí por el agente, haga clic en Agente 1.

Ingrese la dirección IP de la computadora 1 y termine haciendo clic en el botón Agregar 2 para agregar el host.

Se agregan anfitriones:

Algunas explicaciones para entender los diferentes elementos:

  • Items : corresponde a los diferentes elementos supervisados ​​(cpu, ram, tarjeta de red, servicios…), el número varía de un servidor a otro en función de los elementos
  • Triggers : estos son los desencadenantes de los diversos «problemas» que están vinculados a los elementos (poco espacio en disco, paradas de servicio…).
  • Graph :gráfico vinculado al elemento
  • Discovery : contiene diferentes tareas que le permitirán descubrir los elementos a monitorear (descubrimiento de servicios en hosts, descubrimiento de discos duros, etc.)

La misma lista de host después de unos minutos, podemos ver que la cantidad de elementos de host de ubuntu-host aumentó a 388.

Ahora ya sabe cómo monitorear servidores con el agente Zabbix.

Para agregar elementos, busque en las plantillas que ofrecen muchas cosas por defecto como: IIS, Nginx, Docker …

Ver monitoreo de host

Ahora explicaré cómo ver los datos de los hosts que se han agregado.

En el menú, expanda Supervisión 1 y haga clic en Hosts 2.

Llegamos a una página, que también muestra la lista de hosts, esta muestra los datos de monitoreo.

Desde esta página, tenemos varias formas de ver los datos:

  • Latest data : muestra datos de supervisión digital
  • Problems : indica si hay alguna alerta
  • Graphs : permite ver todas las gráficas de los elementos
  • Dashboard : permite tener una lógica de diferentes grafos.

Aquí algunas capturas:

Otros dos ejemplos de Dashboard:

Para cambiar el Tablero, use el selector en la parte superior derecha de la página.

Te dejo descubrir tus datos por ti mismo.

Para terminar …

Este primer tutorial dedicado a Zabbix termina aquí, todavía hay muchas cosas que ver y seguirán otros tutoriales (donde ya están en línea dependiendo de cuándo leas este).

También escribiré artículos explicando cómo funcionan las cosas como la diferencia entre agentes activos y pasivos.

Si tienes alguna duda, hazla en los comentarios.

Ahora ya sabe cómo instalar Zabbix y monitorear sus primeros hosts.