ZT Zabbix WP Monitor releasesself-updates
Plugin WordPress: salud del sitio hacia Zabbix vía REST con token + auto-update por GitHub releases
by ZT Group · github.com/ztgroupcorp/zbx-wp-monitor · website
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/ztgroupcorp/zbx-wp-monitor/releases/download/v1.0.4/zbx-wp-monitor.zipShips its own WordPress updater (Plugin Update Checker), so new versions show up under Dashboard → Updates.
Readme
zbx-wp-monitor
Plugin WordPress de ZT Group que expone la salud interna del sitio a Zabbix vía un endpoint REST autenticado por token. Pensado para monitoreo server-side (HTTP agent de Zabbix), sin agente en el servidor del sitio.
Qué reporta
GET /wp-json/ztgrp-monitor/v1/status con header X-ZTGRP-Token: <token>:
{
"plugin_version": "1.0.4",
"wp_version": "6.9.4",
"php_version": "8.2.20",
"core_updates": 0,
"plugin_updates": 3,
"theme_updates": 1,
"admins": 3,
"cron_overdue": 0,
"autoload_kb": 257,
"checksums_ok": 1,
"checksums_bad_count": 0,
"checksums_bad": [],
"checksums_checked_at": 1780000000
}
- Conteos, versiones y las rutas del core que fallan el checksum — nunca usuarios, credenciales ni datos del sitio.
- Sin token válido → 401.
checksums_*: integridad del core contra los checksums oficiales de wp.org, calculada a diario por WP-Cron en lotes (no carga el request). Se ignorawp-content/y los archivosreadme.html/license.txt(ausentes por hardening o editados: texto sin rol ejecutable). Los checksums se piden para el locale del paquete instalado ($wp_local_packagedewp-includes/version.php), igual quewp core verify-checksums, no para el locale del sitio (WPLANG).checksums_bad: array con las rutas que fallan (tope 20), los ausentes marcados" (ausente)". Sirve para triage directo desde la alerta de Zabbix, sin entrar por SSH al sitio.
Instalación
- Subir el zip desde wp-admin → Plugins → Añadir nuevo → Subir (o
wp plugin install zbx-wp-monitor.zip --activate). - Activar: se genera un token único para el sitio.
- Copiar el token desde Ajustes → ZT Zabbix Monitor.
- En Zabbix: pegar el token en la macro secreta
{$WP.MON.TOKEN}del host virtual del sitio y linkear el template "WordPress site by plugin".
Multisite (red)
En una red WordPress Multisite el modelo es un host por red: se monitorea la red entera como un único host de Zabbix.
- Activar en red (Network Activate), no site por site.
- Configurar desde Network Admin → Settings → ZT Zabbix Monitor: hay un único token compartido por toda la red.
- El endpoint a sondear es el del sitio principal de la red.
Semántica de las métricas en multisite:
core_updates,plugin_updates,theme_updates,checksums_*: a nivel red (core, plugins y temas son compartidos). La integridad del core corre una sola vez en el sitio principal, no por subsitio.admins: cantidad de super admins de la red (control total), no admins de un subsitio.autoload_kb,cron_overdue: reflejan el sitio principal (donde Zabbix sondea); no se agregan en vivo sobre toda la red para no recargar el endpoint.
En instalaciones single-site el comportamiento es el de siempre (token y datos por sitio, página en Ajustes → ZT Zabbix Monitor).
Updates
El plugin se actualiza solo desde los releases de este repo (Plugin Update Checker
- auto-update de WP forzado para este plugin). Publicar release = la flota se actualiza sola.
Release: tag vX.Y.Z + asset zbx-wp-monitor.zip (carpeta
zbx-wp-monitor/ adentro). La versión del header del plugin debe coincidir
con el tag.
Hardening
- Solo lectura: el plugin no modifica nada del sitio.
- Nada en el front, sin AJAX público, sin assets encolados.
- Token comparado con
hash_equals(); viaja por header, nunca en query string. - Endpoint fuera del índice REST (
show_in_index: false).
Changelog
Ver CHANGELOG.md.
Read the full README on GitHub →