¿Qué es Zabbix?

Zabbix es una plataforma de monitorización open-source de nivel empresarial diseñada para rastrear el estado y la disponibilidad de servidores, redes, aplicaciones y servicios en infraestructuras de cualquier tamaño. Utiliza una arquitectura cliente-servidor o server-proxy-agent que permite recolectar métricas a través de agentes nativos, SNMP, IPMI, JMX y checks HTTP/HTTPS.

Entre sus características principales destacan:

  • Recolección centralizada de métricas (CPU, RAM, disco, red, procesos).
  • Sistema de alertas con triggers y acciones configurables (email, Telegram, Slack).
  • Visualización con dashboards, graphs y maps dinámicos.
  • Soporte para plantillas predefinidas que aceleran la puesta en marcha.
  • API REST completa que permite automatizar la gestión de hosts y configuraciones.

En este artículo recorreremos la instalación completa de Zabbix Server 7.x sobre Debian 12, incluyendo MariaDB como backend de base de datos, el frontend web PHP y el agente local.

Arquitectura de Zabbix

Zabbix se compone de varios componentes que trabajan juntos:

  • Zabbix Server: El núcleo del sistema. Recibe los datos de los agentes, evalúa los triggers y ejecuta las acciones configuradas.
  • Zabbix Proxy: Un servidor intermedio opcional que recolecta métricas en entornos remotos o segmentados y las reenvía al servidor central.
  • Zabbix Agent / Agent2: Un proceso liviano que se instala en los hosts monitorizados y envía métricas locales al servidor o proxy.
  • Zabbix Frontend: Interfaz web PHP que permite administrar la plataforma y visualizar datos.
  • Base de datos (MariaDB / PostgreSQL): Almacena toda la configuración, históricos de datos y eventos.

El flujo típico de datos es: Agent → Server (o Proxy → Server) → DB → Frontend.

Paso 1: Preparar el sistema Debian 12

Actualizamos los repositorios e instalamos dependencias básicas:

apt update && apt upgrade -y
apt install -y wget gnupg apt-transport-https curl

Paso 2: Instalar MariaDB

Zabbix 7.x recomienda MariaDB como backend. Lo instalamos y aseguramos la instalación:

apt install -y mariadb-server mariadb-client
mysql_secure_installation

Durante mysql_secure_installation se recomienda:

  • Establecer contraseña para root de MariaDB.
  • Eliminar usuarios anónimos.
  • Deshabilitar login remoto de root.
  • Eliminar base de datos de prueba.
  • Recargar privilegios.

Paso 3: Crear la base de datos de Zabbix

Conectamos a MariaDB y creamos la base de datos y el usuario:

mysql -u root -p
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password_segura';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
SET GLOBAL log_bin_trust_function_creators = 1;
QUIT;

Paso 4: Instalar Zabbix Server 7.x

Agregamos el repositorio oficial de Zabbix para Debian 12 e instalamos los paquetes:

wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-1+debian12_all.deb
dpkg -i zabbix-release_7.0-1+debian12_all.deb
apt update
apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-agent zabbix-sql-scripts

Paso 5: Importar el schema inicial

Zabbix incluye los scripts SQL para crear la estructura de la base de datos. Los importamos en el orden correcto:

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix
mysql -u root -p -e "SET GLOBAL log_bin_trust_function_creators = 0;"

La importación puede tomar varios segundos dependiendo del hardware. Una vez terminada, desactivamos la variable log_bin_trust_function_creators por seguridad.

Paso 6: Configurar Zabbix Server

Editamos el archivo de configuración principal para indicar los datos de conexión a la base de datos:

nano /etc/zabbix/zabbix_server.conf

Buscamos y modificamos los siguientes parámetros:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password_segura

Paso 7: Configurar PHP para el frontend

Editamos la configuración de PHP para el frontend web. La zona horaria debe coincidir con la del servidor:

nano /etc/zabbix/apache.conf
# O bien editar /etc/php/8.2/apache2/php.ini
# php_value date.timezone America/Caracas

Paso 8: Iniciar servicios y habilitar en boot

systemctl restart zabbix-server zabbix-agent apache2
systemctl enable zabbix-server zabbix-agent apache2
systemctl status zabbix-server

Verificamos que los servicios estén activos y sin errores. El puerto 10051 (Zabbix Server) y 10050 (Zabbix Agent) deben estar escuchando.

Paso 9: Completar la instalación vía frontend web

Accedemos desde el navegador a la URL del frontend:

http://<IP_DEL_SERVIDOR>/zabbix

El asistente de instalación web nos guiará por los siguientes pasos:

  1. Pantalla de bienvenida — hacer clic en Next step.
  2. Verificación de prerrequisitos PHP — todos deben mostrar OK; si hay errores instalar los paquetes faltantes.
  3. Configuración de conexión a la base de datos — ingresar los mismos datos del paso 6 (localhost, zabbix, zabbix, password_segura).
  4. Configuración del servidor Zabbix — dejar valores por defecto (localhost, puerto 10051, nombre «Zabbix server»).
  5. Resumen y confirmación — hacer clic en Next step.
  6. Descargar e instalar el archivo de configuración zabbix.conf.php en /etc/zabbix/web/ o copiar el contenido manualmente.

Paso 10: Login inicial

Una vez completada la instalación web, accedemos con las credenciales por defecto:

Usuario: Admin
Contraseña: zabbix

Es altamente recomendable cambiar la contraseña por defecto inmediatamente después del primer inicio de sesión. Para ello, ir a Administration → Users → Admin → Change password.

¡Zabbix Server ya está listo! En el próximo artículo veremos cómo agregar hosts, configurar templates y crear alertas.

Infografía Zabbix: Instalación y configuración inicial del servidor de monitorización
Infografía: Zabbix: Instalación y configuración inicial del servidor de monitorización