O3.1 Alert Drill Report¶
Corrida formal del drill controlado de alertas O3 ejecutada el 2026-06-01.
Fecha y hora¶
- inicio local:
2026-06-01 12:03:58 -03 - cierre local:
2026-06-01 12:41:25 -03 - host remoto validado:
srv977009
Safe point¶
git status -sb->## main...origin/maingit rev-parse HEAD->a82ea0c1c34b94e889a89650d389e937e3112e4a
Objetivo¶
Demostrar que O3 funciona de extremo a extremo con Prometheus y
Alertmanager sin abrir puertos, sin tocar OpenClaw, sin tocar NPM, sin
tocar Portainer y sin habilitar notificaciones externas.
Preestado¶
Alertmanageren receiverlocal-null- agrupacion activa por
alert_groupyseverity - targets base
UP - alertas activas reales:
0 - alerta informativa permanente:
Watchdogenlocal-null OpenClaw,NPM,Portainer,GrafanayAlertmanagersanos antes de iniciar
Pruebas ejecutadas¶
Drill 1 - Node Exporter Down¶
- inicio:
2026-06-01 12:04:01 -03 - accion:
stop/start temporal solo de
obs-node-exporter - alerta esperada:
NodeExporterNoData - alertas observadas:
NodeExporterNoData - evidencia Prometheus:
pendingdesde2026-06-01 12:04:38 -03,firinga2026-06-01 12:10:05 -03 - evidencia Alertmanager:
alerta activa recibida en
local-nulla2026-06-01 12:10:05 -03 - recuperacion:
obs-node-exporterlevantado a2026-06-01 12:10:09 -03, alerta resuelta a2026-06-01 12:11:16 -03 - tiempo aproximado de disparo:
6m 04s - tiempo aproximado de resolucion:
1m 07sdesde la recuperacion
Drill 2 - cAdvisor Down¶
- inicio:
2026-06-01 12:27:18 -03 - accion:
stop/start temporal solo de
obs-cadvisor - alerta esperada:
CadvisorNoData - alertas observadas en corrida final:
CadvisorNoData - evidencia Prometheus:
pendingdesde2026-06-01 12:27:38 -03,firinga2026-06-01 12:32:49 -03 - evidencia Alertmanager:
alerta activa recibida en
local-nulla2026-06-01 12:32:49 -03 - recuperacion:
obs-cadvisorlevantado a2026-06-01 12:32:52 -03, alerta resuelta a2026-06-01 12:33:58 -03 - tiempo aproximado de disparo:
5m 31s - tiempo aproximado de resolucion:
1m 06sdesde la recuperacion
Drill 3 - Blackbox Failure controlado¶
- inicio:
2026-06-01 12:34:41 -03 - accion:
alta temporal de target sintetico
http://127.0.0.1:65534/enblackbox-http-targets.json - alerta esperada:
BlackboxProbeFailed - alertas observadas:
BlackboxProbeFailed - evidencia Prometheus:
pendingdesde2026-06-01 12:35:13 -03,firinga2026-06-01 12:40:12 -03 - evidencia Alertmanager:
alerta activa recibida en
local-nulla2026-06-01 12:40:12 -03 - recuperacion:
target temporal retirado a
2026-06-01 12:40:16 -03, alerta resuelta a2026-06-01 12:41:21 -03 - tiempo aproximado de disparo:
5m 31s - tiempo aproximado de resolucion:
1m 05sdesde la reversa
Drill 4 - Pipeline Alertmanager¶
- receiver confirmado:
local-null - agrupacion confirmada:
alert_group,severity - integraciones externas activas:
ninguna - evidencia:
api/v2/statusmuestra solo receiverlocal-nully sinemail_configs,slack_configs,webhook_configsni otros receivers operativos
Hallazgo intermedio y correccion¶
- en la primera corrida de
obs-cadvisor, ademas deCadvisorNoDataaparecio el falsocriticalDockerTrackedContainerDown - causa:
la regla inferia caida de contenedores clave a partir de
container_last_seenaun cuandocAdvisorera justamente la fuente caida - correccion aplicada:
DockerTrackedContainerDownahora solo evalua siup{job="cadvisor"} == 1 - archivo ajustado:
infra/observability/prometheus/rules/docker-alerts.yml - revalidacion:
corrida final de
obs-cadvisorcompletada sin ese falsocritical
Evidencia Prometheus¶
- precheck:
tmp/o31-alert-drill-20260601-120313/00-precheck.txt - drill 1:
tmp/o31-alert-drill-20260601-120313/01-node-exporter-drill.log - drill 2 final:
tmp/o31-alert-drill-20260601-120313/02-cadvisor-drill-final.log - recarga y verificacion de regla:
tmp/o31-alert-drill-20260601-120313/02b-docker-rule-reload.txt,tmp/o31-alert-drill-20260601-120313/02c-docker-rule-verify-reload.txt,tmp/o31-alert-drill-20260601-120313/02d-prometheus-hup.txt - drill 3:
tmp/o31-alert-drill-20260601-120313/03-blackbox-drill.log - postcheck:
tmp/o31-alert-drill-20260601-120313/99-postcheck.txt
Evidencia Alertmanager¶
api/v2/statusyapi/v2/alertsen precheck y postcheck quedan archivados en00-precheck.txty99-postcheck.txt- las tres alertas de la corrida final llegaron a
local-null - no se observaron receivers externos ni rutas alternativas activas
Servicios tocados temporalmente¶
obs-node-exporterobs-cadvisor- archivo runtime
/opt/stacks/observability/prometheus/targets/blackbox-http-targets.json - recarga controlada de reglas en
obs-prometheus
Servicios no tocados¶
openclaw-openclaw-gateway-1nginx-proxy-managerportainerobs-grafanaobs-alertmanagerobs-blackbox-exporterobs-thanos-queryobs-thanos-sidecarobs-thanos-storegatewayobs-thanos-compactor
Estado final¶
- targets Prometheus:
todos
UP - alertas activas reales:
0 - alerta informativa residual:
solo
Watchdog OpenClaw:VERDENPM:VERDEPortainer:VERDEGrafana:VERDEAlertmanager:VERDE- notificaciones externas habilitadas:
no - puertos publicos nuevos:
no
Riesgos residuales¶
Watchdogsigue activo por diseno; no cuenta como alerta real- el drill confirma O3 local, pero la validacion de notificacion externa sigue pendiente hasta que se apruebe un canal real
- el target sintetico temporal fue reversible y quedo retirado, pero cualquier
cambio futuro en
targets/o reglas O3 debe revalidarse con esta misma secuencia
Resultado final¶
- pruebas ejecutadas:
4 - alertas esperadas observadas:
NodeExporterNoData,CadvisorNoData,BlackboxProbeFailed - alertas observadas no deseadas en corrida final:
0 - decision final:
VERDE
Checklist de cierre¶
- SAFE POINT inicial:
OK - HEAD inicial:
a82ea0c1c34b94e889a89650d389e937e3112e4a - drills ejecutados:
OK - alertas disparadas:
OK - alertas resueltas:
OK - evidencia Prometheus:
OK - evidencia Alertmanager:
OK - servicios tocados temporalmente:
OK - servicios no tocados:
OK - estado final targets Prometheus:
OK - estado final alertas activas:
OK - estado OpenClaw:
OK - estado NPM:
OK - estado Portainer:
OK - estado Grafana:
OK - estado Alertmanager:
OK - notificaciones externas habilitadas:
NO - puertos publicos nuevos:
NO - documentacion actualizada:
pendiente de commit - riesgos residuales:
documentados - commit SHA:
pendiente - push exitoso:
pendiente - repo limpio:
pendiente - semaforo final completo:
VERDE