Qué hace Zabbix
Zabbix recoge medidas — carga del procesador, memoria libre, espacio en disco, estado de un servicio, tiempo de respuesta de una página — y las compara con disparadores. Cuando una expresión se cumple, por ejemplo «menos del 10 % de espacio libre durante cinco minutos», Zabbix abre un problema, lo muestra en sus paneles y ejecuta las acciones previstas: un correo, un mensaje de Telegram, un webhook.
Las medidas llegan por varios caminos: el agente de Zabbix instalado en cada servidor, el protocolo SNMP para routers, conmutadores y SAI, escenarios web para sitios y API, o consultas directas a una base de datos. Las plantillas listas para usar agrupan las medidas y los disparadores adecuados para Linux, Windows, nginx, MySQL, PostgreSQL o Docker.
Lo que aporta Zabbix
- Agentes Linux y Windows — procesador, memoria, discos, red, servicios, procesos y registros.
- SNMP — equipos de red monitorizados sin agente, con descubrimiento automático de interfaces.
- Disparadores y escaladas — umbrales legibles, dependencias entre hosts, alertas que suben de nivel si nadie reacciona.
- Escenarios web — disponibilidad, tiempo de respuesta y contenido de una serie de páginas o llamadas a una API.
- Paneles, mapas e informes — para el equipo de operaciones y también para tus clientes.
- Permisos por grupo de hosts — cada usuario solo ve lo que le corresponde.
Zabbix frente a otras opciones
Desplace la tabla
| Zabbix | Prometheus + Grafana | Uptime Kuma | |
|---|---|---|---|
| Qué se monitoriza | Servidores, servicios, red, sitios web | Métricas de aplicaciones y contenedores | Disponibilidad de sitios y puertos |
| Recogida | Agente, SNMP, HTTP, bases de datos | Exportadores consultados | Sondas HTTP, TCP y ping |
| Configuración | Interfaz web | Archivos YAML | Interfaz web |
| Alertas | Integradas, con escaladas | Alertmanager aparte | Integradas |
| Coste | Precio del VPS | Precio del VPS | Precio del VPS |
Requisitos previos
Un VPS Ubuntu 24.04 con 2 GB de RAM y 20 GB de disco para unas decenas de hosts, Docker y el plugin Compose instalados, y un subdominio que apunte al VPS, por ejemplo zabbix.example.com. Prevé más disco si conservas un historial largo: la base PostgreSQL crece con el número de medidas.
Instalar Zabbix con Docker Compose
Preparar el directorio y la contraseña de la base
El archivo
.envcontiene la contraseña de PostgreSQL, compartida por el servidor y la interfaz web.mkdir -p /opt/zabbix && cd /opt/zabbix echo "DB_PASSWORD=$(openssl rand -hex 16)" > .env chmod 600 .envEscribir el archivo docker-compose.yml
Cuatro servicios: el servidor Zabbix, la interfaz web (nginx y PHP), el agente del VPS y PostgreSQL. Solo se publica la interfaz web, y solo en la interfaz local: nginx se encargará del HTTPS.
services: zabbix-server: image: zabbix/zabbix-server-pgsql:alpine-8.0.0 restart: unless-stopped depends_on: database: condition: service_healthy environment: DB_SERVER_HOST: database POSTGRES_USER: zabbix POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: zabbix zabbix-web: image: zabbix/zabbix-web-nginx-pgsql:alpine-8.0.0 restart: unless-stopped depends_on: - zabbix-server ports: - "127.0.0.1:8080:8080" environment: ZBX_SERVER_HOST: zabbix-server DB_SERVER_HOST: database POSTGRES_USER: zabbix POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: zabbix PHP_TZ: Africa/Casablanca zabbix-agent: image: zabbix/zabbix-agent2:alpine-8.0.0 restart: unless-stopped environment: ZBX_HOSTNAME: "Zabbix server" ZBX_SERVER_HOST: zabbix-server database: image: postgres:17.11-alpine restart: unless-stopped environment: POSTGRES_USER: zabbix POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: zabbix volumes: - zabbix-db:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U zabbix -d zabbix"] interval: 5s retries: 12 volumes: zabbix-db: {}Arrancar la pila
En el primer arranque, el servidor crea el esquema de la base; cuenta un minuto antes de que responda la interfaz.
docker compose up -d docker compose ps curl -fsS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080/
Cambia la contraseña de fábrica antes que nada
Una instalación nueva de Zabbix abre la cuenta Admin con la contraseña zabbix, conocida por todos. Inicia sesión de inmediato y sustitúyela en User settings, Profile, Change password, incluso antes de poner la interfaz detrás de su nombre de dominio.
Poner Zabbix detrás de nginx en HTTPS
El puerto 8080 solo escucha en 127.0.0.1: nginx, instalado en el host, recibe el tráfico público y lo reenvía. Certbot añade después el certificado y la redirección a HTTPS.
server {
listen 80;
server_name zabbix.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}certbot --nginx -d zabbix.example.comVincular el host «Zabbix server» al agente del VPS
Zabbix crea de serie un host «Zabbix server» que consulta un agente en 127.0.0.1. En Docker, el agente vive en su propio contenedor: abre Data collection y luego Hosts, haz clic en «Zabbix server» y sustituye la interfaz Agent por el nombre DNS zabbix-agent, con «Connect to» en DNS. Un minuto después, el indicador ZBX se pone en verde y Latest data muestra el procesador, la memoria y la carga del VPS.
Monitorizar tus otros servidores
En cada servidor, instala el paquete zabbix-agent2 de tu distribución o del repositorio oficial de Zabbix, y declara la IP pública de tu VPS Zabbix como servidor autorizado. En modo pasivo, es el servidor Zabbix quien consulta al agente en el puerto 10050: abre ese puerto solo a esa IP.
# /etc/zabbix/zabbix_agent2.conf
Server=203.0.113.10
Hostname=web-01systemctl restart zabbix-agent2
ufw allow from 203.0.113.10 to any port 10050 proto tcpEn Data collection y luego Hosts, crea el host web-01 con su IP y la plantilla «Linux by Zabbix agent». El modo activo, en el que el agente envía sus datos al puerto 10051 del servidor, exige abrir ese puerto en el VPS Zabbix: resérvalo a las IP de tus servidores.
Recibir las alertas
En Alerts y luego Media types, activa y configura el correo (servidor SMTP, remitente), Telegram o Slack: Zabbix incluye tipos listos para decenas de servicios. Añade después el medio a tu usuario en User settings, Profile, Media, y activa la acción «Report problems to Zabbix administrators» en Alerts, Actions. Pruébalo deteniendo el agente de un servidor: debería llegarte un problema «Zabbix agent is not available».
Copias de seguridad y actualizaciones
Toda la configuración y el historial están en PostgreSQL. Basta una copia diaria con pg_dump:
cd /opt/zabbix
docker compose exec -T database pg_dump -U zabbix zabbix | gzip > zabbix-$(date +%F).sql.gzPara actualizar, cambia el número de versión de las tres imágenes de Zabbix en docker-compose.yml y ejecuta docker compose pull && docker compose up -d: el servidor actualiza el esquema al arrancar. Haz una copia de la base justo antes y lee las notas de la versión antes de cambiar de rama principal.
Instalación en un clic en ServOrbit
Desde el Marketplace de tu área de cliente, Zabbix se instala en un VPS de ServOrbit sin escribir una línea: se despliegan el servidor, la interfaz web, PostgreSQL y el agente del VPS, el host «Zabbix server» ya está vinculado a su agente, la contraseña de fábrica se sustituye por una generada que aparece en tu área de cliente, y la interfaz se publica en HTTPS en tu dominio o en el subdominio gratuito del VPS.