Qué vas a conseguir
Un servidor Zabbix para vigilar los servidores Windows y Linux de la oficina y de la sala de servidores: instalado desde el repositorio oficial, con el agente 2 desplegado de forma repetible, los hosts ordenados por grupos, plantillas con umbrales ajustados por macros, dependencias que convierten una caída de red en un solo aviso, correo a la guardia con escalado y mantenimientos para las ventanas de parches. Y, cuando un host aparece con ZBX en rojo, saber si es el firewall, la configuración del agente o el nombre.
Antes de empezar
- La versión: Zabbix 7.0 LTS, con soporte completo hasta junio de 2027 y limitado hasta junio de 2029. Servidor, proxy y agentes de la misma versión mayor; un agente más antiguo funciona, uno más nuevo que el servidor, no siempre.
- Un Ubuntu Server 24.04 para el servidor: para unos 200 hosts, 4 vCPU, 8 GB de RAM y disco SSD; la base de datos es lo que crece.
- Puertos: el servidor consulta al agente en el 10050/TCP (comprobaciones pasivas) y los agentes envían al servidor en el 10051/TCP (comprobaciones activas).
- Un nombre en DNS (
zabbix.contoso.local), una cuenta de correo para los avisos y una lista de quién está de guardia.
1. El servidor: Zabbix 7.0 con MySQL y Apache
La guía de Zabbix para hostelería instala con PostgreSQL y Nginx; aquí, la otra combinación habitual. Los paquetes salen del repositorio oficial, no del de Ubuntu, que trae una versión antigua:
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.debsudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb && sudo apt updatesudo apt install mysql-server zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent2La base de datos, con el juego de caracteres que exige Zabbix:
create database zabbix character set utf8mb4 collate utf8mb4_bin;create user zabbix@localhost identified by 'ContraseñaLarga';grant all privileges on zabbix.* to zabbix@localhost;set global log_bin_trust_function_creators = 1;quit;zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbixsudo mysql -e "set global log_bin_trust_function_creators = 0;"sudo nano /etc/zabbix/zabbix_server.confDBPassword=ContraseñaLargasudo systemctl restart zabbix-server zabbix-agent2 apache2sudo systemctl enable zabbix-server zabbix-agent2 apache2sudo ufw allow 10051/tcp && sudo ufw allow 443/tcplog_bin_trust_function_creatorssolo hace falta mientras se importa el esquema: se vuelve a dejar en 0.- La importación tarda unos minutos y no muestra nada mientras trabaja.
- La interfaz web queda en
http://zabbix.contoso.local/zabbix. El asistente pide la base de datos (MySQL,localhost, usuariozabbix), un nombre para el servidor y la zona horaria, y guarda todo en/etc/zabbix/web/zabbix.conf.php. - El usuario inicial es Admin con contraseña zabbix. Cámbiala en el primer acceso, crea tu usuario con rol Super admin y deja Admin como cuenta de emergencia. Para HTTPS, el certificado se pone en Apache como en cualquier sitio.
tail -f /var/log/zabbix/zabbix_server.log es lo primero que se mira cuando algo no recoge datos. El servidor dice ahí, con el nombre del host, qué ha fallado.
2. El agente 2 en Windows y en Linux
Windows: el MSI de Zabbix Agent 2 admite los parámetros de configuración en la línea de comandos, así que el mismo comando sirve para PDQ, MECM, Intune o una GPO de inicio:
msiexec /l*v C:\Temp\zabbix-agent2-install.log /i zabbix_agent2-7.0-windows-amd64-openssl.msi /qn SERVER=10.10.20.15 SERVERACTIVE=10.10.20.15 HOSTNAME=SRV-FS-02 ENABLEPATH=1sc query "Zabbix Agent 2" STATE : 4 RUNNING- El nombre real del MSI lleva la versión menor (7.0.x): usa la misma que el servidor.
SERVERes quién puede consultar al agente (pasivas);SERVERACTIVE, a quién envía el agente (activas).HOSTNAMEtiene que coincidir exactamente, mayúsculas incluidas, con el Host name que se dará de alta en Zabbix.- El instalador crea la regla del firewall de Windows para el 10050 salvo que se le pase
SKIP=fw. Si la red tiene otro firewall entre el servidor y la VLAN de servidores, ahí también. - La configuración queda en
C:\Program Files\Zabbix Agent 2\zabbix_agent2.confy el log, en la misma carpeta.
Linux, con el mismo repositorio que el servidor:
sudo apt install zabbix-agent2sudo nano /etc/zabbix/zabbix_agent2.confServer=10.10.20.15ServerActive=10.10.20.15Hostname=srv-app-02sudo systemctl restart zabbix-agent2 && sudo systemctl enable zabbix-agent2sudo ufw allow from 10.10.20.15 to any port 10050 proto tcpDesde el servidor, la prueba que separa "el agente no responde" de "Zabbix está mal configurado" (paquete zabbix-get):
zabbix_get -s 10.10.30.21 -k agent.ping1zabbix_get -s 10.10.30.21 -k agent.hostnamesrv-app-023. Grupos de hosts, plantillas y macros
Cada servidor se da de alta en Data collection › Hosts › Create host:
- Grupos de hosts por dónde está y por qué es (
Servidores/Madrid,Servidores/Windows,Red/Switches): se usan para permisos, acciones y mantenimientos, así que se piensan una vez y se respetan. - Plantillas: Windows by Zabbix agent y Linux by Zabbix agent traen CPU, memoria, discos, servicios y red, con descubrimiento automático de discos e interfaces. Funcionan con el agente 2. No edites las plantillas oficiales: si necesitas añadir algo, una plantilla propia enlazada además de la oficial.
- Macros: los umbrales de las plantillas son macros como
{$VFS.FS.PUSED.MAX.CRIT}(90 % de disco) o{$CPU.UTIL.CRIT}. Se cambian en el host o en un grupo sin tocar la plantilla, y admiten contexto:{$VFS.FS.PUSED.MAX.CRIT:"/var/log"}= 95 cambia solo ese sistema de ficheros, y en Windows{$VFS.FS.PUSED.MAX.CRIT:"D:"}solo la unidad D. - Las macros globales están en Administration › Macros. Las contraseñas (de SNMPv3, de una comprobación web) en una macro de tipo Secret text: no se vuelven a mostrar en la interfaz.
4. Disparadores con dependencias: el switch antes que los servidores
Si el switch de la sala de servidores se cae, cada servidor detrás de él aparece como no disponible: cincuenta problemas y cincuenta correos para una sola avería. Las dependencias lo arreglan: un disparador que depende de otro no genera problema mientras el otro está activo.
- El switch,
SW-CPD-01, dado de alta con la plantilla ICMP Ping (o la de SNMP del fabricante). Su disparador es Unavailable by ICMP ping. - En cada servidor, el disparador de disponibilidad del agente (Zabbix agent is not available) pasa a depender del del switch. Como viene de plantilla, la dependencia se añade en el host: Data collection › Hosts › SRV-FS-02 › Triggers, el disparador, pestaña Dependencies, Add y el disparador del switch.
- Si el switch depende a su vez del router o del cortafuegos, se encadena igual: router, switch, servidor.
- Para muchos hosts, la forma limpia es una plantilla propia por ubicación (por ejemplo, Dependencias CPD Madrid) con la dependencia ya hecha, o la API de Zabbix con un script.
- Las dependencias solo funcionan si el switch se vigila con más frecuencia o con un umbral más corto que los servidores: si el servidor salta antes que el switch, el aviso ya ha salido.
5. Avisos: tipo de medio de correo y acciones
Primero el canal, en Alerts › Media types › Email:
Con Test se manda un correo de prueba. Después, en cada usuario, Users › Users › Media: el tipo Email, la dirección, las horas (When active, por ejemplo 1-7,00:00-24:00) y las severidades que quiere recibir. Mejor un grupo de usuarios (Guardia Sistemas) que usuarios sueltos.
La acción decide qué problemas avisan, a quién y cuándo, en Alerts › Actions › Trigger actions:
- El paso 2 se corta cuando alguien reconoce el problema: así el responsable solo se entera de lo que nadie ha cogido.
- Un problema que no está en ninguna acción no avisa a nadie: comprueba que cada grupo de hosts de producción está en alguna.
- Reports › Action log dice qué se envió, a quién y si falló el envío.
6. Periodos de mantenimiento
Los parches del segundo martes reinician servidores a propósito. En Data collection › Maintenance:
- With data collection sigue guardando datos y marca los problemas como suprimidos; con Pause operations for suppressed problems, no avisan. No data collection deja de recoger: solo para un host que se apaga de verdad durante días.
- El servidor Zabbix revisa los mantenimientos cada minuto: créalos con unos minutos de margen antes del reinicio.
Un mantenimiento sin fin o sobre todos los grupos esconde también la caída que no es de los parches. Siempre con fecha de fin y limitado a lo que se toca.
7. El ticket: "un agente aparece como ZBX no disponible"
Miércoles, 11:00. SRV-FS-02 se dio de alta ayer y en Monitoring › Hosts su icono ZBX está en rojo. Al pasar el ratón, el error de la interfaz dice por dónde empezar:
Get value from agent failed: cannot connect to [[10.10.30.22]:10050]: [4] Interrupted system call- ¿Llega el servidor al 10050? Desde el servidor Zabbix,
nc -zv 10.10.30.22 10050. Si no conecta, es red: el firewall de Windows (la regla del MSI no se creó porque se instaló conSKIP=fw, o una GPO de firewall la anula) o un cortafuegos entre la VLAN de Zabbix y la de servidores. En el servidor Windows,Get-NetFirewallRule -DisplayName "*Zabbix*"yTest-NetConnectiondesde otro equipo de la misma red. Connection refused en lugar de Interrupted significa que llega pero el servicio no escucha:sc query "Zabbix Agent 2". - ¿Acepta al servidor? Si conecta pero falla, el log del agente lo dice:
2026/11/04 10:52:17.402312 failed to accept an incoming connection: connection from "10.10.20.15" rejected, allowed hosts: "10.10.20.51"Server= apunta a otra IP: el antiguo servidor de Zabbix, o un proxy. Se corrige en zabbix_agent2.conf y se reinicia el servicio.
- ¿Coincide el nombre? Las comprobaciones activas (y los elementos active de la plantilla) fallan aunque el ZBX pasivo esté en verde. El servidor lo deja en su log:
grep "SRV-FS-02" /var/log/zabbix/zabbix_server.log | tail -n 1 2231:20261104:105530.118 cannot send list of active checks to "10.10.30.22": host [srv-fs-02] not foundEl agente se presenta como srv-fs-02 y en Zabbix el host es SRV-FS-02: el nombre distingue mayúsculas. Se iguala el Hostname= del agente al Host name de Zabbix (o se usa HostnameItem=system.hostname y se dan de alta los hosts con el nombre que devuelve).
- Comprobar:
zabbix_get -s 10.10.30.22 -k agent.pingdevuelve1, el icono pasa a verde en uno o dos minutos y Latest data del host muestra valores recientes.
Para que no vuelva a pasar, el comando de despliegue del MSI vive en un único sitio (el paquete de PDQ o MECM), con SERVER y SERVERACTIVE correctos y HOSTNAME tomado del nombre del equipo, y el alta en Zabbix se hace con ese mismo nombre.
En el ticket: el mensaje de error de la interfaz, cuál de las tres causas era, el cambio hecho y la prueba con zabbix_get.
Siguientes pasos
- El caso de un local de hostelería, con proxy en cada sitio, ICMP para TPV e impresoras y una tormenta de alertas, está en la guía de Zabbix para un restaurante u hotel.
- Para ver los datos de Zabbix junto a otras fuentes en un mismo panel, la guía de Grafana.
- El agente en Windows se despliega en lote con lo que explica la guía de PDQ y MDT.
¿Falta algo o en tu entorno es distinto? Escríbeme y lo corrijo.
Tech Career Lab · newsletter
¿Te ha servido? Cada dos semanas envío una idea práctica para perfiles IT: LinkedIn, proyectos, networking y procesos de selección.
Apúntate y llévate las 33 ideas →