SAFE-POINT-038 - Entrega email de alertas La Directa¶
Fecha: 2026-06-15
Objetivo¶
Configurar la ruta segura para que las alertas de La Directa puedan entregar email real desde Alertmanager via SMTP, sin guardar secretos en Git y sin exponer Alertmanager publicamente.
SAFE POINT inicial¶
- Workspace:
C:\APV\openclawai - Estado inicial:
## main...origin/main - HEAD inicial:
703320e9ad4296f528bdef9110177dd08845a54c
Alcance¶
infra/observability/alertmanager/entrypoint.shinfra/observability/docker-compose.ymlinfra/observability/.env.example- Documentacion O4 y governance relacionada.
No se toco VPS WooCommerce, DNS, firewall ni exposicion publica de Alertmanager.
Auditoria previa¶
alertmanager.ymlversionado mantiene fallbacklocal-null.entrypoint.shya leia el password SMTP desde/run/secrets/alertmanager_smtp_password.docker-compose.ymlmontaba el secreto desde/opt/stacks/observability/secrets/alertmanager_smtp_password.- Hallazgo corregido: las variables SMTP no secretas estaban en
.env.example, pero no se inyectaban al contenedoralertmanager. - Receiver runtime anterior:
email-default, de alcance general.
Receiver configurado¶
- Nombre:
ladirecta-email - Destino:
gabrielcanuti@gmail.com - Matchers:
tenant="ladirecta"service="ecommerce-ladirecta"severity=~"critical|warning"group_by:tenantservicealertnameseveritygroup_wait:1mgroup_interval:10mrepeat_interval:4hsend_resolved:true
La ruta raiz y las rutas no configuradas quedan en local-null.
Alertas cubiertas¶
EcommerceLaDirectaComArDownEcommerceLaDirectaArDownEcommerceLaDirectaHighLatencyEcommerceLaDirectaSslExpiryWarningEcommerceLaDirectaSslExpiryCritical
Secretos y variables requeridas¶
No se imprimieron ni se guardaron secretos.
Secreto requerido fuera de Git:
/opt/stacks/observability/secrets/alertmanager_smtp_password
Variables no secretas requeridas en /opt/stacks/observability/.env:
ALERTMANAGER_SMTP_SMARTHOSTALERTMANAGER_SMTP_FROMALERTMANAGER_SMTP_AUTH_USERNAMEALERTMANAGER_SMTP_REQUIRE_TLSALERTMANAGER_LADIRECTA_EMAIL_TOALERTMANAGER_SMTP_PASSWORD_FILE
Ejemplo versionado sin secretos:
infra/observability/.env.example
Estado de entrega real¶
Preparado en Git, pendiente de activacion runtime.
La entrega real queda pendiente hasta que existan credenciales SMTP validas en
el VPS OpenClaw y el usuario confirme ejecutar deploy y drill controlado. Sin
SMTP completo o sin password no vacio, Alertmanager arranca con el fallback
versionado local-null.
Procedimiento de activacion pendiente¶
- Cargar el password SMTP en
/opt/stacks/observability/secrets/alertmanager_smtp_passwordcon permisos600. - Completar
/opt/stacks/observability/.envcon variables no secretas. - Ejecutar
docker compose configen/opt/stacks/observability. - Reiniciar solo
Alertmanager:docker compose up -d alertmanager - Validar readiness interna:
docker exec obs-alertmanager wget -qO- http://127.0.0.1:9093/-/ready - Validar status sin imprimir config completa ni secretos.
- Ejecutar drill controlado solo con confirmacion humana.
- Confirmar recepcion de disparo y resolucion.
Validaciones SAFE-POINT-038¶
| Validacion | Resultado |
|---|---|
git status -sb inicial |
PASS ## main...origin/main |
git rev-parse HEAD inicial |
PASS 703320e9ad4296f528bdef9110177dd08845a54c |
| Alertmanager fallback | PASS local-null preservado |
| Ruta La Directa SMTP | PASS ladirecta-email preparado |
| Secretos en Git | PASS sin password/token versionado |
| YAML local | PASS docker-compose.yml, Alertmanager, Prometheus y reglas parsean |
docker compose config local |
SKIP docker no disponible en PATH local |
promtool local |
SKIP no disponible en PATH local |
amtool local |
SKIP no disponible en PATH local |
docker compose config OpenClaw |
PASS sobre runtime actual en /opt/stacks/observability |
amtool check-config config generada SAFE-POINT-038 |
PASS con credenciales dummy no secretas en /tmp |
promtool check config OpenClaw |
PASS en obs-prometheus |
promtool check rules OpenClaw |
PASS en obs-prometheus |
amtool check-config OpenClaw |
PASS config actual fallback local-null |
| Alertmanager health interno | PASS docker exec obs-alertmanager ... /-/ready -> OK |
| Alertmanager no publico | PASS 46.202.151.32:9093 sin conexion publica por timeout |
| Prometheus no publico | PASS 46.202.151.32:9090 sin conexion publica por timeout |
| Secreto SMTP runtime | PENDING smtp-secret-missing-or-empty |
| Test real email | SKIP pendiente de SMTP real y confirmacion humana |
Restricciones respetadas¶
- No se toco VPS WooCommerce.
- No se toco DNS.
- No se toco firewall.
- No se expuso Alertmanager publicamente.
- No se guardaron secretos en Git.
- No se imprimio password/token SMTP.
- No se enviaron alertas reales a terceros.
Proximos pasos¶
- Cargar credenciales SMTP reales fuera de Git.
- Confirmar deploy de
Alertmanageren OpenClaw. - Ejecutar drill controlado de alerta La Directa.
- Documentar evidencia de recepcion y resolucion.