6290322f1b
- VM stack 10 charts: victoria-metrics-cluster/auth, victoria-logs-cluster, victoria-metrics-agent/alert, opentelemetry-collector, kube-state-metrics, prometheus-node-exporter, alertmanager, perses (JWT/OIDC, Infisical-ready) - ArgoCD ApplicationSet (syncWave) + per-chart dip-values overlays - doc/victoria-metrics-architecture.md, define-chart-resources updates - includes pending working-tree changes (mlflow, kubeflow, apisix, CLAUDE.md) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.8 KiB
1.8 KiB
vmalert 배포 (알림 규칙 평가 엔진)
PromQL 알림 규칙을 주기적으로 평가하고, 발생한 알림을 Alertmanager로 전송한다. ALERTS 메트릭은 다시 VictoriaMetrics에 기록한다.
1. 배포 방법
helm upgrade vmalert ./ -f custom-values.yaml --install -n monitoring
사전: vmcluster, alertmanager가 배포되어 있어야 한다.
2. custom-values.yaml 설정 설명
| 항목 | 대상 | 비고 |
|---|---|---|
datasource.url |
vmselect /select/multitenant/prometheus |
클러스터 전체 집계 조회 |
remoteWrite.url |
vminsert /insert/0/prometheus |
ALERTS 메트릭 기록 (/api/v1/write 자동 부착) |
notifier.url |
alertmanager:9093 | 알림 발송 |
인증 — 내부 서비스
vmalert는 내부 서비스이므로 vmselect multitenant 엔드포인트에 직접 연결한다(vmauth JWT 미경유). 사용자/외부 접근만 vmauth를 거친다.
vmauth 경유가 필요하면 datasource를 vmauth(
:8427)로 바꾸고, Keycloak service-account 토큰(bearer)을 datasource 인증에 설정한다.unauthorized_user(accountID 0)만으로는 전체 클러스터 메트릭을 볼 수 없으므로 multitenant 또는 적절한vm_access토큰이 필요하다.
알림 규칙 (server.config.alerts)
클러스터 헬스 8종: NodeDown, NodeHighCPU, NodeHighMemory, NodeDiskPressure, PodCrashLooping, PodNotReady, DeploymentReplicasMismatch, PVCFillingUp. 평가 주기 30s.
3. 의존 관계
vmselect(조회) · vminsert(기록) · alertmanager(발송) · kube-state-metrics/node-exporter(규칙이 참조하는 메트릭 소스)
4. 검증
kubectl port-forward -n monitoring svc/vmalert-victoria-metrics-alert 8880:8880
curl -s http://localhost:8880/api/v1/rules | jq '.data.groups[].name'