# vmalert 배포 (알림 규칙 평가 엔진) PromQL 알림 규칙을 주기적으로 평가하고, 발생한 알림을 Alertmanager로 전송한다. ALERTS 메트릭은 다시 VictoriaMetrics에 기록한다. ## 1. 배포 방법 ```sh 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. 검증 ```sh kubectl port-forward -n monitoring svc/vmalert-victoria-metrics-alert 8880:8880 curl -s http://localhost:8880/api/v1/rules | jq '.data.groups[].name' ```