본문으로 건너뛰기

Alertmanager

Alertmanager는 Prometheus 알림의 알림 라우팅을 담당합니다. Lumie는 Alertmanager와 Karma UI를 하나의 ArgoCD 매니페스트 파일에서 함께 배포합니다.

소스 경로

  • lumie-infra/observability/alertmanager/argocd.yaml
  • lumie-infra/observability/alertmanager/helm-values.yaml
  • lumie-infra/observability/alertmanager/common-values.yaml
  • lumie-infra/security/teleport/agent/helm-values.yaml

런타임 계약

  • Alertmanager는 persistence를 비활성화한 replica 1개로 실행됩니다.
  • 활성 구성은 Vault가 렌더링한 alertmanager-config 시크릿에서 마운트됩니다.
  • Karma는 같은 네임스페이스의 별도 애플리케이션으로 실행되며 http://alertmanager.alertmanager.svc.cluster.local:9093을 가리킵니다.

라우팅 동작

common-values.yaml의 Vault 템플릿은 다음을 정의합니다.

  • 하나의 메인 이메일 receiver
  • Watchdog, InfoInhibitor에 대한 명시적 null routing
  • severity: critical에 대한 더 빠른 repeat interval
  • 일치하는 라벨에서 criticalwarning을 억제하는 inhibition

즉, 라우팅 동작의 단일 출처는 차트 기본 구성보다 Vault입니다.

접근 경계

  • Alertmanager 자체는 Teleport 앱으로 게시됩니다.
  • Karma도 karma Teleport 앱으로 별도 게시됩니다.
  • 두 서비스 모두 Helm ingress는 비활성화됩니다.

운영 경계

  • Helm 차트에서 config.enabled: false로 설정하여 stock config를 끄고, 제어권을 마운트된 시크릿에 넘깁니다.
  • persistence가 꺼져 있으므로 silence와 notification-log 상태는 pod 교체 후 유지되지 않습니다.
  • SMTP 자격 증명과 구성은 같은 Vault 기반 시크릿 경로에서 옵니다.

장애 지점

  • VaultStaticSecret 새로고침이 깨지면 Alertmanager는 오래된 구성을 계속 제공하거나 새 자격 증명을 reload하지 못할 수 있습니다.
  • persistence가 꺼져 있으므로 pod 재시작 시 메모리 내 silence 상태가 지워집니다.
  • Karma 헬스는 Alertmanager 전달 헬스를 보장하지 않습니다. UI가 Alertmanager API에 도달하는지만 증명합니다.

검증

kubectl get applications.argoproj.io -n argocd alertmanager karma
kubectl get pods -n alertmanager
kubectl get secret -n alertmanager alertmanager-config
kubectl get secret -n alertmanager alertmanager-smtp
kubectl describe statefulset -n alertmanager alertmanager

관련 페이지