억제 규칙 구성

억제 규칙 구성 (Configure inhibition rules)

억제 규칙(inhibition rules)은 일치하는 라벨 값을 가진 소스 알림이 이미 발동 중일 때 대상 알림의 알림을 억제해요. 이는 근본 원인 알림이 의존 알림을 중복으로 만들 때 소음을 줄여줘요. 예를 들어 노드가 다운(소스)되면 그 노드에서 실행 중인 모든 서비스 알림(대상)을 억제할 수 있어요. 이 기능은 Grafana 13 이상에서 사용할 수 있어요.

출처: 문서

본문

Note: 억제 규칙은 특정 Alertmanager에 지정되며 그 Alertmanager가 관리하는 알림에 대해서만 알림을 억제해요.

Caution: 억제 규칙은 Prometheus Alertmanager 또는 Mimir에서 가져온 구성과의 호환성을 위해 설계됐어요. 의도적으로 Grafana에 전용 관리 UI가 없어요. 신중히 구성하지 않으면 억제 규칙이 알림을 조용히 억제해 문제 감지를 어렵게 만들 수 있어요. 대부분의 억제 사용 사례에는 silences 또는 mute timings를 고려하세요.

억제 규칙 vs silence

억제 규칙과 silence 모두 알림을 억제하지만, 핵심 차이는 억제 규칙이 다른 알림의 존재에 기반해 자동으로 알림을 억제하는 반면, silence는 다른 알림과 무관하게 고정된 시간 창 동안 알림을 억제한다는 점이에요.

Inhibition rule Silence
Trigger 일치하는 소스 알림이 발동 중일 때 활성 구성된 시간 창 동안 활성
Duration 소스 알림이 발동하는 동안 지속 고정된 시작·종료 시간
Setup 영구 구성으로 정의 발생별로 수동 생성

억제 규칙 관리

억제 규칙은 Grafana App Platform API로 관리해요. 억제 규칙을 만들거나 편집하는 전용 UI는 없어요. API 리소스는:

  • Group: notifications.alerting.grafana.app
  • Version: v1beta1
  • Resource: inhibitionrules

Caution: 억제 규칙 API는 베타(v1beta1)이며 변경될 수 있어요. 억제 규칙은 Prometheus Alertmanager에서도 지원돼요. 외부 Alertmanager 설정은 "Configure Alertmanager" 문서를 참고하세요.

억제 규칙 스키마

Field Required Description
name Yes 억제 규칙의 고유 이름. 생성 후 변경 불가.
source_matchers Yes 소스(억제하는) 알림을 식별하는 하나 이상의 매처.
target_matchers Yes 대상(억제되는) 알림을 식별하는 하나 이상의 매처.
equal No 억제가 적용되려면 소스·대상 알림 모두에서 같은 값을 가져야 하는 라벨.

매처 형식

Field Description
label 일치시킬 라벨의 이름.
type 일치 연산자. =, !=, =~, !~ 중 하나.
value 일치시킬 값. =~!~의 경우 정규식.
Operator Description
= 라벨이 값과 같은 알림 선택.
!= 라벨이 값과 같지 않은 알림 선택.
=~ 라벨이 정규식과 일치하는 알림 선택.
!~ 라벨이 정규식과 일치하지 않는 알림 선택.

equal 필드

equal이 지정되면 나열된 각 라벨에 대해 소스·대상 알림이 같은 값을 가질 때만 억제가 적용돼요. 예를 들어 equal: [cluster]를 설정하면 한 클러스터의 알림이 같은 클러스터의 알림만 억제해요. equal을 생략하면 source_matchers와 일치하는 발동 중인 소스 알림이 라벨 값과 무관하게 일치하는 모든 대상 알림을 억제해요. 누락된 라벨과 빈 값 라벨은 equal 매칭 목적상 동등하게 처리돼요.

예제: 경고 알림 억제

{
  "name": "critical-inhibits-warnings",
  "source_matchers": [{ "label": "severity", "type": "=", "value": "critical" }],
  "target_matchers": [{ "label": "severity", "type": "=", "value": "warning" }],
  "equal": ["cluster", "namespace"]
}
  • 소스 매처는 critical 알림을 선택해요. 하나가 발동하면 규칙이 활성화돼요.
  • 대상 매처는 warning 알림을 선택해요. 규칙은 소스 알림이 발동하는 동안 이들을 억제해요.
  • equal 필드는 소스와 대상이 같은 clusternamespace 라벨 값을 공유할 때만 억제가 적용되도록 보장해요.

억제 규칙과 관리형 라우트

Alertmanager는 여러 라우팅 트리를 제공할 수 있어요: 기본 Grafana 관리 라우트와 Prometheus Alertmanager 또는 Mimir 구성에서 가져온 라우트. 억제 규칙은 생성 방식에 따라 다르게 동작해요:

  • Grafana 관리 규칙: API를 통해 생성되며 전체 Alertmanager에 적용돼요. 가져온 라우트를 포함한 모든 라우트가 처리하는 알림과 일치할 수 있어요.
  • 가져온 규칙: 가져온 Alertmanager 구성에서 왔으며 해당 가져온 라우트가 처리하는 알림으로 범위가 제한돼요. Grafana는 각 가져온 규칙을 자체 가져온 라우트로 제한하는 내부 라벨 매처를 추가하므로, 가져온 규칙은 다른 라우트를 통과하는 알림을 억제할 수 없어요.

여러 가져온 구성에 걸쳐 알림을 억제하려면 가져온 구성에 포함된 억제 규칙에 의존하기보다 API를 통해 Grafana 관리 규칙을 생성하세요.

더 알아보기 (Learn more)