Anteriormente, había implementado en Kubernetes(k8s) uno de los software Open Source mas utilizado para el monitoreo de infraestructuras y aplicaciones de la actualidad Zabbix. Comencemos brevemente por el inicio.

¿Que es Zabbix?

Zabbix es una solución enterprise de código abierto para el monitoreo. Fue creado por Alexei Vladishev y actualmente esta desarrollado y soportado por Zabbix SIA. Zabbix es un software que monitorea numerosas métricas de una red y la salud e integridad de nuestros servidores, maquinas virtuales, aplicaciones, servicios, base de datos, sitios webs, cloud y un sin fin de elementos mas. Zabbix utiliza diferentes mecanismos de notificaciones que permiten a los usuarios configurar alertas para numerosos eventos. Lo que nos permite reaccionar rápidamente a los problemas.

Los principales componentes de Zabbix son:

  • Zabbix Server: encargado de recoger las métricas, detectar anomalías o problemas y generar las notificaciones.
  • Zabbix Frontend: interfaz web para la administración de la configuración y visualización de las métricas, gestión de usuarios, notificaciones,etc.
  • Zabbix Database: persiste la configuración de Zabbix y mantiene los datos históricos de las métricas recolectadas.

Los cuales pueden ser instalados en un mismo servidor o dependiendo de nuestro ambiente ser distribuido en una granja de servidores, en donde cada uno ejecutara un rol definido.

metric_collection_sources

Fuente: https://www.zabbix.com/la/features

Ejemplo de configuraciónes de hardware
Installation size Monitored metrics1 CPU/vCPU cores Memory
(GiB)
Database Amazon EC22
Small 1 000 2 8 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL
m6i.large/m6g.large
Medium 10 000 4 16 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL
m6i.xlarge/m6g.xlarge
Large 100 000 16 64 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL,
Oracle
m6i.4xlarge/m6g.4xlarge
Very large 1 000 000 32 96 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL,
Oracle
m6i.8xlarge/m6g.8xlarge

1 1 metric = 1 item + 1 trigger + 1 graph
2 Example with Amazon general purpose EC2 instances, using ARM64 or x86_64 architecture, a proper instance type like Compute/Memory/Storage optimised should be selected during Zabbix installation evaluation and testing before installing in its production environment.

Fuente: https://www.zabbix.com/documentation/current/en/manual/installation/requirements

La instalación anterior mostraba una implementación en alta disponibilidad (HA) únicamente del Zabbix Server en un ambiente de microservicios utilizando el orquestador Kubernetes. Recientemente Zabbix acaba de estrenar su nueva versión (7.0.0) , aprovecho para actualizar las notas, en donde se implementara en HA los tres componentes, con el fin de tener una instalación sin un SPOF (Single Point Of Failure).

Implementación de la alta disponibilidad 

Nuestra solución deberá contemplar una implementación en HA de los tres componentes de Zabbix.

  • Zabbix Server: ofrece una solución de manera nativa de alta disponibilidad, Esta permite tener un conjunto de instancias sincronizadas trabajando en manera activa-pasiva. Un único servidor puede estar trabajando de manera activa, mientras el resto se mantiene en modo pasivo, si la instancia activa presenta algún tipo de falla, una replica pasiva es seleccionada para convertirse en el nuevo servidor activo.

Foto 1.1 HA Activo-Pasivo

Fuente: https://www.zabbix.com/documentation/current/es/manual/concepts/server/ha

Foto 1.2 Salida del comando zabbix_server -R ha_status

Fuente: https://www.zabbix.com/documentation/current/es/manual/concepts/server/ha

  • Zabbix Frontend: al utilizar los datos directamente de la base de datos, podemos tener múltiples replicas efímeras, solo debemos balancear las peticiones de los usuarios.
  • Zabbix Database: si bien la alta disponibilidad depende directamente del motor de base de datos que estemos utilizando, en este ejemplo se utilizara como punto de partida el InnoDB Cluster implementado anteriormente.

Foto 1.3 InnoDB Cluster

Ambiente a utilizar para implementar el stack de Zabbix en HA.

Dentro de los nodos de k8s se distribuirán las replicas del Zabbix Server y del Zabbix Frontend. En el InnoDB Cluster se implementara la base de datos del componente Zabbix Database.

Al finalizar la implementación, generaremos algún fallo intencional que nos permita probar el HA de cada componente.

Last modified: Wednesday, 24 July 2024, 4:44 AM