Alertmanager
Alertmanager는 Prometheus 알림의 알림 라우팅을 담당합니다. Lumie는 Alertmanager와 Karma UI를 하나의 ArgoCD 매니페스트 파일에서 함께 배포합니다.
소스 경로
lumie-infra/observability/alertmanager/argocd.yamllumie-infra/observability/alertmanager/helm-values.yamllumie-infra/observability/alertmanager/common-values.yamllumie-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 routingseverity: critical에 대한 더 빠 른 repeat interval- 일치하는 라벨에서
critical이warning을 억제하는 inhibition
즉, 라우팅 동작의 단일 출처는 차트 기본 구성보다 Vault입니다.
접근 경계
- Alertmanager 자체는 Teleport 앱으로 게시됩니다.
- Karma도
karmaTeleport 앱으로 별도 게시됩니다. - 두 서비스 모두 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