Saltar a contenido

O4.1 - Runtime con historico local en VPS

Fecha de ejecucion: 2026-06-01.

Veredicto

  • estado O4.1: CERRADO TECNICAMENTE
  • estado plataforma O4: OPERATIVA EN VPS
  • unico pendiente: activacion de SMTP real mediante carga local de credenciales en el VPS
  • archivo de secreto a completar: /opt/stacks/observability/secrets/alertmanager_smtp_password

Decision aplicada

  • opcion elegida: Opcion A
  • historico de Thanos: local persistente en el VPS
  • volumen Docker: obs_thanos_objectstore_data
  • mountpoint observado en el host: /var/lib/docker/volumes/obs_thanos_objectstore_data/_data
  • archivo de objstore versionado: /opt/stacks/observability/thanos/filesystem-bucket.yml

Safe point inicial

  • git status -sb: ## main...origin/main
  • git rev-parse HEAD: 1f56f7f21b6a85e521c08128f848a1381951fc3f

Stack validado en VPS

Servicios observados Up al 2026-06-01 11:09 -03:

  • obs-prometheus
  • obs-grafana
  • obs-alertmanager
  • obs-thanos-sidecar
  • obs-thanos-query
  • obs-thanos-storegateway
  • obs-thanos-compactor
  • obs-node-exporter
  • obs-cadvisor
  • obs-blackbox-exporter

Evidencia tecnica

  • Prometheus: promtool check config /etc/prometheus/prometheus.yml en SUCCESS
  • scrapes: blackbox-exporter, cadvisor, grafana, node-exporter, prometheus, thanos-compactor, thanos-query, thanos-sidecar y thanos-storegateway en health=up
  • Thanos Query: GET /api/v1/stores devuelve sidecar y store
  • Grafana datasource: Thanos con uid=thanos, url=http://thanos-query:10902 y isDefault=true
  • Grafana dashboards: carpetas 01 a 10 provisionadas y Executive Overview visible en 10 - Executive Board
  • Alertmanager: GET /-/ready -> HTTP 200 con config fallback local-null

Secrets

  • presente: /opt/stacks/observability/secrets/grafana_admin_password
  • presente pero vacio para bootstrap: /opt/stacks/observability/secrets/alertmanager_smtp_password
  • no versionado: el valor real de alertmanager_smtp_password sigue pendiente

Estado SMTP

  • configuracion SMTP no secreta: queda prevista por variables ALERTMANAGER_SMTP_* en el .env local del VPS
  • secreto real: debe existir solo en /opt/stacks/observability/secrets/alertmanager_smtp_password
  • comportamiento actual: mientras el secreto siga vacio o ausente, Alertmanager arranca en fallback local-null sin bloquear la operacion general de O4
  • alcance del pendiente: la unica validacion faltante es el envio y recuperacion reales por email

Limitacion actual

  • SMTP real no pudo validarse porque en el VPS no existe aun un secreto operativo cargado en /opt/stacks/observability/secrets/alertmanager_smtp_password
  • mientras tanto Alertmanager queda operativo en fallback local-null
  • si se pierde el VPS sin backup externo reciente, se pierde el historico local de Thanos

Procedimiento pendiente en VPS

  1. Crear o actualizar el secreto local sin imprimirlo en pantalla: install -d -m 700 /opt/stacks/observability/secrets && install -m 600 /dev/null /opt/stacks/observability/secrets/alertmanager_smtp_password && editor /opt/stacks/observability/secrets/alertmanager_smtp_password
  2. Confirmar solo la presencia del archivo, sin leer su contenido: stat -c '%n %s bytes' /opt/stacks/observability/secrets/alertmanager_smtp_password
  3. Crear o actualizar /opt/stacks/observability/.env con estas variables no secretas: ALERTMANAGER_SMTP_SMARTHOST=smtp.hostinger.com:465 ALERTMANAGER_SMTP_FROM=kpyapps@alpuntodeventa.com.ar ALERTMANAGER_SMTP_AUTH_USERNAME=kpyapps@alpuntodeventa.com.ar ALERTMANAGER_EMAIL_TO=kpyapps@alpuntodeventa.com.ar ALERTMANAGER_SMTP_PASSWORD_FILE=/opt/stacks/observability/secrets/alertmanager_smtp_password
  4. Reiniciar Alertmanager: cd /opt/stacks/observability && docker compose up -d alertmanager
  5. Validar ready: docker exec obs-alertmanager wget -qO- http://127.0.0.1:9093/-/ready
  6. Verificar que Alertmanager ya no este en fallback local-null: docker exec obs-alertmanager wget -qO- http://127.0.0.1:9093/api/v2/status
  7. Ejecutar un drill SMTP real usando una alerta controlada y reversible desde Prometheus o el circuito ya documentado en O3.1.
  8. Validar recepcion real del correo de disparo en la casilla destino.
  9. Validar recepcion real del correo de recuperacion cuando la alerta vuelva a resolved.
  10. Actualizar este reporte con fecha, hora y evidencia real del envio.

Recomendacion futura

  • cargar secreto SMTP real y repetir un drill controlado con envio y resolucion por email
  • incorporar obs_thanos_objectstore_data al circuito de backup externo
  • migrar el historico a S3 compatible o implementar backup dedicado del objstore local