

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Grafana 버전 10에서의 알림
<a name="v10-alerts"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

Grafana v10을 사용하는 경우 Amazon Managed Grafana에는 검색 가능한 단일 보기에서 알림 정보를 중앙 집중화하는 업데이트된 알림 시스템인 *Grafana 알림*에 대한 액세스가 포함되어 있습니다. Grafana 알림은 Grafana v8에서 선택적 기능으로 도입되었으며 GrafanaLabs는 버전 11에서 레거시 알림을 제거한다고 발표했습니다.

**참고**  
이 설명서에서는 Grafana 알림을 다룹니다. 레거시 알림에 대한 자세한 내용은 [클래식 대시보드 알림](old-alerts-overview.md) 섹션을 참조하세요.

Grafana 알림을 사용하면 시스템 문제가 발생한 후 바로 문제를 파악할 수 있습니다.

수신 지표 데이터 또는 로그 항목을 모니터링하고 특정 이벤트 또는 상황을 감시하도록 알림 시스템을 설정한 다음, 해당 항목이 발견되면 알림을 보냅니다.

그러면 수동 모니터링이 필요하지 않으며 시스템 중단 또는 주요 인시던트로 이어질 수 있는 변경에 대한 1차 방어선을 제공할 수 있습니다.

Grafana 알림을 사용하면 데이터가 저장된 위치에 관계없이 여러 데이터 소스에서 쿼리 및 표현식을 생성하여 데이터를 결합하고 새롭고 고유한 방식으로 지표 및 로그에 대한 알림을 받을 수 있는 유연성을 제공합니다. 그런 다음, 단일 통합 보기에서 알림을 생성 및 관리하고 조치를 취하며 문제를 신속하게 식별하고 해결하는 팀의 역량을 개선할 수 있습니다.

Mimir 및 Loki 알림 규칙을 사용하면 데이터에 더 가깝게 대규모로 알림 표현식을 실행할 수 있으며, 모두 이미 익숙한 Grafana UI로 관리됩니다.

**참고**  
레거시 Grafana 알림을 사용하는 이전 버전의 Grafana에서 마이그레이션하는 경우 [레거시 알림과 새 Grafana 알림 간 차이](v10-alerting-use-grafana-alerts.md#v10-alerting-diff-old-new)를 알면 도움이 될 수 있습니다.

## 주요 기능 및 이점
<a name="v10-alerting-key-features"></a>

**모든 알림에 대해 한 페이지 지원**

단일 Grafana 알림 페이지는 Grafana 관리형 알림과 Prometheus 호환 데이터 소스에 있는 알림을 모두 한 곳에 통합합니다.

**다차원 알림**

알림 규칙은 다차원 알림이라고 하는 알림 규칙당 여러 개의 개별 알림 인스턴스를 생성할 수 있으므로 단일 알림 규칙으로 전체 시스템에 대한 가시성을 확보할 수 있는 기능과 유연성을 제공합니다. 쿼리에 레이블을 추가하여 모니터링 중인 구성 요소를 지정하고 단일 알림 규칙에 대해 여러 알림 인스턴스를 생성함으로서 이를 지원합니다. 예를 들어 클러스터의 각 서버를 모니터링하려는 경우 다차원 알림은 각 CPU에 알림을 보내는 반면 표준 알림은 전체 서버에 알림을 보냅니다.

**경로 알림**

정의한 레이블에 따라 각 알림 인스턴스를 특정 연락 지점으로 라우팅합니다. 알림 정책은 알림이 연락 지점으로 라우팅되는 위치, 시간 및 방법에 대한 규칙 세트입니다.

**무음 알림**

무음은 지정된 기간에만 지속되면서 알림의 생성을 중지합니다. 무음을 사용하면 하나 이상의 알림 규칙에서 영구 알림 수신을 중지할 수 있습니다. 특정 기준에 따라 알림을 부분적으로 일시 중지할 수도 있습니다. 무음에는 조직 및 가시성을 높이기 위한 전용 섹션이 있으므로 기본 알림 보기를 어수선하게 하지 않고도 일시 중지된 알림 규칙을 스캔할 수 있습니다.

**음소거 타이밍**

음소거 타이밍은 정책에 대한 새 알림이 생성되거나 전송되지 않는 반복 간격입니다. 이를 사용하여 정기 유지 관리 기간과 같은 특정 기간 및 반복 기간에 알림이 실행되지 않도록 합니다.

무음과 마찬가지로 음소거 타이밍은 알림 규칙이 평가되지 않도록 하며 사용자 인터페이스에 알림 인스턴스가 표시되지 않도록 합니다. 이 기능은 알림 생성만 방지합니다.

## 알림 시스템 설계
<a name="v10-alerting-design"></a>

복잡한 IT 시스템을 모니터링하고 모든 것이 올바르게 실행되고 있는지 이해하는 것은 어려운 작업입니다. 따라서 효과적인 알림 관리 시스템을 설정하는 것은 비즈니스 결과에 영향을 미치기 전에 문제가 발생할 때 알려주는 데 필수적입니다.

작동하는 알림 관리 설정을 설계하고 구성하려면 시간이 걸립니다.

다음은 비즈니스를 위한 효과적인 알림 관리 설정을 생성하는 방법에 대한 몇 가지 팁입니다.

**모니터링하고 알림을 보내려는 비즈니스의 주요 지표는 무엇인가요?**
+ 수신자가 무시하는 사소하거나 빈번한 이벤트가 아니라 알아야 할 중요 이벤트를 찾습니다.
+ 즉각적인 주의 또는 개입이 필요한 대규모 이벤트에 대해서만 알림을 생성해야 합니다.
+ 수량보다 품질을 먼저 고려합니다.

**어떤 유형의 알림을 사용하시겠어요?**
+ Grafana 관리형 알림, Grafana Mimir이나 Loki 관리형 알림 또는 둘 다 선택합니다.

**알림 및 알림 전달을 어떻게 구성하시겠어요?**
+ 알림을 수신하도록 설정한 사람을 선별합니다. 통화 중인 사람이나 특정 Slack 채널에 보내는 방법을 고려합니다.
+ 알림 API 또는 코드(Terraform)로 알림을 사용하여 최대한 자동화합니다.

**알림 피로를 줄이려면 어떻게 해야 하나요?**
+ 무음, 음소거 타이밍 또는 알림 규칙 평가를 일시 중지하여 불필요한 알림를 방지합니다.
+ 알림 규칙을 지속적으로 조정하여 효과를 검토합니다. 중복되거나 효과적이지 않은 알림을 방지하려면 알림 규칙을 제거합니다.
+ 우선순위 및 심각도 수준을 신중하게 검토합니다.
+ 임계치 및 평가 규칙을 지속적으로 검토합니다.

## Grafana 알림 제한 사항
<a name="v10-alerting-limitations"></a>
+ 다른 시스템에서 규칙을 집계할 때 Grafana 알림 시스템은 사용 가능한 모든 Amazon Managed Service for Prometheus, Prometheus, Loki 및 Alertmanager 데이터 소스에서 규칙을 검색할 수 있습니다. 지원되는 다른 데이터 소스에서 규칙을 가져오지 못할 수 있습니다.

**Topics**
+ [주요 기능 및 이점](#v10-alerting-key-features)
+ [알림 시스템 설계](#v10-alerting-design)
+ [Grafana 알림 제한 사항](#v10-alerting-limitations)
+ [개요](v10-alerting-overview.md)
+ [알림 설정](v10-alerting-setup.md)
+ [알림 구성](v10-alerting-configure.md)
+ [알림 관리](v10-alerting-manage.md)

# 개요
<a name="v10-alerting-overview"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

막 시작했든 Grafana 알림에 대한 보다 숙련된 사용자이든, 알림을 생성, 관리 및 대응하고 문제를 신속하게 해결하는 팀의 역량을 개선하는 데 도움이 되는 기본 사항과 사용 가능한 기능을 자세히 알아봅니다.

## 원칙
<a name="v10-alerting-overview-principles"></a>

Prometheus 기반 알림 시스템에는 알림을 생성하는 알림 생성기와 알림을 수신하는 알림 수신기가 있습니다. 예를 들어, Prometheus는 알림 생성기이며 알림 규칙을 평가할 책임이 있는 반면, Alertmanager는 알림 수신기이며 실행 및 해결된 알림에 대한 알림의 그룹화, 억제, 무음 및 전송을 수행할 책임이 있습니다.

Grafana 알림은 알림 시스템을 설계하는 Prometheus 모델에 빌드됩니다. 여기에는 알림 규칙 예약 및 평가를 담당하는 내부 알림 생성기와 알림 그룹화, 금지, 무음 및 전송을 담당하는 내부 알림 수신기가 있습니다. Grafana 알림은 Prometheus 외에도 다른 많은 데이터 소스와 함께 작동해야 하기 때문에 Grafana는 Prometheus를 알림 생성기로 사용하지 않습니다. 그러나 Alertmanager를 알림 수신기로 사용합니다.

알림은 알림 수신기로 전송됩니다. 여기에서 라우팅, 그룹화, 금지, 무음 및 알림이 수행됩니다. Grafana 알림에서 기본 알림 수신기는 Grafana 내에 임베드된 Alertmanager이며 Grafana Alertmanager라고 합니다. 그러나 다른 Alertmanager도 사용할 수 있으며 이를 [외부 Alertmanager](v10-alerting-setup-alertmanager.md)라고 합니다.

## 기본 사항
<a name="v10-alerting-overview-fundamentals"></a>

다음에서는 Grafana 알림의 다양한 부분에 대한 개요를 제공합니다.

### 알림 규칙
<a name="v10-alerting-overview-alert-rules"></a>

알림 규칙은 알림이 실행되어야 하는 시기를 결정하는 기준 세트입니다. 하나 이상의 쿼리 및 표현식, 충족해야 하는 조건, 알림 규칙 평가 빈도를 결정하는 간격, 알림 실생을 위해 조건을 충족해야 하는 기간으로 구성됩니다.

알림 규칙은 해당 간격에 걸쳐 평가되며 각 알림 규칙은 한 번에 0개, 1개 또는 임의 수의 알림을 실행할 수 있습니다. 알림 규칙의 상태 조건은 가장 높은 심각도의 알림(`severe`)에 따라 결정되며, 이는 정상, 보류 중 또는 실행 중 하나일 수 있습니다. 예를 들어 알림 규칙의 알림 중 하나 이상이 실행 중인 경우 알림 규칙도 실행됩니다. 알림 규칙의 상태는 가장 최근 평가의 상태에 따라 결정됩니다. OK, Error 및 NoData일 수 있습니다.

알림 규칙의 매우 중요한 기능은 사용자 지정 주석과 레이블을 지원하는 것입니다. 이를 통해 요약 및 설명과 같은 추가 메타데이터를 사용하여 알림을 계측하고, 알림을 특정 알림 정책에 라우팅하는 레이블을 추가할 수 있습니다.

### 알림
<a name="v10-alerting-overview-alerts"></a>

알림은 레이블이라는 키/값 페어 세트로 고유하게 식별됩니다. 각 키는 레이블 이름이고 각 값은 레이블 값입니다. 예를 들어 한 알림에는 `foo=bar` 레이블이 있고 다른 알림에 `foo=baz` 레이블이 있을 수 있습니다. 알림에는 `foo=bar,bar=baz`와 같은 많은 레이블이 있을 수 있지만 `foo=bar,foo=baz`와 같은 동일한 레이블이 두 번 존재할 수 없습니다. 두 개의 알림에는 동일한 레이블이 있을 수 없으며, 두 개의 알림에 `foo=bar,bar=baz` 및 `foo=bar,bar=baz`와 같은 동일한 레이블이 있는 경우 알림 중 하나가 삭제됩니다. 알림 규칙의 조건이 더 이상 충족되지 않거나 알림 규칙이 삭제되면 알림이 해결됩니다.

Grafana 관리형 알림에서 알림은 정상, 보류 중, 알림, 데이터 없음 또는 오류 상태일 수 있습니다. Mimir 및 Loki와 같은 데이터 소스 관리형 알림에서 알림은 정상, 보류 중 및 알림일 수 있지만 NoData 또는 Error일 수는 없습니다.

### 연락 지점
<a name="v10-alerting-overview-contact-points"></a>

연락 지점은 알림이 전송되는 위치를 결정합니다. 예를 들어 이메일 주소, Slack, Grafana OnCall 또는 PagerDuty와 같은 인시던트 관리 시스템(IRM) 또는 웹후크로 알림을 보내는 연락 지점이 있을 수 있습니다.

연락 지점에서 전송되는 알림은 알림 템플릿을 사용하여 사용자 지정할 수 있습니다. 알림 템플릿을 사용하여 알림의 제목, 메시지 및 구조를 변경할 수 있습니다. 알림 템플릿은 개별 통합 또는 연락 지점에만 국한되지 않습니다.

### 알림 정책
<a name="v10-alerting-overview-notification-policies"></a>

알림 정책은 알림을 그룹화한 다음, 연락 지점으로 라우팅합니다. 알림 정책에서는 알림이 전송되는 시기와 알림을 반복해야 하는 빈도를 결정합니다.

알림은 레이블 매처를 사용하여 알림 정책과 일치합니다. 이는 알림의 레이블이 정확히 일치하거나, 정확히 일치하지 않거나, 일부 예상 텍스트를 포함하거나 포함하지 않는 경우 어설션되는 사람이 읽을 수 있는 표현식입니다. 예를 들어, `foo=bar` 매처는 `foo=bar` 레이블과 알림을 일치시키는 반면 `foo=~[a-zA-Z]+` 매처는 `[a-zA-Z]+` 정규식과 일치하는 값을 가진 foo라는 레이블과 알림을 일치시킵니다.

기본적으로 알림은 하나의 알림 정책과만 일치할 수 있습니다. 그러나 `continue` 기능 알림을 사용하면 여러 알림 정책과 동시에 일치하도록 할 수 있습니다. 알림 정책에 대한 자세한 내용은 [알림 정책](v10-alerting-explore-notifications-policies-details.md)을 참조하세요.

### 무음 및 음소거 타이밍
<a name="v10-alerting-overview-silences-and-mute-timings"></a>

무음 및 음소거 타이밍을 사용하면 특정 알림 또는 전체 알림 정책에 대한 알림을 일시 중지할 수 있습니다. 무음을 사용하여 알림 수정 작업을 하는 동안과 같이 임시로 알림을 일시 중지하고, 음소거 타이밍을 사용하여 정기적으로 예약된 유지 관리 기간 동안과 같이 정기적으로 알림을 일시 중지합니다.

**Topics**
+ [원칙](#v10-alerting-overview-principles)
+ [기본 사항](#v10-alerting-overview-fundamentals)
+ [데이터 소스 및 Grafana 알림](v10-alerting-overview-datasources.md)
+ [숫자 데이터에 대한 알림](v10-alerting-overview-numeric.md)
+ [레이블 및 주석](v10-alerting-overview-labels.md)
+ [알림 규칙 정보](v10-alerting-explore-rules.md)
+ [Alertmanager](v10-alerting-explore-alertmanager.md)
+ [연락 지점](v10-alerting-explore-contacts.md)
+ [알림](v10-alerting-explore-notifications.md)
+ [알림 고가용성](v10-alerting-explore-high-availability.md)

# 데이터 소스 및 Grafana 알림
<a name="v10-alerting-overview-datasources"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

Grafana 알림과 호환되는 여러 데이터 소스가 있습니다. 각 데이터 소스는 플러그인에 의해 지원됩니다. 평가 엔진이 백엔드에서 실행되므로 데이터 소스를 사용하여 규칙을 평가하려면 Grafana 알림에서 데이터 소스 플러그인이 *백엔드* 플러그인이어야 합니다. 또한 플러그인은 Grafana 알림과 호환되도록 지정해야 합니다.

데이터 소스는 시간이 지남에 따라 추가 및 업데이트됩니다. 다음 데이터 소스는 Grafana 알림과 호환되는 것으로 알려져 있습니다.
+ [Amazon CloudWatch 데이터 소스에 연결](using-amazon-cloudwatch-in-AMG.md)
+ [Azure Monitor 데이터 소스에 연결](using-azure-monitor-in-AMG.md)
+ [Amazon OpenSearch Service 데이터 소스에 연결](using-Amazon-OpenSearch-in-AMG.md)
+ [Google Cloud Monitoring 데이터 소스에 연결](using-google-cloud-monitoring-in-grafana.md)
+ [Graphite 데이터 소스에 연결](using-graphite-in-AMG.md)
+ [InfluxDB 데이터 소스에 연결](using-influxdb-in-AMG.md)
+ [Loki 데이터 소스에 연결](using-loki-in-AMG.md)
+ [Microsoft SQL Server 데이터 소스에 연결](using-microsoft-sql-server-in-AMG.md)
+ [MySQL 데이터 소스에 연결](using-mysql-in-AMG.md)
+ [OpenTSDB 데이터 소스에 연결](using-opentsdb-in-AMG.md)
+ [PostgreSQL 데이터 소스에 연결](using-postgresql-in-AMG.md)
+ [Amazon Managed Service for Prometheus 및 오픈 소스 Prometheus 데이터 소스에 연결](prometheus-data-source.md)
+ [Jaeger 데이터 소스에 연결](jaeger-data-source.md)
+ [Zipkin 데이터 소스에 연결](zipkin-data-source.md)
+ [Tempo 데이터 소스에 연결](tempo-data-source.md)
+ [테스트를 위한 TestData 데이터 소스 구성](testdata-data-source.md)

Amazon Managed Grafana의 데이터 소스 및 데이터 소스 플러그인에 대한 자세한 내용은 [데이터 원본에 연결](AMG-data-sources.md) 섹션을 참조하세요.

# 숫자 데이터에 대한 알림
<a name="v10-alerting-overview-numeric"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

이 주제에서는 Grafana가 시계열 데이터가 아닌 숫자에 대한 알림을 처리하는 방법을 설명합니다.

특정 데이터 소스 중에서 시계열이 아닌 숫자 데이터는 서버 측 표현식(SSE)로 전달되거나 직접 알림이 전달될 수 있습니다. 이렇게 하면 데이터 소스 내에서 처리와 결과 효율성을 개선할 수 있으며 알림 규칙을 단순화할 수도 있습니다. 시계열 데이터 대신 숫자 데이터에 대한 알림을 전달할 때 레이블이 지정된 각 시계열을 단일 숫자로 줄이지 않아도 됩니다. 대신 레이블이 지정된 번호가 대신 Grafana로 반환됩니다.

## 테이블 형식 데이터
<a name="v10-alerting-numeric-tabular"></a>

이 기능은 테이블 형식의 데이터를 쿼리하는 백엔드 데이터 소스에서 지원됩니다.
+ MySQL, Postgres, MSSQL 및 Oracle과 같은 SQL 데이터 소스.
+ Azure Kusto 기반 서비스: Azure Monitor(Logs), Azure Monitor(Azure Resource Graph), Azure Data Explorer.

Grafana 관리형 알림 또는 SSE를 사용하는 쿼리는 다음과 같은 경우 이러한 데이터 소스에서 숫자로 간주됩니다.
+ 데이터 소스 쿼리에서 '형식' 옵션이 '테이블'로 설정됩니다.
+ 쿼리에서 Grafana로 반환된 테이블 응답에는 숫자(예: int, double, float) 열 하나와 선택적으로 추가 문자열 열이 포함됩니다.

문자열 열이 있는 경우 해당 열은 레이블이 됩니다. 열 이름은 레이블 이름이 되고 각 행의 값은 해당 레이블의 값이 됩니다. 여러 행이 반환되는 경우 각 행은 레이블로 고유하게 식별되어야 합니다.

## 예제
<a name="v10-alerting-numeric-tabexample"></a>

'DiskSpace'라는 MySQL 테이블의 경우:


| Time | Host | 디스크 | PercentFree | 
| --- | --- | --- | --- | 
| 2021-June-7 | web1 | /etc | 3 | 
| 2021-June-7 | web2 | /var | 4 | 
| 2021-June-7 | web3 | /var | 8 | 
| ... | ... | ... | ... | 

시계열을 Grafana에 반환하지 않고 데이터 필터링을 정시에 쿼리할 수 있습니다. 예를 들어 여유 공간이 5% 미만일 때 호스트, 디스크당 트리거되는 알림은 다음과 같습니다.

```
SELECT Host , Disk , CASE WHEN PercentFree  < 5.0 THEN PercentFree  ELSE 0 END FROM ( 
       SELECT
          Host, 
          Disk, 
          Avg(PercentFree) 
       FROM DiskSpace
       Group By
          Host, 
          Disk 
       Where __timeFilter(Time)
```

이 쿼리는 Grafana에 대한 다음 테이블 응답을 반환합니다.


| Host | 디스크 | PercentFree | 
| --- | --- | --- | 
| web1 | /etc | 3 | 
| web2 | /var | 4 | 
| web3 | /var | 0 | 

이 쿼리를 알림 규칙의 **조건**으로 사용하면 0이 아닌 값에서 알림을 보냅니다. 따라서 다음 세 가지 알림 인스턴스가 생성됩니다.


| 레이블 | Status | 
| --- | --- | 
| \$1Host=web1,disk=/etc\$1 | 알림 | 
| \$1Host=web2,disk=/var\$1 | 알림 | 
| \$1Host=web3,disk=/var\$1 | 정상 | 

# 레이블 및 주석
<a name="v10-alerting-overview-labels"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

레이블 및 주석에는 알림에 대한 정보가 포함되어 있습니다. 레이블 및 주석은 모두 이름이 지정된 값 세트라는 동일한 구조를 사용하지만, 용도는 다릅니다. 레이블 또는 이와 동등한 주석의 예로 `alertname="test"`가 있습니다.

레이블 및 주석의 주요 차이는 레이블은 알림을 다른 모든 알림과 구분하는 데 사용되는 반면 주석은 기존 알림에 추가 정보를 추가하는 데 사용된다는 점입니다.

예를 들어 두 개의 높은 CPU 알림이 있습니다. `server1`에 대한 알림과 `server2`에 대한 알림입니다. 이 예제에서는 `server`라는 레이블을 사용합니다. 첫 번째 알림의 레이블은 `server="server1"`이고 두 번째 알림의 레이블은 `server="server2"`입니다. 그러나 `"The CPU usage for server1 is above 75%."`와 같이 각 알림에 대한 설명을 추가할 수 있습니다. 여기서 `server1` 및 `75%`는 서버의 이름 및 CPU 사용량으로 대체됩니다(이 방법을 알아보려면 [레이블 및 주석 템플릿 지정](v10-alerting-overview-labels-templating.md)의 설명서 참조). 이러한 종류의 설명은 주석으로 더 적합합니다.

## 레이블
<a name="v10-alerting-overview-labels-labels"></a>

레이블에는 알림을 식별하는 정보가 포함되어 있습니다. 레이블의 예로 `server=server1`이 있습니다. 각 알림에는 둘 이상의 레이블이 있을 수 있으며, 알림에 대한 전체 레이블 세트를 레이블 세트라고 합니다. 알림을 식별하는 레이블 세트입니다.

예를 들어 알림에 레이블 세트 `{alertname="High CPU usage",server="server1"}`이 있고, 다른 알림에 레이블 세트 `{alertname="High CPU usage",server="server2"}`가 있을 수 있습니다. `alertname` 레이블은 동일하지만 `server` 레이블은 다르기 때문에 이는 두 개의 개별 알림입니다.

알림에 대한 레이블 세트는 데이터 소스의 레이블, 알림 규칙의 사용자 지정 레이블 및 `alertname`과 같은 여러 예약 레이블의 조합입니다.

**사용자 지정 레이블**

사용자 지정 레이블은 알림 규칙의 추가 레이블입니다. 주석과 마찬가지로 사용자 지정 레이블에는 이름이 있어야 하며, 해당 값에는 알림이 실행될 때 평가되는 텍스트와 템플릿 코드의 조합이 포함될 수 있습니다. 사용자 지정 레이블을 템플릿으로 지정하는 방법에 대한 설명서는 [여기](v10-alerting-overview-labels-templating.md)에서 확인할 수 있습니다.

템플릿과 함께 사용자 지정 레이블을 사용하는 경우 알림 규칙의 연속 평가 사이에서 레이블 값이 변경되지 않도록 하는 것이 중요합니다. 변경될 경우 많은 수의 고유한 알림이 생성되기 때문입니다. 그러나 템플릿이 다른 알림에 대해 다른 레이블 값을 생성하는 것은 괜찮습니다. 예를 들어 사용자 지정 레이블에 쿼리 값을 넣지 마세요. 그러면 값이 변경될 때마다 새 알림 세트가 생성됩니다. 대신 주석을 사용합니다.

또한 알림에 대한 레이블 세트에 이름이 같은 레이블이 둘 이상 없는지 확인하는 것도 중요합니다. 사용자 지정 레이블의 이름이 데이터 소스의 레이블과 동일한 경우 해당 레이블을 대체합니다. 그러나 사용자 지정 레이블의 이름이 예약 레이블과 동일한 경우 사용자 지정 레이블은 알림에서 생략됩니다.

## Annotations
<a name="v10-alerting-overview-labels-annotations"></a>

주석은 기존 알림에 추가 정보를 추가하는 이름 지정된 페어입니다. Grafana에는 `description`, `summary`, `runbook_url`, `dashboardUId`, `panelId`와 같은 여러 추천 주석이 있습니다. 사용자 지정 레이블과 마찬가지로 주석에는 이름이 있어야 하며, 해당 값에는 알림이 실행될 때 평가되는 텍스트와 템플릿 코드의 조합이 포함될 수 있습니다. 주석에 템플릿 코드가 포함된 경우 알림이 실행되면 템플릿이 한 번 평가됩니다. 알림이 해결되더라도 재평가되지 않습니다. 주석을 템플릿으로 지정하는 방법에 대한 설명서는 [여기](v10-alerting-overview-labels-templating.md)에서 확인할 수 있습니다.

**Topics**
+ [레이블](#v10-alerting-overview-labels-labels)
+ [Annotations](#v10-alerting-overview-labels-annotations)
+ [레이블 일치 작동 방식](v10-alerting-overview-labels-matching.md)
+ [Grafana 알림의 레이블](v10-alerting-overview-labels-alerting.md)
+ [레이블 및 주석 템플릿 지정](v10-alerting-overview-labels-templating.md)

# 레이블 일치 작동 방식
<a name="v10-alerting-overview-labels-matching"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

레이블 및 레이블 매처를 사용하여 알림 규칙을 알림 정책 및 무음에 연결합니다. 이를 통해 매우 유연하게 알림 인스턴스를 관리하고, 이를 처리해야 하는 정책과 무음 알림을 지정할 수 있습니다.

레이블 매처는 **레이블**, **값** 및 **연산자**와 같은 세 개의 개별 부분으로 구성됩니다.
+ **레이블** 필드는 일치시킬 레이블의 이름입니다. 레이블 이름과 정확히 일치해야 합니다.
+ **값** 필드는 지정된 **레이블** 이름의 해당 값과 일치합니다. 일치 여부는 **연산자** 값에 따라 다릅니다.
+ **연산자** 필드는 레이블 값과 일치하는 연산자입니다. 사용 가능한 연산자는 다음과 같습니다.


| 연산자 | 설명 | 
| --- | --- | 
| `=` | 값과 정확히 같은 레이블을 선택합니다. | 
| `!=` | 값과 같지 않은 레이블을 선택합니다. | 
| `=~` | 값과 정규식으로 일치하는 레이블을 선택합니다. | 
| `!~` | 값과 정규식으로 일치하지 않는 레이블을 선택합니다. | 

여러 레이블 매처를 사용하는 경우 AND 논리 연산자를 사용하여 결합됩니다. 즉, 규칙을 정책에 연결하려면 모든 매처가 일치해야 합니다.

## 예제
<a name="v10-alerting-overview-labels-matching-ex"></a>

알림에 대해 다음 레이블 세트를 정의하는 경우:

```
{ foo=bar, baz=qux, id=12 }
```

다음과 같습니다.
+ `foo=bar`로 정의된 레이블 매처가 이 알림 규칙과 일치합니다.
+ `foo!=bar`로 정의된 레이블 매처가 이 알림 규칙과 일치하지 *않습니다*.
+ `id=~[0-9]+`로 정의된 레이블 매처가 이 알림 규칙과 일치합니다.
+ `baz!~[0-9]+`로 정의된 레이블 매처가 이 알림 규칙과 일치합니다.
+ `foo=bar` 및 `id=~[0-9]+`로 정의된 레이블 매처 두 개가 이 알림 규칙과 일치합니다.

## 레이블 제외
<a name="v10-alerting-overview-labels-matching-exclude"></a>

레이블을 제외하도록 레이블 매처를 작성할 수도 있습니다.

다음은 `team` 레이블을 제외하는 방법을 보여주는 예제입니다. 이러한 값 중에서 선택하여 레이블을 제외할 수 있습니다.
+ `team=""`
+ `team!~.+`
+ `team=~^$`

# Grafana 알림의 레이블
<a name="v10-alerting-overview-labels-alerting"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

이 주제에서는 레이블이 알림의 기본 구성 요소인 이유를 설명합니다.
+ 알림에 대한 전체 레이블 세트는 Grafana 알림 내에서 알림을 고유하게 식별합니다.
+ Alertmanager는 레이블을 사용하여 알림 정책의 무음 및 알림 그룹에 대한 알림을 매칭합니다.
+ 알림 UI에는 해당 규칙 평가 중에 생성된 모든 알림 인스턴스의 레이블이 표시됩니다.
+ 연락 지점에서는 레이블에 액세스하여 알림을 생성시키는 알림 관련 정보가 포함된 알림을 동적으로 생성할 수 있습니다.
+ [알림 규칙](v10-alerting-configure.md)에 레이블을 추가할 수 있습니다. 레이블은 수동으로 구성 가능하며 템플릿 함수를 사용하고 다른 레이블을 참조할 수 있습니다. 알림 규칙에 추가된 레이블은 레이블 간 충돌이 발생하는 경우 우선합니다(Grafana 예약 레이블의 경우 제외, 자세한 내용은 아래 참조).

## 외부 Alertmanager 호환성
<a name="v10-alerting-overview-labels-alerting-external"></a>

Grafana의 기본 제공 Alertmanager는 유니코드 레이블 키와 값을 모두 지원합니다. 외부 Prometheus Alertmanager를 사용하는 경우 레이블 키는 해당 [데이터 모델](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels)과 호환되어야 합니다. 즉, 레이블 키에는 **ASCII 문자**, **숫자**, **밑줄** 및 일치 정규식 `[a-zA-Z_][a-zA-Z0-9_]*`만 포함되어야 합니다. 유효하지 않은 문자는 다음 규칙에 따라 외부 Alertmanager로 전송되기 전에 Grafana 알림 엔진으로 제거되거나 대체됩니다.
+ `Whitespace`는 제거됩니다.
+ `ASCII characters`는 `_`로 대체됩니다.
+ `All other characters`는 소문자 16진수 표현으로 대체됩니다. 첫 번째 문자인 경우 `_` 접두사가 붙습니다.

**참고**  
여러 레이블 키가 동일한 값으로 새니타이징 처리되는 경우 중복 항목에는 원본 레이블의 짧은 해시가 접미사로 추가됩니다.

## Grafana 예약 레이블
<a name="v10-alerting-overview-labels-alerting-reserved"></a>

**참고**  
접두사가 `grafana_`인 레이블은 Grafana에서 특별한 용도로 예약됩니다. 수동으로 구성된 레이블이 `grafana_`로 시작하는 경우 충돌 시 덮어쓸 수 있습니다.

Grafana 예약 레이블은 수동으로 구성된 레이블과 동일한 방식으로 사용할 수 있습니다. 현재 사용 가능한 예약 레이블 목록은 다음과 같습니다.


| Label | 설명 | 
| --- | --- | 
| grafana\$1folder | 알림이 포함된 폴더의 제목. | 

# 레이블 및 주석 템플릿 지정
<a name="v10-alerting-overview-labels-templating"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

템플릿을 사용하여 쿼리 및 표현식의 데이터를 레이블 및 주석에 포함할 수 있습니다. 예를 들어, 쿼리 값을 기반으로 알림의 심각도 레이블을 설정하거나 요약 주석에서 쿼리의 인스턴스 레이블을 사용하여 CPU 사용량이 많은 서버를 파악할 수 있습니다.

모든 템플릿은 [text/template](https://pkg.go.dev/text/template)으로 작성해야 합니다. 레이블을 템플릿으로 사용하든 주석을 템플릿으로 사용하든 관계없이 템플릿으로 지정하는 레이블 또는 주석 내에 각 템플릿을 인라인으로 작성해야 합니다. 즉, 레이블 및 주석 간에 템플릿을 공유할 수 없으며 대신 템플릿을 사용하려는 모든 위치에 템플릿을 복사해야 합니다.

각 템플릿은 알림 규칙이 평가될 때마다 평가되며 모든 알림에 대해 별도로 평가됩니다. 예를 들어 알림 규칙에 템플릿 요약 주석이 있고 알림 규칙에 10개의 실행 알림이 있는 경우 템플릿은 각 알림에 대해 10회 실행됩니다. 템플릿에서 고가의 계산을 최대한 피하도록 해야 합니다.

## 예제
<a name="v10-alerting-overview-labels-templating-examples"></a>

text/template에 대한 전체 자습서를 작성하는 대신 다음 예제에서는 템플릿에 대해 확인된 일반적인 사용 사례를 보여주려고 시도합니다. 이러한 예제를 그대로 사용하거나 사용 사례에 맞게 필요에 따라 조정할 수 있습니다. text/template을 작성하는 방법에 대한 자세한 내용은 [text/template](https://pkg.go.dev/text/template) 설명서를 참조하세요.

**모든 레이블 인쇄, 쉼표로 구분됨**

쉼표로 구분된 모든 레이블을 인쇄하려면 `$labels` 변수를 인쇄합니다.

```
{{ $labels }}
```

예를 들어 레이블 `alertname=High CPU usage`, `grafana_folder=CPU alerts`, `instance=server1`인 알림에서는 다음과 같이 인쇄됩니다.

```
alertname=High CPU usage, grafana_folder=CPU alerts, instance=server1
```

**참고**  
클래식 조건을 사용하는 경우 `$labels`에는 쿼리의 레이블이 포함되지 않습니다. 자세한 내용은 [\$1labels 변수](#v10-alerting-overview-labels-templating-the-labels-variable)를 참조하세요.

**모든 레이블 인쇄, 줄당 하나씩**

줄당 하나씩 모든 레이블을 인쇄하려면 `range`를 사용하여 각 키/값 페어를 반복하고 개별적으로 인쇄합니다. 여기서 `$k`는 이름, `$v`는 현재 레이블의 값을 나타냅니다.

```
{{ range $k, $v := $labels -}}
{{ $k }}={{ $v }}
{{ end }}
```

예를 들어 레이블 `alertname=High CPU usage`, `grafana_folder=CPU alerts`, `instance=server1`인 알림에서는 다음과 같이 인쇄됩니다.

```
alertname=High CPU usage
grafana_folder=CPU alerts
instance=server1
```

**참고**  
클래식 조건을 사용하는 경우 `$labels`에는 쿼리의 레이블이 포함되지 않습니다. 자세한 내용은 [\$1labels 변수](#v10-alerting-overview-labels-templating-the-labels-variable)를 참조하세요.

**개별 레이블 인쇄**

개별 레이블을 인쇄하려면 `$labels` 변수와 함께 `index` 함수를 사용합니다.

```
The host {{ index $labels "instance" }} has exceeded 80% CPU usage for the last 5 minutes
```

예를 들어 레이블이 `instance=server1`인 알림에서는 다음과 같이 인쇄됩니다.

```
The host server1 has exceeded 80% CPU usage for the last 5 minutes
```

**참고**  
클래식 조건을 사용하는 경우 `$labels`에는 쿼리의 레이블이 포함되지 않습니다. 자세한 내용은 [\$1labels 변수](#v10-alerting-overview-labels-templating-the-labels-variable)를 참조하세요.

**쿼리 값 인쇄**

인스턴트 쿼리의 값을 인쇄하려면 `index` 함수 및 `$values` 변수를 사용하여 참조 ID를 인쇄할 수 있습니다.

```
{{ index $values "A" }}
```

예를 들어 값 81.2345를 반환하는 인스턴트 쿼리의 경우 다음과 같이 인쇄됩니다.

```
81.2345
```

범위 쿼리의 값을 인쇄하려면 먼저 축소 표현식을 사용하여 시간 시리즈에서 인스턴트 벡터로 축소해야 합니다. 그런 다음, 대신 참조 ID를 사용하여 축소 표현식 결과를 인쇄할 수 있습니다. 예를 들어, 축소 표현식이 평균 A를 사용하고 참조 ID B가 있는 경우 다음을 작성합니다.

```
{{ index $values "B" }}
```

**쿼리의 가독 가능한 값 인쇄**

인스턴트 쿼리의 가독 가능한 값을 인쇄하려면 `humanize` 함수를 사용합니다.

```
{{ humanize (index $values "A").Value }}
```

예를 들어 값 81.2345를 반환하는 인스턴트 쿼리의 경우 다음과 같이 인쇄됩니다.

```
81.234
```

범위 쿼리의 가독 가능한 값을 인쇄하려면 먼저 시계열에서 표현식을 줄인 인스턴트 벡터로 줄여야 합니다. 그런 다음, 대신 참조 ID를 사용하여 축소 표현식 결과를 인쇄할 수 있습니다. 예를 들어, 축소 표현식이 평균 A를 사용하고 참조 ID B가 있는 경우 다음을 작성합니다.

```
{{ humanize (index $values "B").Value }}
```

**쿼리 값을 백분율로 인쇄**

인스턴트 쿼리의 값을 백분율로 인쇄하려면 `humanizePercentage` 함수를 사용합니다.

```
{{ humanizePercentage (index $values "A").Value }}
```

이 함수는 0에서 1 사이의 십진수 값을 예상합니다. 대신 0에서 100 사이의 십진수 값인 경우 쿼리에서 또는 수학 표현식을 사용하여 값을 100으로 나눌 수 있습니다. 쿼리가 범위 쿼리인 경우 먼저 시계열에서 표현식을 줄인 인스턴트 벡터로 줄여야 합니다.

**쿼리 값에서 심각도 설정**

쿼리 값에서 심각도 레이블을 설정하려면 if 문 및 초과 비교 함수를 사용합니다. text/template에서는 강제 유형을 지원하지 않으므로 `$values`에 대한 비교를 수행할 때는 소수점(`80.0`, `50.0`, `0.0` 등)을 사용해야 합니다. 지원되는 모든 비교 함수 목록은 [여기](https://pkg.go.dev/text/template#hdr-Functions)에서 확인할 수 있습니다.

```
{{ if (gt $values.A.Value 80.0) -}}
high
{{ else if (gt $values.A.Value 50.0) -}}
medium
{{ else -}}
low
{{- end }}
```

**클래식 조건에서 모든 레이블 인쇄**

클래식 조건을 사용하는 경우 `$labels`를 사용하여 쿼리에서 레이블을 인쇄할 수 없으며 대신 `$values`를 사용해야 합니다. 이유는, 클래식 조건은 1차원 동작을 적용하기 위해 이러한 레이블을 삭제하기 때문입니다(알림 규칙당 최대 1개의 알림). 클래식 조건이 이러한 레이블을 삭제하지 않은 경우 많은 시계열을 반환한 쿼리는 알림 규칙이 평가될 때마다 레이블이 변경될 때마다 실행과 해결 간에 알림이 계속 충돌합니다.

대신 `$values` 변수에는 실행 중인 모든 조건에 대해 모든 시계열의 축소된 값이 포함됩니다. 예를 들어 두 개의 조건을 포함하는 클래식 조건 B 및 두 개의 시계열을 반환하는 쿼리 A가 있는 경우 `$values`에는 `B0`, `B1`, `B2`, `B3`이 포함됩니다. 클래식 조건 B에 조건이 하나뿐인 경우 `$values`에는 `B0` 및 `B1`만 포함됩니다.

모든 실행 시계열의 모든 레이블을 인쇄하려면 다음 템플릿을 사용합니다(다른 경우 정규 표현식에서 `B`를 클래식 조건의 참조 ID로 바꿈).

```
{{ range $k, $v := $values -}}
{{ if (match "B[0-9]+" $k) -}}
{{ $k }}: {{ $v.Labels }}{{ end }}
{{ end }}
```

예를 들어 다음과 같이 단일 조건을 초과하는 두 시계열의 클래식 조건이 인쇄됩니다.

```
B0: instance=server1
B1: instance=server2
```

클래식 조건에 둘 이상의 조건이 있고 시계열이 동시에 여러 조건을 초과하는 경우 초과된 각 조건에 대해 해당 레이블이 중복됩니다.

```
B0: instance=server1
B1: instance=server2
B2: instance=server1
B3: instance=server2
```

고유한 레이블을 인쇄해야 하는 경우 대신 알림 규칙을 1차원에서 다차원으로 변경하는 것이 좋습니다. 클래식 조건을 축소 및 수학 표현식으로 바꾸면 됩니다.

**클래식 조건에서 모든 값 인쇄**

클래식 조건의 모든 값을 인쇄하려면 이전 예제를 사용하고 여기서 `$v.Labels`를 `$v.Value`로 바꿉니다.

```
{{ range $k, $v := $values -}}
{{ if (match "B[0-9]+" $k) -}}
{{ $k }}: {{ $v.Value }}{{ end }}
{{ end }}
```

예를 들어 다음과 같이 단일 조건을 초과하는 두 시계열의 클래식 조건이 인쇄됩니다.

```
B0: 81.2345
B1: 84.5678
```

클래식 조건에 둘 이상의 조건이 있고 시계열이 동시에 여러 조건을 초과하는 경우 다음과 같이 `$values`에는 모든 조건의 값이 포함됩니다.

```
B0: 81.2345
B1: 92.3456
B2: 84.5678
B3: 95.6789
```

## 변수
<a name="v10-alerting-overview-labels-templating-variables"></a>

레이블 및 주석을 템플릿으로 지정할 때 다음 변수를 사용할 수 있습니다.

### 레이블 변수
<a name="v10-alerting-overview-labels-templating-the-labels-variable"></a>

`$labels` 변수에는 쿼리의 모든 레이블이 포함됩니다. 예를 들어, 모든 서버의 CPU 사용량을 반환하는 쿼리가 있고 서버 중 하나에서 지난 5분 동안 CPU 사용량이 80%를 초과하면 실행되는 알림 규칙이 있다고 가정합니다. CPU 사용량이 높은 서버를 알려주는 요약 주석을 알림에 추가하려고 합니다. `$labels` 변수를 사용하면 다음과 같이 사람이 읽을 수 있는 문장을 인쇄하는 템플릿을 작성할 수 있습니다.

```
CPU usage for {{ index $labels "instance" }} has exceeded 80% for the last 5 minutes
```

**참고**  
클래식 조건을 사용하는 경우 `$labels`에는 쿼리의 레이블이 포함되지 않습니다. 클래식 조건은 1차원 동작을 적용하기 위해 이러한 레이블을 삭제합니다(알림 규칙당 최대 1개의 알림). 템플릿의 쿼리에서 레이블을 사용하려면 이전 *클래식 조건 예제에서 모든 레이블 인쇄*를 따릅니다.

### 값 변수
<a name="v10-alerting-overview-labels-templating-the-value-variable"></a>

`$value` 변수는 모든 인스턴트 쿼리의 레이블 및 값, 임계치, 축소 및 수학 표현식, 알림 규칙의 클래식 조건을 포함하는 문자열입니다. 범위 쿼리 결과는 포함되지 않습니다. 10s\$110,000s의 행 또는 지표를 반환할 수 있기 때문입니다. 이에 해당하는 경우 특히 대규모 쿼리에서 단일 알림이 10s의 MB 메모리를 사용할 수 있으며 Grafana에서 매우 빠르게 메모리 부족 현상이 발생하빈다.

요약에서 `$value` 변수를 인쇄하려면 다음과 같이 작성합니다.

```
CPU usage for {{ index $labels "instance" }} has exceeded 80% for the last 5 minutes: {{ $value }}
```

결과는 다음과 비슷합니다.

```
CPU usage for instance1 has exceeded 80% for the last 5 minutes: [ var='A' labels={instance=instance1} value=81.234 ]
```

여기서 `var='A'`는 참조 ID A를 사용하는 인스턴트 쿼리를 참조하고, `labels={instance=instance1}`은 레이블을 참조하며, `value=81.234`는 지난 5분 동안의 평균 CPU 사용량을 참조합니다.

전체 문자열 대신 문자열의 일부만 인쇄하려면 `$values` 변수를 사용합니다. `$value`와 동일한 정보를 포함하지만, 구조화된 테이블에서 원하는 텍스트와 일치하는 정규식을 훨씬 쉽게 작성할 수 있습니다.

### 값 변수
<a name="v10-alerting-overview-labels-templating-the-values-variable"></a>

`$values` 변수는 모든 인스턴트 쿼리 및 표현식의 레이블과 부동 소수점 값을 포함하는 테이블이며, 참조 ID로 인덱싱됩니다.

참조 ID A를 사용하는 인스턴트 쿼리 값을 인쇄하려면 다음을 사용합니다.

```
CPU usage for {{ index $labels "instance" }} has exceeded 80% for the last 5 minutes: {{ index $values "A" }}
```

예를 들어 `instance=server1` 레이블이 포함된 알림과 값이 `81.2345`인 인스턴트 쿼리에서는 다음과 같이 인쇄됩니다.

```
CPU usage for instance1 has exceeded 80% for the last 5 minutes: 81.2345
```

참조 ID A에서의 쿼리가 인스턴트 쿼리가 아닌 범위 쿼리인 경우 참조 ID B를 사용하는 축소 표현식을 추가하고 `(index $values "B")`를 `(index $values "A")`로 바꿉니다.

```
CPU usage for {{ index $labels "instance" }} has exceeded 80% for the last 5 minutes: {{ index $values "B" }}
```

## 함수
<a name="v10-alerting-overview-labels-templating-functions"></a>

레이블 및 주석을 템플릿으로 지정할 때 다음 함수를 사용할 수 있습니다.

**args**

`args` 함수는 객체 목록을 arg0, arg1 등의 키가 포함된 맵으로 변환합니다. 이는 여러 인수를 템플릿으로 전달할 수 있도록 제공됩니다.

```
{{define "x"}}{{.arg0}} {{.arg1}}{{end}}{{template "x" (args 1 "2")}}
```

```
1 2
```

**externalURL**

`externalURL` 함수는 Grafana 서버의 외부 URL을 반환합니다.

```
{{ externalURL }}
```

```
https://example.com/grafana
```

**graphLink**

`graphLink` 함수는 지정된 표현식 및 데이터 소스에서 [Grafana 버전 10에서의 탐색](v10-explore.md)의 그래픽 보기 경로를 반환합니다.

```
{{ graphLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }}
```

```
/explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":false,"range":true}]
```

**humanize**

`humanize` 함수는 십진수를 가독 가능한 값으로 변환합니다.

```
{{ humanize 1000.0 }}
```

```
1k
```

**humanize1024**

`humanize1024`는 `humanize`와 비슷하게 작동하지만 1000이 아닌 1024를 밑으로 사용합니다.

```
{{ humanize1024 1024.0 }}
```

```
1ki
```

**humanizeDuration**

`humanizeDuration` 함수는 초 단위로 기간을 가독 가능한 값으로 변환합니다.

```
{{ humanizeDuration 60.0 }}
```

```
1m 0s
```

**humanizePercentage**

`humanizePercentage` 함수는 비율 값을 백분율로 표시하여 가독 가능한 값으로 변환합니다.

```
{{ humanizePercentage 0.2 }}
```

```
20%
```

**humanizeTimestamp**

`humanizeTimestamp` 함수는 Unix 타임스탬프를 가독 가능한 값으로 변환합니다.

```
{{ humanizeTimestamp 1577836800.0 }}
```

```
2020-01-01 00:00:00 +0000 UTC
```

**match**

`match` 함수는 정규식 패턴을 기준으로 텍스트를 일치시킵니다.

```
{{ match "a.*" "abc" }}
```

```
true
```

**pathPrefix**

`pathPrefix` 함수는 Grafana 서버의 경로를 반환합니다.

```
{{ pathPrefix }}
```

```
/grafana
```

**tableLink**

`tableLink` 함수는 지정된 표현식 및 데이터 소스에서 [Grafana 버전 10에서의 탐색](v10-explore.md)의 테이블 보기 경로를 반환합니다.

```
{{ tableLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }}
```

```
/explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":true,"range":false}]
```

**제목**

`title` 함수에서는 각 단어의 첫 번째 문자를 대문자로 표시합니다.

```
{{ title "hello, world!" }}
```

```
Hello, World!
```

**toLower**

`toLower` 함수는 모든 텍스트를 소문자로 반환합니다.

```
{{ toLower "Hello, world!" }}
```

```
hello, world!
```

**toUpper**

`toUpper` 함수는 모든 텍스트를 대문자로 반환합니다.

```
{{ toUpper "Hello, world!" }}
```

```
HELLO, WORLD!
```

**reReplaceAll**

`reReplaceAll` 함수는 정규식과 일치하는 텍스트를 대체합니다.

```
{{ reReplaceAll "localhost:(.*)" "example.com:$1" "localhost:8080" }}
```

```
example.com:8080
```

# 알림 규칙 정보
<a name="v10-alerting-explore-rules"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

알림 규칙은 알림 인스턴스 실행 여부를 결정하는 평가 기준 세트입니다. 규칙은 하나 이상의 쿼리와 표현식, 조건, 평가 빈도 및 실행을 시작하기 위해 조건이 충족되는 기간으로 구성됩니다.

쿼리 및 표현식에서는 평가할 데이터세트를 선택하는 반면, *조건*은 알림을 생성하기 위해 데이터에서 충족하거나 초과해야 하는 임계치를 설정합니다.

*간격*은 알림 규칙이 평가되는 빈도를 지정합니다. *기간*을 구성하면 조건을 충족해야 하는 기간을 나타냅니다. 또한 알림 규칙은 데이터가 없는 경우 알림 동작을 정의할 수 있습니다.

**Topics**
+ [알림 규칙 유형](v10-alerting-explore-rules-types.md)
+ [기록 규칙](v10-alerting-explore-rule-recording.md)
+ [쿼리 및 조건](v10-alerting-explore-rules-queries.md)
+ [알림 인스턴스](v10-alerting-rules-instances.md)
+ [네임스페이스, 폴더 및 그룹](v10-alerting-rules-grouping.md)
+ [알림 규칙 평가](v10-alerting-rules-evaluation.md)
+ [알림 규칙의 상태 조건 및 상태](v10-alerting-explore-state.md)
+ [알림 템플릿 지정](v10-alerting-rules-notification-templates.md)

# 알림 규칙 유형
<a name="v10-alerting-explore-rules-types"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

Grafana에서는 여러 알림 규칙 유형을 지원합니다. 각 알림 규칙 유형, 작동 방식을 자세히 알아보고 사용 사례에 가장 적합한 규칙을 결정합니다.

## Grafana 관리형 규칙
<a name="v10-alerting-explore-rule-types-grafana"></a>

Grafana 관리형 규칙은 가장 유연한 알림 규칙 유형입니다. 이를 통해 기존 데이터 소스의 데이터에 대해 작업을 취할 수 있는 알림을 생성할 수 있습니다.

여러 데이터 소스를 지원하는 것 외에도 [표현식](v10-panels-query-xform-expressions.md)을 추가하여 데이터를 변환하고 알림 조건을 표현할 수 있습니다.

Grafana 관리형 알림에서:
+ 알림 규칙은 하나 이상의 데이터 소스를 기반으로 Grafana 내에서 생성됩니다.
+ 알림 규칙은 Grafana 내에서 알림 규칙 평가 엔진에 의해 평가됩니다.
+ 알림은 내부 Grafana Alertmanager를 사용하여 전달됩니다.

**참고**  
또한 외부 Alertmanager를 사용하여 알림을 전달하도록 구성하거나 내부 및 외부 Alertmanager를 모두 사용할 수 있습니다. 자세한 내용은 [외부 Alertmanager 추가](v10-alerting-setup-alertmanager.md)를 참조하세요.

## 데이터 소스 관리형 규칙
<a name="v10-alerting-explore-rule-types-datasource"></a>

데이터 소스 관리형 알림 규칙을 생성하려면 호환되는 Prometheus 또는 Loki 데이터 소스가 있어야 합니다. 데이터 소스를 테스트하고 눈금자 API가 지원되는지 관찰하여 데이터 소스가 Grafana를 통한 규칙 생성을 지원하는지 확인할 수 있습니다.

데이터 소스 관리형 알림에서:
+ 알림 규칙은 데이터 소스 자체 내에 생성 및 저장됩니다.
+ 알림 규칙은 Prometheus 데이터를 기반으로만 생성할 수 있습니다.
+ 알림 규칙 평가 및 전송은 고가용성 및 내결함성을 위해 여러 노드에 분산됩니다.

## 알림 규칙 유형 선택
<a name="v10-alerting-explore-rule-types-choose"></a>

사용할 알림 규칙 유형을 선택할 때는 Grafana 관리형 알림 규칙 및 데이터 소스 관리형 알림 규칙 간 다음 비교를 고려하세요.


| 기능 | Grafana 관리형 알림 규칙 | Loki/Mimir 관리형 알림 규칙 | 
| --- | --- | --- | 
| 지원되는 데이터 소스의 데이터를 기반으로 알림 규칙 생성 | 예 | 아니요: Prometheus 데이터를 기반으로 하는 알림 규칙만 생성할 수 있습니다. 데이터 소스에서 눈금자 API가 활성화되어 있어야 합니다.  | 
| 데이터 소스 혼합 및 일치 | 예 | 아니요 | 
| 기록 규칙 지원 포함 | 아니요 | 예 | 
| 표현식을 추가하여 데이터 변환 및 알림 조건 설정 | 예 | 아니요 | 
| 알림 전달에서 이미지 사용 | 예 | 아니요 | 
| 규모 조정 | 리소스 집약도가 높고 데이터베이스에 의존하며 일시적인 오류가 발생할 수 있습니다. 세로 방향으로만 조정됩니다. | 데이터 소스 자체에 알림 규칙을 저장하고 '무한' 크기 조정을 허용합니다. 데이터 위치에서 알림 전달을 생성하고 전송합니다. | 
| 알림 규칙 평가 및 전달 | 알림 규칙 평가 및 전달은 Grafana 내에서, 외부 Alertmanager를 사용하여 또는 둘 다를 통해 수행됩니다. | 알림 규칙 평가 및 알림 전달이 분산됩니다(즉, 단일 장애 지점이 없음). | 

# 기록 규칙
<a name="v10-alerting-explore-rule-recording"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

*기록 규칙은 호환되는 Prometheus 또는 Loki 데이터 소스에만 사용할 수 있습니다.*

기록 규칙을 사용하면 자주 필요하거나 계산 비용이 많이 드는 표현식을 미리 계산하고, 해당 결과를 새로운 시계열 세트로 저장할 수 있습니다. 집계된 데이터에 대해 알림을 실행하거나 계산 비용이 많이 드는 표현식을 반복적으로 쿼리하는 대시보드가 있는 경우에 유용합니다.

이 새 시계열을 쿼리하는 것이 더 빠릅니다. 특히 대시보드를 새로 고칠 때마다 동일한 표현식을 쿼리하기 때문에 대시보드의 경우 더 빠릅니다.

Prometheus에서 [기록 규칙](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/)에 대해 자세히 알아보세요.

# 쿼리 및 조건
<a name="v10-alerting-explore-rules-queries"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

Grafana에서 쿼리는 MySQL 및 PostgreSQL과 같은 데이터베이스, Prometheus, InfluxDB 및 Graphite와 같은 시계열 데이터베이스, OpenSearch, Amazon CloudWatch, Azure Monitor 및 Google Cloud Monitoring과 같은 서비스를 포함하는 지원되는 데이터 소스에서 데이터를 가져오고 변환하는 데 중요한 역할을 합니다.

지원되는 데이터 소스에 대한 자세한 내용은 [데이터 소스 및 Grafana 알림](v10-alerting-overview-datasources.md) 섹션을 참조하세요.

쿼리를 실행하는 프로세스에는 데이터 소스 정의, 검색할 원하는 데이터 지정, 관련 필터 또는 변환 적용이 포함됩니다. 선택한 데이터 소스와 관련된 쿼리 언어 또는 구문은 이러한 쿼리를 작성하는 데 사용됩니다.

알림에서 측정하려는 데이터와 알림 규칙이 실행되기 전에 충족해야 하는 조건을 가져오도록 쿼리를 정의합니다.

알림 규칙은 측정하려는 데이터를 선택하는 하나 이상의 쿼리 및 표현식으로 구성됩니다.

쿼리 및 표현식에 대한 자세한 내용은 [데이터 쿼리 및 변환](v10-panels-query-xform.md) 섹션을 참조하세요.

## 데이터 소스 할당량
<a name="v10-alerting-explore-rules-queries-data-source-queries"></a>

Grafana의 쿼리는 사용 중인 데이터 소스 및 쿼리 언어에 따라 다양한 방식으로 적용될 수 있습니다. 각 데이터 소스의 쿼리 편집기는 고유한 기능을 활용하는 쿼리를 작성하는 데 도움이 되는 사용자 지정 사용자 인터페이스를 제공합니다.

쿼리 언어 간의 차이로 인해 각 데이터 소스 쿼리 편집기는 모양과 기능이 다릅니다. 데이터 소스에 따라 쿼리 편집기는 자동 완성 기능, 지표 이름, 변수 제안 또는 시각적 쿼리 빌드 인터페이스를 제공할 수 있습니다.

몇 가지 일반적인 유형의 쿼리 구성 요소는 다음과 같습니다.

**지표 또는 데이터 필드** - CPU 사용량, 네트워크 트래픽 또는 센서 수치와 같이 검색하려는 특정 지표 또는 데이터 필드를 지정합니다.

**시간 범위** - 지난 시간, 특정 날짜 또는 사용자 지정 시간 범위와 같이 데이터를 가져올 시간 범위를 정의합니다.

**필터** - 필터를 적용하여 특정 태그, 호스트 또는 애플리케이션별로 데이터를 필터링하는 등 특정 기준에 따라 데이터 범위를 좁힙니다.

**집계** - 데이터에 대한 집계를 수행하여 지정된 기간의 평균, 합계 또는 개수와 같은 지표를 계산합니다.

**그룹화** - 데이터를 특정 차원 또는 태그별로 그룹화하여 집계된 보기 또는 분석을 생성합니다.

**참고**  
Grafana에서는 템플릿 변수가 있는 알림 쿼리를 지원하지 않습니다. 자세한 내용은 Grafana Labs 포럼의 [여기](https://community.grafana.com/t/template-variables-are-not-supported-in-alert-queries-while-setting-up-alert/2514)에서 확인할 수 있습니다.

## 표현식 쿼리
<a name="v10-alerting-explore-rules-queries-expression-queries"></a>

Grafana에서 표현식은 데이터 소스의 쿼리된 데이터에 대한 계산, 변환 또는 집계를 수행하는 데 사용됩니다. 이를 통해 사용자 지정 지표를 생성하거나 수학적 연산, 함수 또는 논리적 표현식을 기반으로 기존 지표를 수정할 수 있습니다.

표현식 쿼리를 활용하여 사용자는 두 값 간의 백분율 변화 계산, 로그 또는 삼각 함수와 같은 함수 적용, 특정 시간 범위 또는 차원에 걸쳐 데이터 집계, 다양한 시나리오를 처리하기 위한 조건부 로직 구현과 같은 태스크를 수행할 수 있습니다.

알림에서는 Grafana 관리형 알림 규칙에 대한 표현식만 사용할 수 있습니다. 각 표현식에 대해 수학, 축소 및 리샘플링 표현식 중에서 선택할 수 있습니다. 이를 다차원 규칙이라고 합니다. 각 시리즈에 대해 별도의 알림을 생성하기 때문입니다.

또한 클래식 조건을 사용할 수 있습니다. 이 조건이 충족되면 단일 알림을 트리거하는 알림 규칙을 생성합니다. 따라서 Grafana는 여러 시리즈에 대한 알림 조건이 충족되더라도 단일 알림만 전송합니다.

**참고**  
클래식 조건은 주로 호환성을 위해 존재하므로 가능하면 피해야 합니다.

**축소**

선택한 시간 범위의 시계열 값을 단일 값으로 집계합니다.

**수학 연산**

시계열 및 숫자 데이터에 대해 자유 형식 수학 함수/연산을 수행합니다. 시계열 데이터를 사전 처리하거나 숫자 데이터에 대한 알림 조건을 정의하는 데 사용할 수 있습니다.

**리샘플링**

시간 범위를 새 타임스탬프 세트로 재정렬합니다. 서로 다른 데이터 소스의 시계열 데이터를 비교할 때 유용합니다. 그렇지 않으면 여기에서 타임스탬프가 정렬되지 않습니다.

**Threshold**

시계열 데이터가 임계치 조건과 일치하는지 확인합니다.

임계치 표현식을 사용하면 두 개의 단일 값을 비교할 수 있습니다. 조건이 false인 경우 `0`, 조건이 true인 경우 `1`을 반환합니다. 이제 다음과 같은 임계치 함수를 사용할 수 있습니다.
+ 초과(x > y)
+ 미만(x < y)
+ 범위 내(x > y1 AND x < y2)
+ 범위를 벗어남(x < y1 AND x > y2)

**클래식 조건**

시계열 데이터가 알림 조건과 일치하는지 확인합니다.

**참고**  
클래식 조건 표현식 쿼리는 조건을 충족하는 시계열 수에 관계없이 항상 하나의 알림 인스턴스만 생성합니다. 클래식 조건은 주로 호환성을 위해 존재하므로 가능하면 피해야 합니다.

## 집계
<a name="v10-alerting-explore-rules-queries-aggregations"></a>

Grafana 알림은 쿼리를 추가로 세분화할 수 있도록 다음과 같은 집계 함수를 제공합니다.

이러한 함수는 **축소** 및 **클래식 조건** 표현식에만 사용할 수 있습니다.


| 함수 | 표현식 | 하는 일 | 
| --- | --- | --- | 
| avg | 축소/클래식 | 값의 평균 표시 | 
| min | 축소/클래식 | 가장 낮은 값 표시 | 
| 최대 | 축소/클래식 | 가장 높은 값 표시 | 
| sum | 축소/클래식 | 모든 값의 합계 표시 | 
| count | 축소/클래식 | 결과에 있는 값 수 계산 | 
| last | 축소/클래식 | 마지막 값 표시 | 
| median | 축소/클래식 | 중앙값 표시 | 
| DIFF | 클래식 | 최신 값과 가장 오래된 값의 차이 표시 | 
| diff\$1abs | 클래식 | 차이의 절댓값 표시 | 
| percent\$1diff | 클래식 | 최신 값과 가장 오래된 값 간의 차이 백분율 값 표시 | 
| percent\$1diff\$1abs | 클래식 | percent\$1diff의 절댓값 표시 | 
| count\$1non\$1null | 클래식 | 결과 세트에서 null이 아닌 값의 수 표시 | 

## 알림 조건
<a name="v10-alerting-explore-rules-queries-alert-condition"></a>

알림 조건은 알림이 생성되는 값에 따라 알림 실행 여부를 결정하는 쿼리 또는 표현식입니다. 알림 트리거를 결정하는 조건이 하나뿐일 수 있습니다.

쿼리 및/또는 표현식을 정의한 후 그 중 하나를 알림 규칙 조건으로 선택합니다.

쿼리된 데이터가 정의된 조건을 충족하면 Grafana는 이메일, Slack 또는 PagerDuty와 같은 다양한 채널을 통해 알림을 보내도록 구성할 수 있는 관련 알림을 트리거합니다. 알림은 충족되는 조건을 알려주므로 적절한 조치를 취하거나 근본적인 문제를 조사할 수 있습니다.

기본적으로 마지막으로 추가된 표현식은 알림 조건으로 사용됩니다.

## 복구 임계치
<a name="v10-alerting-explore-rules-queries-recovery-threshold"></a>

플래핑 알림의 소음을 줄이기 위해 알림 임계치와 다르게 복구 임계치를 설정할 수 있습니다.

플래핑 알림은 지표가 알림 임계치 조건 근처이고 빈번한 상태 변경으로 인해 너무 많은 알림이 생성될 수 있을 때 발생합니다.

Grafana 관리형 알림 규칙은 특정 시간 간격 동안 평가됩니다. 각 평가 중에 쿼리의 결과를 알림 규칙에 설정된 임계치와 비교하여 확인합니다. 지표 값이 임계치를 초과하면 알림 규칙이 실행되고 알림이 전송됩니다. 값이 임계치보다 낮고 이 지표에 대한 활성 알림이 있으면 알림이 해결되고 다른 알림이 전송됩니다.

노이즈 지표에 대한 알림 규칙을 생성하는 작업은 까다로울 수 있습니다. 즉, 지표의 값이 임계치를 계속 초과하거나 미만인 경우가 이에 해당합니다. 이를 플래핑이라고 하며 일련의 실행 중 - 해결됨 - 실행 중 알림 및 노이즈 알림 상태 기록이 생성됩니다.

예를 들어, 임계치가 1,000밀리초인 지연 시간에 대한 알림이 있고 숫자가 약 1,000 사이에서 변동하는 경우(예: 980 -> 1,010 -> 990 -> 1,020 등) 각각 알림이 트리거됩니다.

이 문제를 해결하기 위해 (사용자 지정) 복구 임계치를 설정할 수 있습니다. 즉, 기본적으로 임계치가 하나가 아니라 두 개입니다. 첫 번째 임계치를 초과하면 알림이 트리거되고 두 번째 임계치를 초과한 경우에만 해결됩니다.

예를 들어 임계치를 1,000밀리초로 설정하고 복구 임계치를 900밀리초로 설정할 수 있습니다. 이렇게 하면 알림 규칙이 900밀리초 미만이 되고 플래핑이 감소할 때만 실행이 중지됩니다.

# 알림 인스턴스
<a name="v10-alerting-rules-instances"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

Grafana 관리형 알림은 다차원 알림을 지원합니다. 각 알림 규칙은 여러 개의 알림 인스턴스를 생성할 수 있습니다. 이는 단일 표현식에서 여러 시리즈를 관찰하는 경우 매우 유용합니다.

다음 PromQL 표현식을 고려합니다.

```
sum by(cpu) (
  rate(node_cpu_seconds_total{mode!="idle"}[1m])
)
```

이 표현식을 사용하는 규칙은 첫 번째 평가 후 관찰 중인 CPU 양만큼 많은 알림 인스턴스를 생성합니다. 이를 통해 단일 규칙에서 각 CPU의 상태를 보고할 수 있습니다.

# 네임스페이스, 폴더 및 그룹
<a name="v10-alerting-rules-grouping"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

알림은 Mimir, Loki 또는 Prometheus 규칙 및 그룹 이름의 네임스페이스와 Grafana 관리형 규칙에 대한 폴더를 사용하여 구성할 수 있습니다.

**네임스페이스 및 폴더**

Grafana 관리형 규칙을 생성할 때 폴더를 사용하여 액세스 제어를 수행하고 특정 폴더 내 모든 규칙에 대한 액세스 권한을 부여하거나 거부할 수 있습니다.

네임스페이스에는 하나 이상의 그룹이 포함되어 있습니다. 그룹 내 규칙은 정기적 간격에 따라 순차적으로 실행됩니다. 기본 간격은 1분입니다. Grafana Mimi 또는 Loki 규칙 네임스페이스 및 그룹의 이름을 바꾸고 그룹 평가 간격을 편집할 수 있습니다.

**그룹**

그룹 내 규칙은 정기적 간격에 따라 순차적으로 실행됩니다. 즉, 규칙은 동시에 평가되지 않으며 표시 순서에 따릅니다. 기본 간격은 1분입니다. Grafana Mimir 또는 Loki 규칙 네임스페이스나 Loki 규칙 네임스페이스 및 그룹의 이름을 바꾸고 그룹 평가 간격을 편집할 수 있습니다.

**작은 정보**  
규칙을 서로 다른 간격으로 동시에 평가하려면 규칙을 서로 다른 그룹에 저장하는 것이 좋습니다.

**참고**  
Grafana 관리형 알림 규칙은 순차적으로 평가되는 대신 동시에 평가됩니다.

# 알림 규칙 평가
<a name="v10-alerting-rules-evaluation"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

알림 규칙 평가를 사용하여 알림 규칙을 평가해야 하는 빈도와 상태를 변경해야 하는 속도를 결정합니다.

이를 위해 알림 규칙이 올바른 평가 그룹에 있는지 확인하고 사용 사례에 가장 적합한 보류 기간을 설정해야 합니다.

## 평가 그룹
<a name="v10-alerting-rules-evaluation-group"></a>

모든 알림 규칙은 평가 그룹의 일부입니다. 각 평가 그룹에는 알림 규칙 확인 빈도를 결정하는 평가 간격이 포함되어 있습니다.

동일한 그룹 내 **데이터 소스 관리형** 알림 규칙은 차례로 평가되지만, 서로 다른 그룹의 알림 규칙은 동시에 평가할 수 있습니다. 이 기능은 알림 규칙 전에 기록 규칙을 평가하려는 경우에 특히 유용합니다.

**Grafana 관리형** 알림 규칙은 알림 규칙 그룹에 관계없이 동시에 평가됩니다. 기본 평가 간격은 10초로 설정됩니다. 즉, Grafana 관리형 알림 규칙은 10초마다 10:00:00, 10:00:10, 10:00:20 등과 같이 시계에서 가장 가까운 10초 기간으로 평가됩니다. 필요한 경우 자체 평가 간격을 구성할 수도 있습니다.

**참고**  
알림 정책의 평가 그룹과 알림 그룹은 별 개의 두 개 항목입니다. 알림 정책의 그룹화를 통해 동일한 레이블을 공유하는 여러 알림을 동일한 시간 메시지로 전송할 수 있습니다.

## 보류 기간
<a name="v10-alerting-rules-evaluation-pending-period"></a>

보류 기간을 설정하면 일시적인 문제에 대한 불필요한 알림을 피할 수 있습니다.

보류 기간에는 알림 규칙이 실행될 때까지 조건을 위반할 수 있는 기간을 선택합니다.

**예제**

알림 규칙 평가 간격이 30초마다 설정되고 보류 기간이 90초로 설정되었다고 가정합니다.

평가는 다음과 같이 수행됩니다.

[00:30] 첫 번째 평가 - 조건이 충족되지 않았습니다.

[01:00] 두 번째 평가 - 조건을 위반했습니다. 보류 중인 카운터가 시작됩니다.**알림이 보류 중으로 시작됩니다.**

[01:30] 세 번째 평가 - 조건을 위반했습니다. 보류 카운터 = 30초. **보류 중 상태.**

[02:00] 네 번째 평가 - 조건을 위반했습니다. 보류 카운터 = 60초. **보류 중 상태.**

[02:30] 다섯 번째 평가 - 조건을 위반했습니다. 보류 카운터 = 90초. **알림이 실행 중 상태로 시작됨**

알림 규칙에 조치를 취하기 전 일정 시간 동안 위반해야 하는 조건이 있는 경우 상태는 다음과 같이 변경됩니다.
+ 조건을 처음 위반하면 규칙이 '보류 중' 상태가 됩니다.
+ 규칙은 필요한 시간 동안(보류 기간) 조건 위반 상태가 유지될 때까지 '보류 중' 상태로 유지됩니다.
+ 필요한 시간이 경과하면 규칙이 '실행 중' 상태로 전환됩니다.
+ 보류 기간에 조건이 더 이상 위반 상태가 아니면 규칙은 정상 상태로 돌아갑니다.

**참고**  
보류 상태를 건너뛰려면 보류 기간을 0으로 설정하면 됩니다. 그러면 보류 기간을 효과적으로 건너뛰고 조건이 위반되는 즉시 알림 규칙이 실행되기 시작합니다.

알림 규칙이 실행되면 알림 인스턴스가 생성되어 Alertmanager로 전송됩니다.

# 알림 규칙의 상태 조건 및 상태
<a name="v10-alerting-explore-state"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

알림 규칙의 상태 조건 및 상태는 알림에 대한 몇 가지 주요 상태 표시기를 이해하는 데 도움이 됩니다.

*알림 규칙 상태 조건*, *알림 인스턴스 상태*, *알림 규칙 상태*와 같은 세 가지 주요 구성 요소가 있습니다. 서로 관련되었지만 각 구성 요소는 약간 다른 정보를 전달합니다.

**알림 규칙 상태 조건**

알림 규칙은 다음 상태 중 하나일 수 있습니다.


| State | 설명 | 
| --- | --- | 
| 정상 | 평가 엔진에서 반환한 시계열 중 `Pending` 또는 `Firing` 상태의 시계열은 없습니다. | 
| 보류중 | 평가 엔진에서 반환한 하나 이상의 시계열이 `Pending`입니다. | 
| 실행 | 평가 엔진에서 반환한 하나 이상의 시계열이 `Firing`입니다. | 

**참고**  
알림은 먼저 `pending`으로 전환된 다음, `firing`으로 전환되므로 알림이 실행되기까지 최소 2회의 평가 주기가 걸립니다.

**알림 인스턴스 상태**

알림 인스턴스는 다음 상태 중 하나일 수 있습니다.


| State | 설명 | 
| --- | --- | 
| 정상 | 실행 또는 보류 중 상태가 아닌 알림 상태로, 모든 것이 올바르게 작동하고 있습니다. | 
| 보류중 | 구성된 임계치 기간 미만으로 활성화된 알림의 상태. | 
| 알림 | 구성된 임계치 기간보다 오래 활성화된 알림의 상태. | 
| NoData | 구성된 기간에 데이터가 수신되지 않았습니다. | 
| 오류 | 알림 규칙을 평가하려고 할 때 발생한 오류. | 

**마지막 상태 유지**

`NoData` 또는 `Error` 상태가 나타날 때 마지막 상태를 유지하도록 알림 규칙을 구성할 수 있습니다. 이렇게 하면 알림이 실행되지 않고 해결 및 다시 실행되지 않습니다. 일반 평가와 마찬가지로 알림 규칙은 보류 기간이 경과한 후 `Pending`에서 `Firing`으로 전환됩니다.

**알림 규칙 상태**

알림 규칙 상태는 다음 중 하나일 수 있습니다.


| State | 설명 | 
| --- | --- | 
| Ok | 알림 규칙을 평가할 때 오류가 없습니다. | 
| 오류 | 알림 규칙을 평가할 때 오류가 발생했습니다. | 
| NoData | 규칙 평가 중에 반환된 하나 이상의 시계열에 데이터가 없습니다. | 

**`NoData` 및 `Error`에 대한 특별 알림**

알림 규칙 평가에서 `NoData` 또는 `Error` 상태가 생성되면 Grafana 알림은 다음과 같은 추가 레이블이 있는 알림 인스턴스를 생성합니다.


| Label | 설명 | 
| --- | --- | 
| alertname | 상태에 따라 `DatasourceNoData` 또는 `DatasourceError`. | 
| datasource\$1uid | 상태의 원인이 되는 데이터 소스의 UID. | 

무음, 연락 지점으로 라우팅 등을 추가하여 일반 알림과 동일한 방식으로 이러한 알림을 처리할 수 있습니다.

# 알림 템플릿 지정
<a name="v10-alerting-rules-notification-templates"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

연락 지점을 통해 전송되는 알림은 알림 템플릿을 사용하여 빌드됩니다. Grafana의 기본 템플릿은 [Go 템플릿 지정 시스템](https://golang.org/pkg/text/template)을 기반으로 합니다. 여기서 일부 필드는 텍스트로 평가되고 다른 필드는 HTML(이스케이핑에 영향을 미칠 수 있음)로 평가됩니다.

기본 템플릿 [default\$1template.go](https://github.com/grafana/alerting/blob/main/templates/default_template.go)는 사용자 지정 템플릿에 유용한 참조입니다.

대부분의 연락 지점 필드는 템플릿 지정 가능하므로 재사용 가능한 사용자 지정 템플릿을 생성하고 여러 연락 지점에서 사용할 수 있습니다. 템플릿을 사용한 사용자 지정 알림에 대한 자세한 내용은 [알림 사용자 지정](v10-alerting-manage-notifications.md) 섹션을 참조하세요.

**중첩된 템플릿**

다른 템플릿 내에 템플릿을 포함할 수 있습니다.

예를 들어 `define` 키워드를 사용하여 템플릿 조각을 정의할 수 있습니다.

```
{{ define "mytemplate" }}
  {{ len .Alerts.Firing }} firing. {{ len .Alerts.Resolved }} resolved.
{{ end }}
```

그런 다음, `template` 키워드를 사용하여 이 조각 내에 사용자 지정 템플릿을 포함할 수 있습니다. 예제:

```
Alert summary:
{{ template "mytemplate" . }}
```

다음 기본 제공 템플릿 옵션을 사용하여 사용자 지정 템플릿을 포함할 수 있습니다.


| 이름 | 참고 | 
| --- | --- | 
| `default.title` | 개요 수준의 상태 정보를 표시합니다. | 
| `default.message` | 실행 알림 및 해결된 알림의 형식이 지정된 요약을 제공합니다. | 
| `teams.default.message` | Microsoft Teams에 대해 서식 지정된 `default.messsage`와 비슷합니다. | 

**알림 템플릿의 HTML**

알림 템플릿의 HTML이 이스케이프 처리됩니다. 결과 알림에서는 HTML 렌더링을 지원하지 않습니다.

일부 알림은 결과 알림의 모양과 느낌을 변경하는 대체 방법을 지원합니다. 예를 들어 Grafana에서는 `<grafana-install-dir>/public/emails/ng_alert_notification.html`에 이메일 알림을 전달하기 위한 기본 템플릿을 설치합니다. 이 파일을 편집하여 모든 알림 이메일의 모양을 변경할 수 있습니다.

# Alertmanager
<a name="v10-alerting-explore-alertmanager"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

Alertmanager를 사용하면 알림을 빠르고 효율적으로 관리하며 대응할 수 있습니다. 이메일 또는 Slack과 같이 선택한 채널을 통해 알림을 보내 알림을 수신하고, 음소거, 억제, 그룹화 및 라우팅을 처리합니다.

Grafana에서는 Grafana Alertmanager 또는 외부 Alertmanager를 사용할 수 있습니다. 또한 여러 Alertmanager를 실행할 수 있습니다. 결정은 설정 및 알림이 생성되는 위치에 따라 달라집니다.

**Grafana Alertmanager**

Grafana Alertmanager는 사전 구성되고 기본적으로 선택할 수 있는 내부 Alertmanager입니다.

Grafana Alertmanager는 Grafana로부터 알림을 수신할 수 있지만 Mimir 또는 Loki와 같은 Grafana 외부에서 알림을 수신할 수는 없습니다.

**참고**  
Grafana Alertmanager에서는 금지 규칙이 지원되지 않습니다.

**외부 Alertmanager**

단일 Alertmanager를 사용하여 모든 Grafana, Loki, Mimir 및 Prometheus 알림을 수신하려면 외부 Alertmanager를 사용하도록 Grafana를 설정할 수 있습니다. Grafana 자체 내에서 이 외부 Alertmanager를 구성하고 관리할 수 있습니다.

다음은 Grafana Alertmanager 대신 자체 외부 Alertmanager를 구성하고 알림을 보낼 수 있는 두 가지 예제입니다.

1. Prometheus와 같은 다른 알림 생성기가 있기 때문에 자체 클라우드 인프라에 이미 설정한 온프레미스 Alertmanager를 보유하고 있으며, 계속 사용하려고 합니다.

1. Prometheus 온프레미스 및 호스팅 Grafana를 모두 사용하여 클라우드 인프라에서 실행되는 동일한 Alertmanager에 알림을 보내려고 합니다.

Alertmanager는 알림 연락 지점 및 알림 정책 페이지의 드롭다운 메뉴에서 볼 수 있습니다.

데이터 소스를 프로비저닝하는 경우 `jsonData` 필드에서 `handleGrafanaManagedAlerts` 플래그를 `true`로 설정하여 Grafana 관리형 알림을 이 Alertmanager로 보내세요.

# 연락 지점
<a name="v10-alerting-explore-contacts"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

연락 지점에는 알림을 보내기 위한 구성이 포함되어 있습니다. 연락 지점은 통합 목록으로, 각각 특정 이메일 주소, 서비스 또는 URL로 알림을 보냅니다. 연락 지점에는 동일한 종류의 통합이 여러 개 있거나 서로 다른 통합 유형의 조합이 있을 수 있습니다. 예를 들어 연락 지점에는 Pagerduty 통합, Amazon SNS 및 Slack 통합 또는 Pagerduty 통합, Slack 통합 및 두 개의 Amazon SNS 통합이 포함될 수 있습니다. 통합 없이 연락 지점을 구성할 수도 있습니다. 이 경우 알림이 전송되지 않습니다.

연락 지점은 알림 정책에 추가될 때까지 알림을 보낼 수 없습니다. 알림 정책은 하나의 연락 지점으로만 알림을 보낼 수 있지만 동시에 여러 알림 정책에 연락 지점을 추가할 수 있습니다. 알림이 알림 정책과 일치하면 해당 알림 정책의 연락 지점으로 알림이 전송되고, 그러면 해당 알림 정책이 해당 구성의 각 통합에 알림을 전송합니다.

Grafana Alertmanager 및 외부 Alertmanager에 대해 연락 지점을 구성할 수 있습니다.

알림 템플릿 지정 기능을 사용하여 연락 지점 유형에 대한 알림 메시지를 사용자 지정할 수도 있습니다.

**지원되는 연락 지점 유형**

다음 표에는 Grafana에서 지원하는 연락 지점 유형이 나열되어 있습니다.


| 이름 | Type | 
| --- | --- | 
| Amazon SNS | `sns` | 
| OpsGenie | `opsgenie` | 
| PagerDuty | `pagerduty` | 
| Slack | `slack` | 
| VictorOps | `victorops` | 

연락 지점에 대한 자세한 내용은 [연락 지점 구성](v10-alerting-configure-contactpoints.md) 및 [알림 사용자 지정](v10-alerting-manage-notifications.md) 섹션을 참조하세요.

# 알림
<a name="v10-alerting-explore-notifications"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

알림 전달을 보내는 방법, 시간 및 위치를 선택하는 것은 알림 시스템 설정의 중요한 부분입니다. 이러한 결정은 문제를 빠르게 해결하고 중요한 부분을 놓치지 않는 역량에 직접적인 영향을 미칩니다.

첫 번째 단계로 알림 전달을 보낼 위치를 정의하는 [연락 지점](v10-alerting-explore-contacts.md)을 정의합니다. 연락 지점은 알림을 전달하는 데 사용되는 하나 이상의 통합 세트입니다. 알림에서 재사용 및 일관된 메시징을 위해 알림 템플릿을 연락 지점에 추가하세요.

그런 다음, 알림 정책을 생성하세요. 이 정책은 알림이 연락 지점로 라우팅되는 위치, 시간 및 방법에 대한 규칙 세트입니다. 알림 정책에서 생성한 연락 지점 중 하나를 선택하여 알림 전달을 보낼 위치를 정의합니다.

## Alertmanager
<a name="v10-alerting-explore-notifications-alertmanager"></a>

Grafana에서는 Alertmanager를 사용하여 실행 알림 및 해결된 알림에 대한 알림을 보냅니다. Grafana에는 사용자 인터페이스에서 **Grafana**로 참조되는 자체 Alertmanager가 있지만 [Prometheus Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/)와 같은 다른 Alertmanager에서도 알림을 보낼 수 있습니다. Grafana Alertmanager는 알림 정책 및 연락 지점을 사용하여 알림이 전송되는 방식과 위치, 알림을 보내야 하는 빈도, 알림을 동일한 알림으로 모두 보내야 하는지, 레이블 세트를 기반으로 그룹화된 알림으로 보내야 하는지, 별도의 알림으로 보내야 하는지를 구성합니다.

## 알림 정책
<a name="v10-alerting-explore-notifications-policies"></a>

알림 정책은 알림이 전송되는 시기와 위치를 제어합니다. 알림 정책은 동일한 알림에서 모든 알림을 함께 보내거나, 레이블 세트를 기반으로 그룹화된 알림으로 알림을 보내거나, 별도의 알림으로 알림을 보내도록 선택할 수 있습니다. 알림을 전송해야 하는 빈도를 제어하고 하루 중 특정 시간과 특정 요일에 알림을 금지하는 음소거 타이밍을 하나 이상 설정하도록 각 알림 정책을 구성할 수 있습니다.

알림 정책은 트리 구조로 구성되며, 트리의 루트에 기본 정책이라고 하는 알림 정책이 있습니다. 기본 정책은 하나만 있을 수 있으며 기본 정책은 삭제할 수 없습니다.

특정 라우팅 정책은 루트 정책의 하위 항목이며 일치하는 레이블 세트를 기반으로 모든 알림 또는 알림 하위 세트를 일치시키는 데 사용할 수 있습니다. 알림 정책은 일치하는 레이블이 알림의 레이블과 일치할 때 알림과 일치합니다.

중첩된 정책에는 자체 중첩된 정책이 있을 수 있으므로 알림을 추가로 일치시킬 수 있습니다. 중첩된 정책의 예로 인프라 알림을 Ops 팀에 보내는 경우가 있지만, 하위 정책은 높은 우선순위 알림을 PagerDuty로 보내고 낮은 우선순위 알림을 Slack으로 보낼 수 있습니다.

레이블에 관계없이 모든 알림은 기본 정책과 일치합니다. 그러나 기본 정책이 알림을 수신하면 각 중첩된 정책을 살펴보고 알림과 일치하는 첫 번째 중첩된 정책으로 알림을 보냅니다. 중첩된 정책에 추가 중첩된 정책이 있는 경우 중첩된 정책 중 하나에 대해 알림을 일치시키려고 시도할 수 있습니다. 중첩된 정책이 알림과 일치하지 않으면 정책 자체가 일치하는 정책입니다. 중첩된 정책이 없거나 중첩된 정책이 알림과 일치하지 않는 경우 기본 정책이 일치하는 정책입니다.

알림 정책에 대한 자세한 내용은 [알림 정책](v10-alerting-explore-notifications-policies-details.md) 섹션을 참조하세요.

## 알림 템플릿
<a name="v10-alerting-explore-notifications-templating"></a>

템플릿을 사용하여 알림을 사용자 지정할 수 있습니다. 예를 들어 템플릿을 사용하여 Slack으로 전송되는 알림의 제목과 메시지를 변경할 수 있습니다.

템플릿은 개별 통합 또는 연락 지점에 국한되지 않으며, 대신 동일한 연락 지점의 여러 통합에서, 서로 다른 연락 지점 간 통합에서도 사용할 수 있습니다. 예를 들어 Grafana 사용자는 `custom_subject_or_title` 템플릿을 생성하여 별도의 두 템플릿을 생성하지 않고도 PagerDuty의 템플릿 제목과 Slack 메시지 제목 모두에 사용할 수 있습니다.

모든 알림 템플릿은 [Go의 템플릿 지정 언어](https://pkg.go.dev/text/template)로 작성되며 알림 페이지의 연락 지점 탭에 있습니다.

알림 사용자 지정에 대한 자세한 내용은 [알림 사용자 지정](v10-alerting-manage-notifications.md) 섹션을 참조하세요.

## 무음
<a name="v10-alerting-explore-notifications-silences"></a>

무음을 사용하여 하나 이상의 실행 규칙에서 알림을 음소거할 수 있습니다. 무음으로 설정해도 알림 실행 또는 해결은 중지되지 않으며 사용자 인터페이스에서 실행 알림을 숨기지도 않습니다. 무음은 해당 지속 시간 동안 지속되며, 지속 시간은 분, 시간, 일, 개월 또는 년 단위로 구성할 수 있습니다.

무음 사용에 대한 자세한 내용은 [알림 전달 무음 처리](v10-alerting-silences.md) 섹션을 참조하세요.

# 알림 정책
<a name="v10-alerting-explore-notifications-policies-details"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

알림 정책은 다양한 수신자에게 알림을 라우팅하는 유연한 방법을 제공합니다. 레이블 매처를 사용하면 모든 개별 알림 규칙을 업데이트할 필요 없이 알림 전송을 수정할 수 있습니다.

이 섹션에서는 알림 정책 설정을 최대한 활용할 수 있도록 알림 정책이 작동하고 구조화되는 방식을 자세히 알아봅니다.

## 정책 트리
<a name="v10-alerting-explore-notifications-policy-tree"></a>

알림 정책은 목록이 *아니라* 트리 구조에 따라 구조화됩니다. 즉, 각 정책에 하위 정책 등이 있을 수 있습니다. 알림 정책 트리의 루트를 **기본 알림 정책**이라고 합니다.

각 정책은 처리에 관심이 있거나 없는 레이블을 지정하는 레이블 매처 세트(0개 이상)로 구성됩니다.

레이블 일치에 대한 자세한 내용은 [레이블 일치 작동 방식](v10-alerting-overview-labels-matching.md) 섹션을 참조하세요.

**참고**  
알림 정책에 대해 레이블 매처를 구성하지 않은 경우 알림 정책은 *모든* 알림 인스턴스와 일치합니다. 이렇게 하면 알림 정책에서 **형제 연속 매칭**을 활성화하지 않은 한 하위 정책이 평가되지 않을 수 있습니다.

## 라우팅
<a name="v10-alerting-explore-notifications-routing"></a>

어떤 알림 정책이 어떤 알림 인스턴스를 처리할지 결정하려면 먼저 기본 알림 정책부터 시작하여 기존 알림 정책 세트를 살펴봐야 합니다.

기본 정책 이외의 정책이 구성되지 않은 경우 기본 정책이 알림 인스턴스를 처리합니다.

기본 정책 이외의 정책이 정의된 경우 표시되는 순서대로 해당 알림 정책을 평가합니다.

알림 정책에 알림 인스턴스의 레이블과 일치하는 레이블 매처가 있는 경우 하위 정책으로 내려갑니다. 그리고 있는 경우 레이블 세트 범위를 더 좁히는 레이블 매처가 있을 수 있는 하위 정책을 계속 찾으며, 더 이상 하위 정책이 발견되지 않을 때까지 이 작업을 계속합니다.

알림 정책에 하위 정책이 정의되지 않았거나 하위 정책 중 하나에도 알림 인스턴스의 레이블과 일치하는 레이블 매처가 없는 경우 상위 알림 정책이 사용됩니다.

일치하는 정책을 찾으면 시스템에서 다른 일치하는 정책을 계속 찾지 않습니다. 일치하는 다른 정책을 계속 찾으려면 해당 특정 정책에서 **형제 연속 매칭**을 활성화합니다.

마지막으로 알림 정책을 선택하지 않으면 기본 알림 정책이 사용됩니다.

### 라우팅 예제
<a name="v10-alerting-explore-notifications-routing-example"></a>

다음은 비교적 간단한 알림 정책 트리와 일부 알림 인스턴스 예제입니다.

![\[트리 구조의 알림 정책 세트와 정책과 일치시킬 레이블이 서로 다른 알림 인스턴스 세트를 보여주는 이미지.\]](http://docs.aws.amazon.com/ko_kr/grafana/latest/userguide/images/notification-routing.png)


다음은 이러한 정책을 선택하는 방법에 대한 자세한 정보입니다.

**CrashLoop에서 멈춘 포드**에는 `severity` 레이블이 없으므로 일치하는 하위 정책이 없습니다. `team=operations` 레이블이 있으므로 첫 번째 정책이 일치합니다.

일치 항목을 이미 찾았고 해당 정책에 대해 **형제 연속 매칭**이 구성되지 않았으므로 `team=security` 정책은 평가되지 않습니다.

**디스크 사용량 - 80%**에는 `team` 및 `severity` 레이블이 모두 있으며 운영 팀의 하위 정책과 일치합니다.

**권한 부여되지 않은 로그 항목**에는 `team` 레이블이 있지만 값이 동일하지 않으므로 첫 번째 정책(`team=operations`)과 일치하지 않습니다. 따라서 계속 검색하고 `team=security` 정책과 일치시킵니다. 하위 정책이 없으므로 추가 `severity=high` 레이블은 무시됩니다.

## 상속
<a name="v10-alerting-explore-notifications-inheritance"></a>

하위 정책은 알림 인스턴스를 라우팅하는 데 유용한 개념일 뿐만 아니라 상위 정책에서 속성도 상속합니다. 이는 기본 알림 정책의 하위 정책에 해당하는 모든 정책에도 적용됩니다.

다음 속성은 하위 정책에 의해 상속됩니다.
+ 연락 지점
+ 그룹화 옵션
+ 타이밍 옵션
+ 음소거 타이밍

상속된 속성을 재정의하려는 경우 이러한 각 속성을 개별 정책으로 덮어쓸 수 있습니다.

상위 정책에서 연락 지점을 상속하려면 비워 둡니다. 상속된 그룹화 옵션을 재정의하려면 **그룹화 재정의**를 활성화합니다. 상속된 타이밍 옵션을 재정의하려면 **일반 타이밍 재정의**를 활성화합니다.

### 상속 사례
<a name="v10-alerting-explore-notifications-inheritance-example"></a>

아래 예제에서는 이전 예제의 알림 정책 트리가 `team=operations`의 하위 정책이 해당 연락 지점을 상속하도록 허용하는 방법을 보여줍니다.

이 방식에서는 각 하위 정책에 동일한 연락 지점을 여러 번 지정하지 않아도 됩니다.

![\[트리 구조의 알림 정책 세트를 보여주는 이미지. 여기에서 일부 정책에는 연락 지점이 할당되지만 일부 하위 정책에서는 자체 연락 지점을 정의하는 대신 상위의 연락 지점이 상속됩니다.\]](http://docs.aws.amazon.com/ko_kr/grafana/latest/userguide/images/notification-inheritance.png)


## 추가 구성 옵션
<a name="v10-alerting-explore-notifications-additional-configuration-options"></a>

### 그룹화
<a name="v10-alerting-explore-notifications-grouping"></a>

그룹화는 관련 알림을 더 적은 수의 알림으로 배치 처리할 수 있으므로 Grafana 알림의 중요한 기능입니다. 엔지니어 긴급 대기 상황과 같이 응급 대원에게 알림이 전달되는 경우 특히 중요합니다. 이 경우 짧은 시간 안에 많은 알림을 받으면 효과적 대응이 어려울 수 있으며, 경우에 따라 응급 대원이 인시던트에 대응하는 능력에 부정적인 영향을 미칠 수 있습니다. 예를 들어 많은 시스템이 중단된 대규모 가동 중지를 살펴봅니다. 이 경우 그룹화를 사용하면 100개의 통화 수신 및 1개의 통화 수신과 같은 차이가 나타날 수 있습니다.

알림 정책에서 그룹화 기준 옵션을 사용하여 알림을 그룹화하는 방법을 선택합니다. 기본적으로 Grafana 그룹의 알림 정책은 `alertname` 및 `grafana_folder` 레이블을 사용하여 알림 규칙으로 함께 알립니다(알림 이름은 여러 폴더에서 고유하지 않기 때문). 알림 규칙 이외의 다른 방법으로 알림을 그룹화하려면 그룹화를 레이블의 다른 조합으로 변경합니다.

#### 그룹 비활성화
<a name="v10-alerting-explore-notifications-disable-grouping"></a>

모든 알림을 별도의 알림으로 수신하려면 `...`이라는 특수 레이블로 그룹화하여 수신할 수 있습니다. 응급 대원이 아니라 자동화된 시스템으로 알림이 전달되는 경우에 유용합니다.

#### 모든 알림에 대한 단일 그룹
<a name="v10-alerting-explore-notifications-a-single-group-for-all-alerts"></a>

단일 알림으로 모든 알림을 함께 수신하려면 그룹화 기준을 비워두면 됩니다.

### 타이밍 옵션
<a name="v10-alerting-explore-notifications-timing-options"></a>

타이밍 옵션은 각 알림 그룹에 대해 알림을 보내는 빈도를 결정합니다. 알아야 할 세 가지 타이머는 그룹 대기, 그룹 간격, 반복 간격입니다.

#### 그룹 대기
<a name="v10-alerting-explore-notifications-group-wait"></a>

그룹 대기는 Grafana에서 새 알림 그룹에 대한 첫 번째 알림을 보내기 전에 대기하는 시간입니다. 그룹 대기 시간이 길수록 다른 알림이 도착하는 시간이 길어집니다. 그룹 대기 시간이 짧을수록 첫 번째 알림이 더 빨리 전송되지만 불완전한 알림이 전송될 위험이 있습니다. 항상 사용 사례에 가장 적합한 그룹 대기를 선택해야 합니다.

**기본값** 30초

#### 그룹 간격
<a name="v10-alerting-explore-notifications-group-interval"></a>

새 알림 그룹에 대한 첫 번째 알림이 전송되면 Grafana에서는 그룹 간격 타이머를 시작합니다. 그룹 변경 사항에 대한 알림을 보내기 전에 Grafana에서 대기하는 시간입니다. 예를 들어 기존 알림이 해결되었을 수 있는 동안 다른 실행 알림이 그룹에 방금 추가되었을 수 있습니다. 그룹 대기로 인해 알림이 너무 지연되어 첫 번째 알림에 포함될 수 없는 경우 그룹 간격이 경과한 후 후속 알림에 포함됩니다. 그룹 간격이 경과하면 Grafana에서는 그룹 간격 타이머를 재설정합니다. 그룹이 삭제된 후 그룹에 더 이상 알림이 없을 때까지 반복됩니다.

**기본값** 5분

#### 반복 간격
<a name="v10-alerting-explore-notifications-repeat-interval"></a>

반복 간격에서는 마지막 알림 이후 그룹이 변경되지 않은 경우 알림이 반복되는 빈도를 결정합니다. 이를 일부 알림이 여전히 실행 중임을 나타내는 미리 알림이라고 생각할 수 있습니다. 반복 간격은 그룹 간격과 밀접한 관련이 있습니다. 즉, 반복 간격은 그룹 간격 이상이어야 하며 그룹 간격의 배수이기도 해야 합니다. 반복 간격이 그룹 간격의 배수가 아닌 경우 하나로 강제 적용됩니다. 예를 들어 그룹 간격이 5분이고 반복 간격이 9분인 경우 반복 간격은 5의 가장 가까운 배수인 10분으로 반올림됩니다.

**기본값** 4시간

# 알림 고가용성
<a name="v10-alerting-explore-high-availability"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

Amazon Managed Grafana는 사용자가 생성한 각 워크스페이스에 대해 여러 가용 영역에서 여러 인스턴스를 실행하는 등 고가용성을 위해 구성되었습니다.

Grafana 알림은 알림 규칙 평가를 알림 전달과 분리하는 Prometheus 모델을 사용합니다. 이 모델에서 알림 규칙 평가는 알림 생성기에서 수행되고 알림 전달은 알림 수신기에서 수행됩니다. Grafana 알림에서 알림 생성기는 스케줄러이고 수신기는 Alertmanager입니다.

고가용성 구성에서는 모든 인스턴스에서 모든 알림 규칙이 평가됩니다. 알림 규칙의 평가를 복제하는 것으로 간주할 수 있습니다. 이를 통해 Grafana 알림에서는 하나 이상의 Grafana 인스턴스가 작동하는 한 알림 규칙을 계속 평가하고 알림 전달을 계속 전송하도록 보장합니다. 상태 기록에서 이 중복을 확인할 수 있으며 고가용성을 사용하고 있는지 확인하는 좋은 방법입니다.

# 알림 설정
<a name="v10-alerting-setup"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

알림을 생성 및 관리하는 데 필요한 기능과 통합을 구성합니다.

**사전 조건**

알림을 설정하기 전에 다음을 수행해야 합니다.
+ [데이터 소스](AMG-data-sources.md)를 구성합니다.
+ 선택한 데이터 소스가 [Grafana 알림](v10-alerting-overview-datasources.md)과 호환되고 해당 기능에서 지원되는지 확인합니다.

**알림을 설정하는 방법**

1. [알림 규칙](v10-alerting-configure.md)을 구성하세요.
   + Grafana 관리형 또는 데이터 소스 관리형 알림 규칙 및 기록 규칙을 생성하세요.

1. [연락 지점](v10-alerting-configure-contactpoints.md)을 구성하세요.
   + 기본 연락 지점을 확인하고 시스템의 연락처를 업데이트하세요.
   + 선택적으로 새 연락 지점 및 통합을 추가하세요.

1. [알림 정책](v10-alerting-explore-notifications-policies-details.md)을 구성하세요.
   + 기본 알림 정책을 확인하고 시스템에 대해 업데이트하세요.
   + 선택적으로 중첩된 정책을 추가하세요.
   + 선택적으로 레이블 및 레이블 매처를 추가하여 알림 라우팅을 제어하세요.

다음 주제에서는 외부 알림 관리자 구성 및 Grafana 관리형 알림을 Grafana 외부로 라우팅하는 등 추가 구성 옵션에 대한 자세한 정보를 제공합니다.

**Topics**
+ [Grafana 알림으로 클래식 대시보드 알림 마이그레이션](v10-alerting-use-grafana-alerts.md)
+ [외부 Alertmanager 추가](v10-alerting-setup-alertmanager.md)
+ [Grafana 알림 리소스 프로비저닝](v10-alerting-setup-provision.md)

# Grafana 알림으로 클래식 대시보드 알림 마이그레이션
<a name="v10-alerting-use-grafana-alerts"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

Grafana 알림을 사용하지 않도록 선택한 워크스페이스에서는 [클래식 대시보드 알림](old-alerts-overview.md)을 사용합니다. 새 Grafana 알림으로 전환하려면 해당 기능을 옵트인해야 합니다. 클래식 대시보드 알림과 Grafana 알림의 차이에 대한 자세한 내용은 [Grafana 알림 및 레거시 대시보드 알림](#v10-alerting-diff-old-new) 섹션을 참조하세요. GrafanaLabs는 버전 11에서 클래식 대시보드 알림을 제거할 것이라고 발표했습니다.

클래식 대시보드 알림을 사용하는 경우 Amazon Managed Grafana는 업그레이드를 완료하기 전에 업그레이드된 알림을 검토하고 수정할 수 있는 Grafana 알림의 미리 보기를 보여줍니다.

## Grafana 알림 미리 보기
<a name="v10-alerting-preview-grafana-alerts"></a>

마이그레이션하기 전에 Grafana 알림에서 알림을 미리 볼 수 있습니다. 미리 보기에서 마이그레이션을 변경할 알림을 변경할 수 있습니다.

**Grafana 알림 마이그레이션을 미리 보는 방법**

1. Grafana 워크스페이스에 로그인하세요.

1. 왼쪽 메뉴에서 **알림(레거시)**을 선택하여 현재 알림을 확인하세요.

1. 왼쪽 메뉴에서 **알림 업그레이드**를 선택하여 Grafana 알림에서 알림을 확인하세요.

   이 보기에서 마이그레이션 후 알림의 형태를 확인할 수 있습니다.

**참고**  
이 보기에서 마이그레이션에 영향을 미치는 변경 사항을 적용할 수도 있습니다. 변경 사항을 실행 취소하려면 업그레이드 페이지 오른쪽 상단에서 **업그레이드 재설정**을 선택하세요.

알림을 업그레이드할 준비가 되면 다음 섹션을 참조하세요.

## Grafana 알림 시스템으로 마이그레이션
<a name="v10-alerting-use-grafana-alerts-opt-in"></a>

 AWS Management Console AWS CLI, 또는 Amazon Managed Grafana API를 사용하여 Grafana 알림을 사용하도록 Amazon Managed Grafana 인스턴스를 구성할 수 있습니다. Grafana 알림 켜기 또는 끄기를 포함하여 Amazon Managed Grafana를 구성하는 방법에 대한 자세한 내용은 [Amazon Managed Grafana 워크스페이스 구성](AMG-configure-workspace.md) 섹션을 참조하세요.

Grafana 알림이 켜져 있으면 기존 클래식 대시보드 알림이 Grafana 알림과 호환되는 형식으로 마이그레이션됩니다. Grafana 인스턴스의 알림 페이지에서 마이그레이션된 알림을 새 알림과 함께 볼 수 있습니다. Grafana 알림을 사용하면 Grafana 관리형 알림 규칙이 일치할 때 단일 알림이 아닌 여러 알림을 전송합니다.

클래식 대시보드 알림 및 Grafana 알림에 대한 읽기 및 쓰기 액세스는 해당 알림을 저장하는 폴더의 권한에 의해 제어됩니다. 마이그레이션 중에 클래식 대시보드 알림 권한은 다음과 같이 새 규칙 권한과 일치합니다.
+ 원본 알림의 대시보드에 권한이 있는 경우 마이그레이션하면 원본 대시보드의 권한(폴더의 상속된 권한 포함)과 일치하도록 이 형식의 폴더(`Migrated {"dashboardUid": "UID", "panelId": 1, "alertId": 1}`)를 생성합니다.
+ 대시보드 권한이 없고 대시보드가 폴더 아래에 있는 경우 규칙은 이 폴더에 연결되어 해당 권한을 상속합니다.
+ 대시보드 권한이 없고 대시보드가 일반 폴더 아래에 있는 경우 규칙은 일반 알림 폴더에 연결되고 규칙은 기본 권한을 상속합니다.

**참고**  
Grafana 알림에는 `NoData`에 대한 `Keep Last State` 옵션이 없으므로 이 옵션은 클래식 규칙 마이그레이션 중에 `NoData`로 표시됩니다. `Error` 처리에 대한 `Keep Last State` 옵션이 새 옵션 `Error`로 마이그레이션됩니다. `Keep Last State`의 동작과 일치시키기 위해 두 경우 모두에서 마이그레이션 중에 Amazon Managed Grafana는 1년 동안 각 알림 규칙에 대해 무음을 자동으로 생성합니다.

알림 채널은 적절한 경로 및 수신기를 사용하여 Alertmanager 구성으로 마이그레이션됩니다. 기본 알림 채널은 기본 경로에 연락 지점으로 추가됩니다. 대시보드 알림과 연결되지 않은 알림 채널은 `autogen-unlinked-channel-recv` 경로로 이동합니다.

### 제한 사항
<a name="v10-alerting-use-grafana-alerts-limitations"></a>
+ Grafana 알림 시스템은 사용 가능한 모든 Prometheus, Loki 및 Alertmanager 데이터 소스에서 규칙을 검색할 수 있습니다. 지원되는 다른 데이터 소스에서 알림 규칙을 가져오지 못할 수 있습니다.
+ Grafana 알림과 클래식 대시보드 알림 사이에서 앞뒤로 마이그레이션하면 한 시스템에서 지원되는 기능에 대한 데이터가 손실될 수 있지만 다른 시스템에서는 손실되지 않을 수 있습니다.
**참고**  
클래식 대시보드 알림으로 다시 마이그레이션하면 생성된 새 알림 규칙을 포함하여 Grafana 알림이 활성화된 상태에서 수행된 구성 알림에 대한 모든 변경 사항이 사라집니다.

## Grafana 알림 및 레거시 대시보드 알림
<a name="v10-alerting-diff-old-new"></a>

Grafana 8에 도입된 Grafana 알림은 레거시 대시보드 알림에 비해 몇 가지 향상된 기능을 제공합니다.

### 다차원 알림
<a name="v10-alerts-diff-multi-dimensional"></a>

이제 단일 알림 규칙으로 시스템 전반의 가시성을 제공하는 알림을 생성할 수 있습니다. 단일 알림 규칙에서 여러 알림 인스턴스를 생성합니다. 예를 들어 단일 호스트에서 여러 탐재 지점의 디스크 사용량을 모니터링하는 규칙을 생성할 수 있습니다. 평가 엔진은 단일 쿼리에서 여러 시계열을 반환하며 각 시계열은 레이블 세트로 식별됩니다.

### 대시보드 외부에서 알림 생성
<a name="v10-alerts-diff-alerts-outside-of-dashboards"></a>

레거시 대시보드 알림과 달리 Grafana 알림을 사용하면 여러 소스의 데이터를 고유한 방식으로 결합하는 쿼리와 표현식을 생성할 수 있습니다. ID를 사용하여 대시보드와 패널을 알림 규칙에 연결하고 관찰 중인 시스템의 문제를 신속하게 해결할 수 있습니다.

통합 알림은 더 이상 패널 쿼리에 직접 연결되지 않으므로 알림 이메일에 이미지 또는 쿼리 값을 포함하지 않습니다. 사용자 지정 알림 템플릿을 사용하여 쿼리 값을 볼 수 있습니다.

### Loki 및 Grafana Mimir 알림 규칙 생성
<a name="v10-alerts-diff-loki-mimir-alerting-rules"></a>

Grafana 알림에서 Grafana 관리형 알림과 동일한 UI 및 API를 사용하여 Loki 및 Grafana Mimir 알림 규칙을 관리할 수 있습니다.

### Prometheus 호환 데이터 소스에서 알림 보기 및 검색
<a name="v10-alerts-diff-view-alerts-from-prometheus"></a>

이제 Prometheus 호환 데이터 소스에 대한 알림이 Grafana 알림 섹션에 나열됩니다. 여러 데이터 소스에서 레이블을 검색하여 관련 알림을 빠르게 찾을 수 있습니다.

### 알림 상태 NoData 및 Error에 대한 특별 알림
<a name="v10-alerts-diff-special-alerts"></a>

Grafana 알림에서는 새로운 개념의 알림 상태를 도입했습니다. 알림 규칙의 평가에서 NoData 또는 Error 상태가 생성되면 Grafana 알림은 다음 레이블이 있는 특수 알림을 생성합니다.
+ 상태에 따라 값이 DatasourceNoData 또는 DatasourceError인 `alertname`.
+ `rulename` 특수 알림이 속한 알림 규칙의 이름.
+ `datasource_uid`에는 상태의 원인이 되는 데이터 소스의 UID가 있습니다.
+ 원본 알림 규칙의 모든 레이블 및 주석

무음, 연락 지점으로 라우팅 등을 추가하여 일반 알림과 동일한 방식으로 이러한 알림을 처리할 수 있습니다.

**참고**  
규칙이 많은 데이터 소스를 사용하고 하나 이상에서 데이터를 반환하지 않는 경우, 알림 상태의 원인이 되는 각 데이터 소스에 대해 특수 알림이 생성됩니다.

# 외부 Alertmanager 추가
<a name="v10-alerting-setup-alertmanager"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

외부 Alertmanager를 단일 Alertmanager로 사용하여 모든 알림을 수신하도록 Grafana를 설정합니다. 그러면 Grafana 자체 내에서 이 외부 Alertmanager를 구성하고 관리할 수 있습니다.

**참고**  
Amazon Managed Service for Prometheus를 외부 Alertmanager로 사용할 수 없습니다.

Alertmanager를 추가한 후에는 Grafana 알림 UI를 사용하여 무음, 연락 지점 및 알림 정책을 관리할 수 있습니다. 이러한 페이지의 드롭다운 옵션을 사용하면 Alertmanager 사이를 전환할 수 있습니다.

외부 Alertmanager는 기본 Grafana 탐색 메뉴에서 Grafana 구성을 사용하여 데이터 소스로 구성됩니다. 이를 통해 Grafana 내에서 외부 Alertmanager의 연락 지점 및 알림 정책을 관리할 수 있으며 URL을 기준으로 외부 Alertmanager를 구성할 때 이전에 볼 수 있었던 HTTP 기본 인증 자격 증명도 암호화할 수 있습니다.

**참고**  
Grafana 9.2부터 알림 페이지의 관리 탭에서 외부 Alertmanager의 URL 구성이 더 이상 사용되지 않습니다. 향후 릴리스에서 제거됩니다.

**외부 Alertmanager를 추가하는 방법**

1. 왼쪽 메뉴에서 **연결**을 선택하세요.

1. `Alertmanager`를 찾습니다.

1. **새 데이터 소스 생성** 버튼을 선택하세요.

1. 필요에 따라 페이지의 필드를 작성하세요.

   데이터 소스를 프로비저닝하는 경우 `jsonData` 필드에서 `handleGrafanaManagedAlerts` 플래그를 `true`로 설정하여 Grafana 관리형 알림을 이 Alertmanager로 보내세요.
**참고**  
Alertmanager의 Prometheus, Grafana Mimir 및 Cortex 구현이 지원됩니다. Prometheus의 경우 Grafana 알림 UI에서 연락 지점 및 알림 정책은 읽기 전용입니다.

1. **저장 및 테스트**를 선택하세요.

# Grafana 알림 리소스 프로비저닝
<a name="v10-alerting-setup-provision"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

알림 인프라는 종종 복잡하며 해당 파이프라인의 많은 부분이 종종 다른 위치에 상주합니다. 여러 팀과 조직에 걸쳐 규모를 조정하기란 특히 어렵습니다. Grafana 알림 프로비저닝을 사용하면 조직에 가장 적합한 방식으로 알림 데이터를 생성, 관리 및 유지 관리할 수 있으므로 이 프로세스가 더 쉬워집니다.

두 가지 옵션 중에서 선택할 수 있습니다.

1. 알림 프로비저닝 HTTP API를 사용하여 알림 리소스를 프로비저닝합니다.
**참고**  
일반적으로 Grafana UI에서는 API 프로비저닝 알림 규칙을 편집할 수 없습니다.  
편집을 활성화하려면 API에서 알림 규칙을 생성하거나 편집할 때 다음 요청에 x-disable-provenance 헤더를 추가합니다.  

   ```
   POST /api/v1/provisioning/alert-rules
   PUT /api/v1/provisioning/alert-rules/{UID}
   ```

1. Terraform을 사용하여 알림 리소스를 프로비저닝합니다.

**참고**  
현재 Grafana 알림에 대한 프로비저닝은 알림 규칙, 연락 지점, 음소거 타이밍 및 템플릿을 지원합니다. 파일 프로비저닝 또는 Terraform을 사용하여 프로비저닝된 알림 리소스는 Grafana 또는 기타 소스 내에서가 아니라 해당 리소스를 생성한 소스에서만 편집할 수 있습니다. 예를 들어 디스크의 파일을 사용하여 알림 리소스를 프로비저닝하는 경우 Terraform 또는 Grafana 내에서 데이터를 편집할 수 없습니다.

**Topics**
+ [Terraform을 사용하여 알림 리소스 생성 및 관리](v10-alerting-setup-provision-terraform.md)
+ [Grafana에서 프로비저닝된 알림 리소스 보기](v10-alerting-setup-provision-view.md)

# Terraform을 사용하여 알림 리소스 생성 및 관리
<a name="v10-alerting-setup-provision-terraform"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

Terraform의 Grafana 제공업체를 사용하여 알림 리소스를 관리하고 Grafana 시스템에 프로비저닝합니다. Grafana 알림에 대한 Terraform 제공업체 지원을 사용하면 전체 Grafana 알림 스택을 코드로 쉽게 생성, 관리 및 유지할 수 있습니다.

Terraform을 사용하여 알림 리소스를 관리하는 방법에 대한 자세한 내용은 Terraform 설명서의 [Grafana Provider](https://registry.terraform.io/providers/grafana/grafana/latest/docs) 설명서를 참조하세요.

다음 태스크를 완료하여 Terraform을 사용해 알림 리소스를 생성하고 관리하세요.

1. 프로비저닝을 위한 API 키를 생성하세요.

1. Terraform 제공업체를 구성하세요.

1. Terraform에서 알림 리소스를 정의하세요.

1. `terraform apply`를 실행하여 알림 리소스를 프로비저닝하세요.

## 사전 조건
<a name="v10-alerting-setup-provision-tf-prerequisites"></a>
+ grafana/grafana [Terraform provider](https://registry.terraform.io/providers/grafana/grafana/1.28.0) 1.27.0 이상이 있는지 확인하세요.
+ Grafana 9.1 이상을 사용하고 있는지 확인하세요. Grafana 버전 9를 사용하여 Amazon Managed Grafana 인스턴스를 생성한 경우 이에 해당합니다.

## 프로비저닝을 위한 API 키 생성
<a name="v10-alerting-setup-provision-tf-apikey"></a>

[일반 Grafana API 키를 생성](Using-Grafana-APIs.md)하여 Grafana에서 Terraform을 인증할 수 있습니다. API 키를 사용하는 대부분의 기존 도구는 새로운 Grafana 알림 지원과 함께 자동으로 작동해야 합니다. 특별히 Terraform에서 사용할 키 생성에 대한 자세한 내용은 [Using Terraform for Amazon Managed Grafana automation](https://aws-observability.github.io/observability-best-practices/recipes/recipes/amg-automation-tf/)을 참조하세요.

**프로비저닝을 위한 API 키를 생성하는 방법**

1. CI 파이프라인에 대한 새 서비스 계정을 생성하세요.

1. '알림 규칙 프로비저닝 API에 액세스' 역할을 할당하세요.

1. 새 서비스 계정 토큰을 생성하세요.

1. Terraform에서 사용할 토큰의 이름을 지정하고 저장하세요.

또는 기본 인증을 사용할 수 있습니다. 지원되는 모든 인증 형식을 보려면 Terraform 설명서의 [Grafana authentication](https://registry.terraform.io/providers/grafana/grafana/latest/docs#authentication)을 참조하세요.

## Terraform 제공업체 구성
<a name="v10-alerting-setup-provision-tf-configure"></a>

Grafana 알림 지원은 [Grafana Terraform 제공업체](https://registry.terraform.io/providers/grafana/grafana/latest/docs)의 일부로 포함됩니다.

다음은 Terraform 제공업체를 구성하는 데 사용할 수 있는 예제입니다.

```
terraform {
    required_providers {
        grafana = {
            source = "grafana/grafana"
            version = ">= 1.28.2"
        }
    }
}

provider "grafana" {
    url = <YOUR_GRAFANA_URL>
    auth = <YOUR_GRAFANA_API_KEY>
}
```

## 연락 지점 및 템플릿 프로비저닝
<a name="v10-alerting-setup-provision-tf-contacts"></a>

연락 지점은 알림 스택을 외부 환경에 연결합니다. 외부 시스템에 연결하는 방법과 알림을 전송할 위치를 Grafana에 알려줍니다. 15개가 넘는 서로 다른 [통합](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/contact_point#optional) 중에서 선택할 수 있습니다. 이 예제에서는 Slack 연락 지점을 사용합니다.

**연락처 및 템플릿을 프로비저닝하는 방법**

1. 이 코드 블록을 로컬 시스템의 .tf 파일로 복사하세요. *<slack-webhook-url>*을 Slack 웹후크 URL(또는 기타 연락 지점 세부 정보)로 바꾸세요.

   이 예제에서는 Slack에 알림 전달을 전송하는 연락 지점을 생성합니다.

   ```
   resource "grafana_contact_point" "my_slack_contact_point" {
       name = "Send to My Slack Channel"
   
       slack {
           url = <slack-webhook-url>
           text = <<EOT
   {{ len .Alerts.Firing }} alerts are firing!
   
   Alert summaries:
   {{ range .Alerts.Firing }}
   {{ template "Alert Instance Template" . }}
   {{ end }}
   EOT
       }
   }
   ```

1. 텍스트 필드에 알림 텍스트를 입력하세요.

   `text` 필드는 [Go 스타일 템플릿 지정](https://pkg.go.dev/text/template)을 지원합니다. 이를 통해 Grafana 알림 전달 템플릿을 Terraform에서 직접 관리할 수 있습니다.

1. `terraform apply` 명령을 실행합니다.

1. Grafana UI로 이동하여 연락 지점의 세부 정보를 확인하세요.

   UI에서 Terraform을 통해 프로비저닝된 리소스를 편집할 수 없습니다. 그러면 알림 스택이 항상 코드와 동기화됩니다.

1. **테스트**를 클릭하여 연락 지점이 올바르게 작동하는지 확인하세요.

**참고**  
여러 연락 지점에서 동일한 템플릿을 재사용할 수 있습니다. 위 예제에서는 `{{ template "Alert Instance Template" . }}` 문을 사용하여 공유 템플릿이 임베드되어 있습니다.  
그런 다음, 이 조각을 Terraform에서 별도로 관리할 수 있습니다.  

```
resource "grafana_message_template" "my_alert_template" {
    name = "Alert Instance Template"

    template = <<EOT
{{ define "Alert Instance Template" }}
Firing: {{ .Labels.alertname }}
Silence: {{ .SilenceURL }}
{{ end }}
EOT
}
```

## 알림 정책 및 라우팅 프로비저닝
<a name="v10-alerting-setup-provision-tf-notifications"></a>

알림 정책은 위치가 아닌 알림 인스턴스를 라우팅하는 방법을 Grafana에 알려줍니다. 레이블 및 매처 시스템을 사용하여 이전에 정의한 연락 지점에 실행 알림을 연결합니다.

**알림 정책 및 라우팅을 프로비저닝하는 방법**

1. 이 코드 블록을 로컬 시스템의 .tf 파일로 복사하세요.

   이 예제에서는 알림이 `alertname`을 기준으로 그룹화됩니다. 즉, 동일한 이름을 공유하는 알림에서 수신되는 모든 알림이 동일한 Slack 메시지로 그룹화됩니다.

   특정 알림을 다르게 라우팅하려는 경우 하위 정책을 추가할 수 있습니다. 하위 정책을 사용하면 레이블 일치에 따라 다양한 알림에 라우팅을 적용할 수 있습니다. 이 예제에서는 a=b 레이블이 있는 모든 알림에 음소거 타이밍을 적용합니다.

   ```
   resource "grafana_notification_policy" "my_policy" {
       group_by = ["alertname"]
       contact_point = grafana_contact_point.my_slack_contact_point.name
   
       group_wait = "45s"
       group_interval = "6m"
       repeat_interval = "3h"
   
       policy {
           matcher {
               label = "a"
               match = "="
               value = "b"
           }
           group_by = ["..."]
           contact_point = grafana_contact_point.a_different_contact_point.name
           mute_timings = [grafana_mute_timing.my_mute_timing.name]
   
           policy {
               matcher {
                   label = "sublabel"
                   match = "="
                   value = "subvalue"
               }
               contact_point = grafana_contact_point.a_third_contact_point.name
               group_by = ["..."]
           }
       }
   }
   ```

1. mute\$1timings 필드에서 음소거 타이밍을 알림 정책에 연결하세요.

1. `terraform apply` 명령을 실행합니다.

1. Grafana UI로 이동하여 알림 정책의 세부 정보를 확인하세요.
**참고**  
UI를 통해 Terraform에서 프로비저닝된 리소스를 편집할 수 없습니다. 그러면 알림 스택이 항상 코드와 동기화됩니다.

1. **테스트**를 클릭하여 알림 포인트가 올바르게 작동하는지 확인하세요.

## 프로비저닝 음소거 타이밍
<a name="v10-alerting-setup-provision-tf-mutetiming"></a>

음소거 타이밍은 정의된 기간에 알림 메시지를 음소거할 수 있는 기능을 제공합니다.

**음소거 타이밍을 프로비저닝하는 방법**

1. 이 코드 블록을 로컬 시스템의 .tf 파일로 복사하세요.

   이 예제에서는 주말에 알림 전달이 음소거됩니다.

   ```
   resource "grafana_mute_timing" "my_mute_timing" {
       name = "My Mute Timing"
   
       intervals {
           times {
             start = "04:56"
             end = "14:17"
           }
           weekdays = ["saturday", "sunday", "tuesday:thursday"]
           months = ["january:march", "12"]
           years = ["2025:2027"]
       }
   }
   ```

1. `terraform apply` 명령을 실행합니다.

1. Grafana UI로 이동하여 음소거 타이밍의 세부 정보를 확인하세요.

1. `mute_timings` 필드를 사용하여 알림 정책에서 새로 생성된 음소거 타이밍을 참조하세요. 그러면 일부 또는 모든 알림에 음소거 시간이 적용됩니다.
**참고**  
UI를 통해 Terraform에서 프로비저닝된 리소스를 편집할 수 없습니다. 그러면 알림 스택이 항상 코드와 동기화됩니다.

1. **테스트**를 클릭하여 음소거 타이밍이 올바르게 작동하는지 확인하세요.

## 알림 규칙 프로비저닝
<a name="v10-alerting-setup-provision-tf-rules"></a>

[알림 규칙](v10-alerting-configure.md)을 사용하면 Grafana 데이터 소스에 대해 경고할 수 있습니다. 이미 구성한 데이터 소스일 수도 있습니다. 아니면 알림 규칙과 함께 [Terraform에서 데이터 소스를 정의](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/data_source)할 수도 있습니다.

**알림 규칙을 프로비저닝하는 방법**

1. 쿼리할 데이터 소스와 규칙을 저장할 폴더를 생성하세요.

   이 예제에서 [테스트를 위한 TestData 데이터 소스 구성](testdata-data-source.md) 데이터 소스가 사용됩니다.

   Grafana의 모든 백엔드 데이터 소스에 대해 알림을 정의할 수 있습니다.

   ```
   resource "grafana_data_source" "testdata_datasource" {
       name = "TestData"
       type = "testdata"
   }
   
   resource "grafana_folder" "rule_folder" {
       title = "My Rule Folder"
   }
   ```

1. 알림 규칙을 정의하세요.

   알림 규칙에 대한 자세한 내용은 [how to create Grafana-managed alerts](https://grafana.com/blog/2022/08/01/grafana-alerting-video-how-to-create-alerts-in-grafana-9/)를 참조하세요.

1. 하나 이상의 규칙이 포함된 규칙 그룹을 생성하세요.

   이 예제에서 `grafana_rule_group` 리소스 그룹이 사용됩니다.

   ```
   resource "grafana_rule_group" "my_rule_group" {
       name = "My Alert Rules"
       folder_uid = grafana_folder.rule_folder.uid
       interval_seconds = 60
       org_id = 1
   
       rule {
           name = "My Random Walk Alert"
           condition = "C"
           for = "0s"
   
           // Query the datasource.
           data {
               ref_id = "A"
               relative_time_range {
                   from = 600
                   to = 0
               }
               datasource_uid = grafana_data_source.testdata_datasource.uid
               // `model` is a JSON blob that sends datasource-specific data.
               // It's different for every datasource. The alert's query is defined here.
               model = jsonencode({
                   intervalMs = 1000
                   maxDataPoints = 43200
                   refId = "A"
               })
           }
   
           // The query was configured to obtain data from the last 60 seconds. Let's alert on the average value of that series using a Reduce stage.
           data {
               datasource_uid = "__expr__"
               // You can also create a rule in the UI, then GET that rule to obtain the JSON.
               // This can be helpful when using more complex reduce expressions.
               model = <<EOT
   {"conditions":[{"evaluator":{"params":[0,0],"type":"gt"},"operator":{"type":"and"},"query":{"params":["A"]},"reducer":{"params":[],"type":"last"},"type":"avg"}],"datasource":{"name":"Expression","type":"__expr__","uid":"__expr__"},"expression":"A","hide":false,"intervalMs":1000,"maxDataPoints":43200,"reducer":"last","refId":"B","type":"reduce"}
   EOT
               ref_id = "B"
               relative_time_range {
                   from = 0
                   to = 0
               }
           }
   
           // Now, let's use a math expression as our threshold.
           // We want to alert when the value of stage "B" above exceeds 70.
           data {
               datasource_uid = "__expr__"
               ref_id = "C"
               relative_time_range {
                   from = 0
                   to = 0
               }
               model = jsonencode({
                   expression = "$B > 70"
                   type = "math"
                   refId = "C"
               })
           }
       }
   }
   ```

1. Grafana UI로 이동하여 알림 규칙을 확인하세요.

   알림 규칙이 실행 중인지 확인할 수 있습니다. 또한 각 알림 규칙의 쿼리 단계에 대한 시각화를 볼 수 있습니다.

   알림이 실행되면 Grafana에서는 사용자가 정의한 정책을 통해 알림을 라우팅합니다.

   예를 들어 Slack을 연락 지점으로 선택하면 Grafana의 임베드된 [Alertmanager](https://github.com/prometheus/alertmanager)에서 자동으로 Slack에 메시지를 게시합니다.

# Grafana에서 프로비저닝된 알림 리소스 보기
<a name="v10-alerting-setup-provision-view"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

Grafana에서 알림 리소스가 생성되었는지 확인할 수 있습니다.

**Grafana에서 프로비저닝된 리소스를 보는 방법**

1. Grafana 인스턴스를 여세요.

1. 알림으로 이동하세요.

1. 알림 규칙과 같은 알림 리소스 폴더를 클릭하세요.

   프로비저닝된 리소스에는 **프로비저닝됨** 레이블이 지정되므로 수동으로 생성되지 않았음을 표시합니다.

**참고**  
Grafana에서는 프로비저닝된 리소스를 편집할 수 없습니다. 프로비저닝 파일을 변경하고 Grafana를 다시 시작하거나 핫 리로드를 수행하는 경우에만 리소스 속성을 변경할 수 있습니다. 이렇게 하면 파일이 다시 프로비저닝되거나 핫 리로드가 수행되는 경우 덮어쓸 리소스가 변경되는 것을 방지할 수 있습니다.

# 알림 구성
<a name="v10-alerting-configure"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

알림을 생성 및 관리하는 데 필요한 기능과 통합을 구성합니다.

**Topics**
+ [Grafana 관리형 알림 규칙 구성](v10-alerting-configure-grafanamanaged.md)
+ [데이터 소스 관리형 알림 규칙 구성](v10-alerting-configure-datasourcemanaged.md)
+ [기록 규칙 구성](v10-alerting-configure-recordingrules.md)
+ [연락 지점 구성](v10-alerting-configure-contactpoints.md)
+ [알림 정책 구성](v10-alerting-configure-notification-policies.md)

# Grafana 관리형 알림 규칙 구성
<a name="v10-alerting-configure-grafanamanaged"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

Grafana 관리형 규칙은 가장 유연한 알림 규칙 유형입니다. 이를 통해 지원되는 데이터 소스의 데이터에 대해 작업을 취할 수 있는 알림을 생성할 수 있습니다. 여러 데이터 소스를 지원하는 것 외에도 표현식을 추가하여 데이터를 변환하고 알림 조건을 설정할 수도 있습니다. 알림 전달에서 이미지 사용도 지원됩니다. 단일 규칙 정의에서 여러 데이터 소스의 알림을 허용하는 유일한 유형의 규칙입니다.

하나의 알림 규칙(다차원 알림이라고도 함)의 결과로 여러 알림 인스턴스가 생성될 수 있습니다.

Grafana 관리형 알림 규칙은 규칙을 저장하는 폴더에 대한 편집 권한이 있는 사용자만 편집하거나 삭제할 수 있습니다.

UI에서 생성된 알림 리소스를 삭제하면 더 이상 검색할 수 없습니다. 구성을 백업하고 삭제된 알림 리소스를 복원할 수 있으려면 Terraform 또는 알림 API를 사용하여 알림 리소스를 생성합니다.

다음 절차에서는 Grafana 관리형 알림 규칙을 생성하는 프로세스를 살펴봅니다.

Grafana 관리형 알림 규칙을 생성하려면 워크스페이스 내 알림 생성 흐름을 사용하고 다음 단계에 따라 도움을 받으세요.

**알림 규칙 이름 설정**

1. **알림** -> **알림 규칙** -> **\$1 새 알림 규칙**을 선택하세요.

1. 이름을 입력하여 알림 규칙을 식별하세요.

   이 이름은 알림 규칙 목록에 표시됩니다. 또한 이 규칙에서 생성된 모든 알림 인스턴스에 대한 `alertname` 레이블이기도 합니다.

그런 다음, 측정하려는 데이터와 알림 규칙이 실행되기 전에 충족해야 하는 조건을 가져오도록 쿼리를 정의합니다.

**쿼리 및 조건을 정의하는 방법**

1. 데이터 소스를 선택하세요.

1. **옵션** 드롭다운에서 [시간 범위](v10-dash-using-dashboards.md#v10-dash-setting-dashboard-time-range)를 지정하세요.
**참고**  
Grafana 알림은 고정된 상대 시간 범위(예: `now-24hr: now`)만 지원합니다.  
절대 시간 범위(`2021-12-02 00:00:00 to 2021-12-05 23:59:592`) 또는 반상대 시간 범위(`now/d to: now`)는 지원하지 않습니다.

1. 쿼리를 추가하세요.

   여러 [쿼리](v10-panels-query-xform.md#v10-panels-query-xform-add)를 추가하려면 **쿼리 추가**를 선택하세요.

   모든 알림 규칙은 기본적으로 Grafana에서 관리합니다. 데이터 소스 관리형 알림 규칙으로 전환하려면 **데이터 소스 관리형 알림 규칙으로 전환**을 클릭하세요.

1. 하나 이상의 [표현식](v10-panels-query-xform-expressions.md)을 추가하세요.

   1. 각 표현식에 대해 **클래식 조건**을 선택하여 단일 알림 규칙을 생성하거나 **수학**, **축소**, **리샘플링** 옵션 중에서 선택하여 각 시리즈에 대해 별도의 알림을 생성하세요.
**참고**  
Prometheus를 사용하는 경우 인스턴트 벡터와 기본 제공 함수를 사용할 수 있으므로 표현식을 추가할 필요가 없습니다.

   1. **미리 보기**를 선택하여 표현식이 성공했는지 확인하세요.

1. [선택 사항] 복구 임계치를 추가하려면 **사용자 지정 복구 임계치** 토글을 켜고 알림 규칙이 실행을 중지해야 하는 시점의 값을 입력하세요.

   쿼리에는 복구 임계치를 하나만 추가할 수 있으며 이는 알림 조건이어야 합니다.

1. 알림 조건으로 설정하려는 쿼리 또는 표현식에서 **알림 조건으로 설정**을 선택하세요.

알림 규칙 평가를 사용하여 알림 규칙을 평가해야 하는 빈도와 상태를 변경해야 하는 속도를 결정합니다.

이를 위해 알림 규칙이 올바른 평가 그룹에 있는지 확인하고 사용 사례에 가장 적합한 보류 기간을 설정해야 합니다.

**알림 평가 동작을 설정하는 방법**

1. 폴더를 선택하거나 **\$1 새 폴더**를 선택하세요.

1. 평가 그룹을 선택하거나 **\$1 새 평가 그룹**을 클릭하세요.

   새 평가 그룹을 생성하는 경우 그룹의 간격을 지정합니다.

   동일한 그룹 내 모든 규칙은 동일한 시간 간격에 걸쳐 동시에 평가됩니다.

1. 보류 기간을 입력하세요다.

   보류 기간은 알림 규칙이 실행될 때까지 조건을 위반할 수 있는 기간입니다.

   조건이 충족되면 알림은 **보류 중** 상태가 됩니다. 지정된 기간 동안 조건이 활성 상태로 유지되면 알림이 **실행** 상태로 전환되고, 그렇지 않으면 **일반** 상태로 돌아갑니다.

1. 필요한 경우 알림 일시 중지 알림을 켜세요.
**참고**  
알림를 조정하는 동안 알림 규칙 평가를 일시 중지하여 소음 알림을 방지하세요. 일시 중지하면 알림 규칙 평가가 중지되고 알림 인스턴스가 생성되지 않습니다. 음소거 타이밍과는 다릅니다. 음소거 타이밍의 경우 알림 전달을 중지하지만 알림 규칙 평가 및 알림 인스턴스 생성을 허용합니다.  
알림 규칙 평가를 일시 중지하여 알림을 조정하는 동안 소음이 될 수 있는 알림을 방지할 수 있습니다. 일시 중지하면 알림 규칙 평가가 중지되고 알림 인스턴스가 생성되지 않습니다. 음소거 타이밍과는 다릅니다. 음소거 타이밍의 경우 알림 전달을 중지하지만 알림 규칙 평가 및 알림 인스턴스 생성을 허용합니다.

1. **데이터 없음 및 오류 처리 구성**에서 데이터가 없는 경우 경고 동작을 구성하세요.

   이 섹션의 뒷부분에 나오는 지침을 사용하세요.

알림 규칙에 레이블을 추가하여 실행 알림 인스턴스를 처리해야 하는 알림 정책을 설정합니다.

레이블에 관계없이 모든 알림 규칙 및 인스턴스는 기본 알림 정책과 일치합니다. 중첩된 정책이 없거나 중첩된 정책이 알림 규칙 또는 알림 인스턴스의 레이블과 일치하지 않는 경우 기본 알림 정책이 일치하는 정책입니다.

**알림을 구성하려면**

1. 알림 라우팅 방식을 변경하려면 레이블을 추가하세요.

   드롭다운에서 기존 키-값 페어를 선택하여 사용자 지정 레이블을 추가하거나 새 키 또는 값을 입력하여 새 레이블을 추가하세요.

1. 알림 인스턴스 라우팅 설정을 미리 보세요.

   추가된 레이블을 기반으로 알림 인스턴스가 표시된 알림 정책으로 라우팅됩니다.

   각 알림 정책을 확장하여 자세한 내용을 확인하세요.

1. 알림 라우팅 세부 정보 및 미리 보기를 보려면 **세부 정보 보기**를 선택하세요.

[주석](v10-alerting-overview-labels.md#v10-alerting-overview-labels-annotations)을 추가하여 알림 전달 메시지에 알림에 대한 더 많은 컨텍스트를 제공하세요.

주석은 메타데이터를 추가하여 알림 전달 메시지에서 알림에 대한 자세한 정보를 제공합니다. 예를 들어 **요약** 주석을 추가하여 알림이 발생한 값 또는 발생한 서버를 알려줍니다.

**주석을 추가하는 방법**

1. [선택 사항] 요약을 추가하세요.

   관련 상태 및 이유에 대한 간략한 요약.

1. [선택 사항] 설명을 추가하세요.

   알림 규칙의 기능에 대한 설명.

1. [선택 사항] 런북 URL을 추가하세요.

   런북을 알림용으로 보관하는 웹 페이지

1. [선택 사항] 사용자 지정 주석을 추가하세요.

1. [선택 사항] 대시보드 및 패널 링크를 추가하세요.

   알림을 대시보드의 패널에 연결하세요.

1. **규칙 저장**을 선택합니다.

**단일 및 다차원 규칙**

Grafana 관리형 알림의 경우 클래식 조건의 규칙을 생성하거나 다차원 규칙을 생성할 수 있습니다.
+ **클래식 조건이 있는 규칙**

  클래식 조건 표현식을 사용하여 조건이 충족될 때 단일 알림을 트리거하는 규칙을 생성합니다. 여러 시리즈를 반환하는 쿼리의 경우 Grafana에서는 각 시리즈의 알림 상태를 추적하지 않습니다. 따라서 Grafana는 여러 시리즈에 대한 알림 조건이 충족되더라도 단일 알림만 전송합니다.
+ **다차원 규칙**

  각 시리즈에 대해 별도의 알림을 생성하려면 다차원 규칙을 생성합니다. `Math`, `Reduce` 또는 `Resample` 표현식을 사용하여 다차원 규칙을 생성합니다. 예제:
  + 각 쿼리에 `Reduce` 표현식을 추가하여 선택한 시간 범위의 값을 단일 값으로 집계합니다([숫자 데이터를 사용하는 규칙](v10-alerting-overview-numeric.md)의 경우 필요하지 않음).
  + 규칙의 조건에 `Math` 표현식을 추가합니다. 쿼리 또는 축소 표현식에서 규칙이 알림을 실행하지 않아야 하는 경우 `0` 또는 실행해야 하는 경우 양수를 이미 반환하면 필요하지 않습니다. 몇 가지 예제: B 쿼리/표현식 값이 70보다 큰 경우 실행해야 하면 `$B > 70`. B 값이 C 값에 100을 곱한 값보다 작은 경우 실행해야 하면 `$B < $C * 100`. 비교 중인 쿼리의 결과에 여러 시리즈가 있는 경우 레이블이 같거나 한 쿼리가 다른 쿼리의 하위 세트인 경우 서로 다른 쿼리의 시리즈가 일치합니다.

**참고**  
Grafana에서는 템플릿 변수가 있는 알림 쿼리를 지원하지 않습니다. 자세한 내용은 [https://community.grafana.com/t/template-variables-are-not-supported-in-alert-queries-while-setting-up-alert/2514](https://community.grafana.com/t/template-variables-are-not-supported-in-alert-queries-while-setting-up-alert/2514)에서 확인할 수 있습니다.

**데이터 없음 및 오류 처리 구성**

알림 규칙 평가에서 데이터 없음 또는 오류가 반환될 때 알림 동작을 구성합니다.

**참고**  
평가에서 데이터 없음 또는 오류를 반환하는 경우 실행하도록 구성된 알림 규칙은 전체 평가 기간이 완료될 때만 실행됩니다. 즉, 알림 규칙 조건이 위반될 때 즉시 실행하는 대신 알림 규칙은 **기간** 필드로 설정된 시간이 완료될 때까지 기다렸다가 실행되므로 알림 노이즈를 줄이고 임시 데이터 가용성 문제를 해결할 때 이 방법을 사용할 수 있습니다.

알림 규칙 평가에서 데이터 없음을 반환하는 경우 알림 규칙의 상태가 다음과 같이 표시되도록 설정할 수 있습니다.


| 데이터 없음 | 설명 | 
| --- | --- | 
| 데이터 없음 | 알림 규칙의 이름 및 UID, 레이블로 데이터 없음을 반환하는 데이터 소스의 UID가 포함된 새 알림 DatasourceNoData를 생성합니다. | 
| 알림 | 알림 규칙 상태를 Alerting 상태로 설정합니다. 알림 규칙은 기간 필드에 설정된 시간이 끝날 때까지 기다렸다가 실행됩니다. | 
| Ok | 알림 규칙 상태를 Normal 상태로 설정합니다. | 

평가에서 오류가 반환되면 알림 규칙의 상태가 다음과 같이 표시되도록 설정할 수 있습니다.


| 오류 | 설명 | 
| --- | --- | 
| 오류 | 알림 규칙의 이름 및 UID, 레이블로 데이터 없음을 반환하는 데이터 소스의 UID가 포함된 알림 인스턴스 DatasourceError를 생성합니다. | 
| 알림 | 알림 규칙 상태를 Alerting 상태로 설정합니다. 알림 규칙은 기간 필드에 설정된 시간이 끝날 때까지 기다렸다가 실행됩니다. | 
| Ok | 알림 규칙 상태를 Normal 상태로 설정합니다. | 

**오래된 알림 인스턴스 해결**

두 평가 간격 동안 쿼리 결과에서 차원 또는 시리즈가 완전히 사라진 경우 알림 인스턴스는 오래된 것으로 간주됩니다.

`Alerting`/`NoData`/`Error` 상태의 오래된 알림 인스턴스는 자동으로 `Resolved`로 표시되고 `grafana_state_reason` 주석은 `MissingSeries` 이유와 함께 알림 인스턴스에 추가됩니다.

**패널에서 알림 생성**

모든 패널 유형에서 알림을 생성합니다. 즉, 패널에서 쿼리를 재사용하고 이를 기반으로 알림을 생성할 수 있습니다.

1. 대시보드 섹션에서 **대시보드**로 이동하세요.

1. 패널의 오른쪽 상단에서 점 3개(줄임표)를 선택하세요.

1. 드롭다운 메뉴에서 **추가...**를 선택한 다음, **새 알림 규칙**을 선택하세요.

그러면 알림 규칙 양식이 열립니다. 여기에서 현재 패널의 쿼리를 기반으로 알림을 구성 및 생성할 수 있습니다.

# 데이터 소스 관리형 알림 규칙 구성
<a name="v10-alerting-configure-datasourcemanaged"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

눈금자 API가 활성화된 외부 Grafana Mimir 또는 Loki 인스턴스에 대한 알림 규칙을 생성합니다. 이를 데이터 소스 관리형 알림 규칙이라고 합니다.

**참고**  
외부 Grafana Mimir 또는 Loki 인스턴스에 대한 알림 규칙은 편집자 또는 관리자 역할을 가진 사용자가 편집하거나 삭제할 수 있습니다.  
UI에서 생성된 알림 리소스를 삭제하면 더 이상 검색할 수 없습니다. 구성을 백업하고 삭제된 알림 리소스를 복원할 수 있으려면 Terraform 또는 알림 API를 사용하여 알림 리소스를 생성합니다.

**사전 조건**
+ Prometheus 또는 Loki 데이터 소스에 대한 쓰기 권한이 있는지 확인합니다. 그렇지 않으면 Grafana Mimir 관리형 알림 규칙을 생성하거나 업데이트할 수 없습니다.
+ Grafana Mimir 및 Loki 데이터 소스의 경우 해당 서비스를 구성하여 눈금자 API를 활성화합니다.
  + **Loki** - Loki 데이터 소스의 기본값인 `local` 규칙 스토리지 유형은 규칙 보기만 지원합니다. 규칙을 편집하려면 다른 규칙 스토리지 유형 중 하나를 구성합니다.
  + **Grafana Mimir** - `/prometheus` 접두사를 사용합니다. Prometheus 데이터 소스는 Grafana Mimir 및 Prometheus를 모두 지원하며 Grafana는 [쿼리 API](https://grafana.com/docs/mimir/latest/operators-guide/reference-http-api/#querier--query-frontend) 및 [눈금자 API](https://grafana.com/docs/mimir/latest/operators-guide/reference-http-api/#ruler)가 모두 동일한 URL에 있을 것으로 예상합니다. 눈금자 API에 별도의 URL을 제공할 수 없습니다.

**참고**  
특정 Loki 또는 Prometheus 데이터 소스에 대한 알림 규칙을 관리하지 않으려면 해당 설정으로 이동하여 **알림 UI를 통해 알림 관리** 확인란의 선택을 취소합니다.

다음 절차에서는 데이터 소스 관리형 알림 규칙을 생성하는 프로세스를 안내합니다.

데이터 소스 관리형 알림 규칙을 생성하려면 워크스페이스 내 알림 생성 흐름을 사용하고 다음 단계에 따라 도움을 받으세요.

**알림 규칙 이름을 설정하는 방법**

1. **알림** -> **알림 규칙** -> **\$1 새 알림 규칙**을 선택하세요.

1. 이름을 입력하여 알림 규칙을 식별하세요.

   이 이름은 알림 규칙 목록에 표시됩니다. 또한 이 규칙에서 생성된 모든 알림 인스턴스에 대한 `alertname` 레이블이기도 합니다.

측정하려는 데이터와 알림 규칙이 실행되기 전에 충족해야 하는 조건을 가져오도록 쿼리를 정의합니다.

**쿼리 및 조건을 정의하는 방법**

1. 모든 알림 규칙은 기본적으로 Grafana에서 관리합니다. 데이터 소스 관리형 알림 규칙으로 전환하려면 **데이터 소스 관리형 알림 규칙으로 전환**을 선택합니다.

1. 드롭다운 목록에서 데이터 소스를 선택하세요.

   **고급 데이터 소스 선택기 열기**를 선택하여 데이터 소스 추가(관리자만 해당)를 포함한 추가 옵션을 볼 수도 있습니다.

1. PromQL 또는 LogQL 쿼리를 입력하세요.

1. **알림 미리 보기**를 선택하세요.

알림 규칙 평가를 사용하여 알림 규칙을 평가해야 하는 빈도와 상태를 변경해야 하는 속도를 결정합니다.

**알림 평가 동작을 설정하는 방법**

1. 네임스페이스를 선택하거나 **\$1 새 네임스페이스**를 선택하세요.

1. 평가 그룹을 선택하거나 **\$1 새 평가 그룹**을 선택하세요.

   새 평가 그룹을 생성하는 경우 그룹의 간격을 지정합니다.

   동일한 그룹 내 모든 규칙은 동일한 시간 간격에 걸쳐 순차적으로 평가됩니다.

1. 보류 기간을 입력하세요다.

   보류 기간은 알림 규칙이 실행될 때까지 조건을 위반할 수 있는 기간입니다.

   조건이 충족되면 알림이 `Pending` 상태가 됩니다. 지정된 기간에 조건이 활성 상태로 유지되면 알림이 `Firing` 상태로 전환되고, 그렇지 않으면 `Normal` 상태로 돌아갑니다.

알림 규칙에 레이블을 추가하여 실행 알림 인스턴스를 처리해야 하는 알림 정책을 설정합니다.

레이블에 관계없이 모든 알림 규칙 및 인스턴스는 기본 알림 정책과 일치합니다. 중첩된 정책이 없거나 중첩된 정책이 알림 규칙 또는 알림 인스턴스의 레이블과 일치하지 않는 경우 기본 알림 정책이 일치하는 정책입니다.

**알림 구성**
+ 알림 라우팅 방식을 변경하려면 레이블을 추가하세요.

  드롭다운에서 기존 키-값 페어를 선택하여 사용자 지정 레이블을 추가하거나 새 키 또는 값을 입력하여 새 레이블을 추가하세요.

[주석](v10-alerting-overview-labels.md#v10-alerting-overview-labels-annotations)을 추가하여 알림 전달의 알림에 대한 컨텍스트를 더 많이 제공하세요.

주석은 메타데이터를 추가하여 알림 전달에서 알림에 대한 자세한 정보를 제공합니다. 예를 들어 `Summary` 주석을 추가하여 알림이 발생한 값 또는 발생한 서버를 알려줍니다.

**주석을 추가하는 방법**

1. [선택 사항] 요약을 추가하세요.

   관련 상태 및 이유에 대한 간략한 요약.

1. [선택 사항] 설명을 추가하세요.

   알림 규칙의 기능에 대한 설명.

1. [선택 사항] 런북 URL을 추가하세요.

   런북을 알림용으로 보관하는 웹 페이지

1. [선택 사항] 사용자 지정 주석을 추가하세요.

1. [선택 사항] 대시보드 및 패널 링크를 추가하세요.

   알림을 대시보드의 패널에 연결하세요.

1. **규칙 저장**을 선택합니다.

# 기록 규칙 구성
<a name="v10-alerting-configure-recordingrules"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

외부 Grafana Mimir 또는 Loki 인스턴스에 대한 기록 규칙을 생성 및 관리할 수 있습니다. 기록 규칙을 사용하면 자주 필요하거나 계산 비용이 많이 드는 표현식을 미리 계산하고, 해당 결과를 새로운 시계열 세트로 저장합니다. 이 새 시계열을 쿼리하는 것이 더 빠릅니다. 특히 대시보드를 새로 고칠 때마다 동일한 표현식을 쿼리하기 때문에 대시보드의 경우 더 빠릅니다.

**참고**  
기록 규칙은 인스턴스 규칙으로 실행되며 10초마다 실행됩니다.

**사전 조건**
+ Prometheus 또는 Loki 데이터 소스에 대한 쓰기 권한이 있는지 확인합니다. 데이터 소스에서 알림 규칙을 생성하거나 업데이트합니다.
+ Grafana Mimir 및 Loki 데이터 소스의 경우 해당 서비스를 구성하여 눈금자 API를 활성화합니다.
  + **Loki** - Loki 데이터 소스의 기본값인 `local` 규칙 스토리지 유형은 규칙 보기만 지원합니다. 규칙을 편집하려면 다른 스토리지 유형 중 하나를 구성합니다.
  + **Grafana Mimir** - `/prometheus` 접두사를 사용합니다. Prometheus 데이터 소스는 Grafana Mimir 및 Prometheus를 모두 지원하며 Grafana는 쿼리 API 및 눈금자 API가 모두 동일한 URL에 있을 것으로 예상합니다. 눈금자 API에 별도의 URL을 제공할 수 없습니다.

**참고**  
특정 Loki 또는 Prometheus 데이터 소스에 대한 알림 규칙을 관리하지 않으려면 해당 설정으로 이동하여 **알림 UI를 통해 알림 관리** 확인란의 선택을 취소합니다.

**기록 규칙을 생성하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**, **알림 규칙**을 선택하세요.

1. **새 기록 규칙**을 선택하세요.

1. 규칙 이름을 설정하세요.

   기록 규칙 이름은 Prometheus 지표 이름이어야 하며 공백이 없어야 합니다.

1. 쿼리 정의
   + Loki 또는 Prometheus 데이터 소스를 선택하세요.
   + 쿼리를 입력합니다.

1. 네임스페이스 및 그룹을 추가하세요.
   + **네임스페이스** 드롭다운에서 기존 규칙 네임스페이스를 선택하거나 새로 추가하세요. 네임스페이스에는 하나 이상의 규칙 그룹이 포함될 수 있으며 조직의 목적만 있을 수 있습니다.
   + **그룹** 드롭다운에서 선택한 네임스페이스 내에서 기존 그룹을 선택하거나 새로 추가하세요. 새로 생성된 규칙은 그룹 끝에 추가됩니다. 그룹 내 규칙은 동일한 평가 시간으로 일정한 간격에 따라 순차적으로 실행됩니다.

1. 레이블을 추가하세요.
   + 드롭다운에서 기존 키-값 페어를 선택하여 사용자 지정 레이블을 추가하거나 새 키 또는 값을 입력하여 새 레이블을 추가하세요.

1. **규칙 저장**을 선택하여 규칙을 저장하거나, **규칙을 저장하고 종료**하여 규칙을 저장하고 알림 페이지로 돌아가세요.

# 연락 지점 구성
<a name="v10-alerting-configure-contactpoints"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

연락 지점을 사용하여 알림 규칙이 실행될 때 연락처에 알림을 보내는 방법을 정의합니다.

**참고**  
Grafana 관리형 알림에 대한 연락 지점을 생성 및 편집할 수 있습니다. 데이터 소스에 대한 관리형 알림의 연락 지점은 읽기 전용입니다.

## 연락 지점 작업
<a name="v10-alerting-configure-contactpoints-working"></a>

다음 절차에서는 연락 지점을 추가, 편집, 삭제, 테스트하는 방법을 안내합니다.

**연락 지점을 추가하는 방법**

1. 왼쪽 메뉴에서 **알림**을 선택하세요.

1. **연락 지점**을 선택하세요.

1. **Alertmanager 선택** 드롭다운에서 Alertmanager를 선택하세요. Grafana Alertmanager는 기본적으로 선택됩니다.

1. **연락 지점** 탭에서 **\$1 연락 지점 추가**를 선택하세요.

1. 연락 지점의 **이름**을 입력하세요.

1. **통합**에서 유형을 선택하고 해당 유형을 기반으로 필수 필드를 작성하세요. 예를 들어 Slack을 선택한 경우 Slack 채널과 연락을 받아야 하는 사용자를 입력하세요.

1. 선택한 연락 지점에 대해 사용할 수 있는 경우 원하는 **선택적 설정**을 선택하여 추가 설정을 지정하세요.

1. **알림 설정**에서 알림이 확인될 때 알림을 받지 않으려면 **확인된 메시지 비활성화**를 선택하세요.

1. 다른 연락 지점 통합을 추가하려면 **연락 지점 통합 추가**를 선택하고 필요한 각 연락 지점 유형에 대해 단계를 반복하세요.

1. 변경 내용을 저장합니다.

**연락 지점을 편집하는 방법**

1. 왼쪽 메뉴에서 **알림**을 선택하세요.

1. **연락 지점**을 선택하여 기존 연락 지점 목록을 확인하세요.

1. 편집할 연락 지점을 선택한 다음, **편집**을 선택하세요.

1. 연락 지점을 업데이트한 다음, 변경 사항을 저장하세요.

알림 정책에서 사용하지 않는 연락 지점을 삭제할 수 있습니다.

**연락 지점을 삭제하는 방법**

1. 왼쪽 메뉴에서 **알림**을 선택하세요.

1. **연락 지점**을 선택하여 기존 연락 지점 목록을 여세요.

1. **연락 지점**에서 삭제할 연락 지점을 선택한 다음, **추가**, **삭제**를 선택하세요.

1. 확인 대화 상자에서 **예, 삭제**를 선택하세요.

**참고**  
알림 정책에서 연락 지점을 사용 중인 경우 연락 지점을 삭제하기 전에 알림 정책을 삭제하거나 다른 연락 지점을 사용하도록 편집해야 합니다.

연락 지점을 생성한 후 테스트 알림을 보내 올바르게 구성되었는지 확인할 수 있습니다.

**테스트 알림을 전송하는 방법**

1. 왼쪽 메뉴에서 **알림**을 선택하세요.

1. **연락 지점**을 선택하여 기존 연락 지점 목록을 여세요.

1. **연락 지점**에서 테스트할 연락 지점을 선택한 다음, **편집**을 선택하세요. 필요한 경우 새 연락 지점을 생성할 수도 있습니다.

1. **테스트**를 선택하여 연락 지점 테스트 대화 상자를 여세요.

1. 사전 정의된 테스트 알림을 보낼지 또는 **사용자 지정**을 선택하여 테스트 알림에 사용자 지정 주석과 레이블을 추가할지 선택하세요.

1. 지정된 연락 지점으로의 알림을 테스트하려면 **테스트 알림 전송**을 선택하세요.

## 연락 지점 통합 구성
<a name="v10-alerting-configure-contactpoints-integration"></a>

알림 규칙이 실행될 때 알림을 수신할 선호하는 통신 채널을 선택하도록 Grafana에서 연락 지점 통합을 구성합니다. 각 통합에는 고유한 구성 옵션과 설정 프로세스가 있습니다. 대부분의 경우 API 키 또는 웹후크 URL 제공이 포함됩니다.

구성되면 통합을 연락 지점의 일부로 사용하여 알림 상태가 변경될 때마다 알림을 받을 수 있습니다. 이 섹션에서는 PagerDuty를 예로 사용하여 통합을 구성하는 기본 단계를 다룹니다. 이를 통해 실시간 알림을 수신하고 모니터링 데이터를 계속 확인할 수 있습니다.

**지원되는 통합 목록**

다음 표에는 Grafana에서 지원하는 연락 지점 유형이 나열되어 있습니다.


| 이름 | Type | 
| --- | --- | 
| Amazon SNS | `sns` | 
| OpsGenie | `opsgenie` | 
| PagerDuty | `pagerduty` | 
| Slack | `slack` | 
| VictorOps | `victorops` | 

**알림을 위한 PagerDuty 구성**

PagerDuty를 설정하려면 통합 키를 제공해야 합니다. 다음 세부 정보를 제공합니다.


| 설정 | 설명 | 
| --- | --- | 
| 통합 키 | PagerDuty의 통합 키 | 
| 심각도 | 동적 알림 수준. 기본값은 critical입니다. | 
| 사용자 지정 세부 정보 | 이벤트에 대한 추가 세부 정보. | 

`CustomDetails` 필드는 임의의 키-값 페어가 포함된 객체입니다. 사용자 정의 세부 정보는 기본적으로 사용되는 정보와 병합됩니다.

`CustomDetails`의 기본값은 다음과 같습니다.

```
{
	"firing":       `{{ template "__text_alert_list" .Alerts.Firing }}`,
	"resolved":     `{{ template "__text_alert_list" .Alerts.Resolved }}`,
	"num_firing":   `{{ .Alerts.Firing | len }}`,
	"num_resolved": `{{ .Alerts.Resolved | len }}`,
}
```

중복 키의 경우 사용자 정의 세부 정보가 기본 키를 덮어씁니다.

# 알림 정책 구성
<a name="v10-alerting-configure-notification-policies"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

알림 정책은 알림이 연락 지점으로 라우팅되는 방법을 결정합니다.

정책은 트리 구조를 사용하며, 각 정책에는 하나 이상의 중첩된 정책이 있을 수 있습니다. 기본 정책을 제외한 각 정책은 특정 알림 레이블과 일치할 수도 있습니다.

각 알림은 기본 정책에 의해 평가되며, 이후 중첩된 각 정책에 의해 평가됩니다.

중첩된 정책에 대해 `Continue matching subsequent sibling nodes` 옵션을 활성화하면 하나 이상의 일치 후에도 평가가 계속됩니다. 상위 정책의 구성 설정 및 연락 지점 정보는 하위 정책과 일치하지 않는 알림의 동작을 제어합니다. 기본 정책은 중첩된 정책과 일치하지 않는 모든 알림을 제어합니다.

알림 정책에 대한 자세한 내용은 [알림](v10-alerting-explore-notifications.md) 섹션을 참조하세요.

다음 절차에서는 알림 정책을 생성 및 관리하는 방법을 보여줍니다.

**기본 알림 정책을 편집하는 방법**

1. 왼쪽 메뉴에서 **알림**을 선택하세요.

1. **알림 정책**을 선택하세요.

1. **Alertmanager 선택** 드롭다운에서 편집하려는 Alertmanager를 선택하세요.

1. **기본 정책** 섹션에서 **...**, **편집**을 선택하세요.

1. **기본 연락 지점**에서 알림 규칙이 특정 정책과 일치하지 않을 때 규칙에 대한 알림을 보내야 하는 연락 지점을 업데이트하세요.

1. **그룹화 기준**에서 알림을 그룹화할 기준이 되는 레이블을 선택하세요. 이 정책에 대해 여러 개의 알림이 일치하는 경우 이 레이블로 그룹화됩니다. 알림은 그룹별로 전송됩니다. 필드가 비어 있으면(기본값) 모든 알림이 단일 그룹으로 전송됩니다. 특수 레이블(`...`)을 사용하여 모든 레이블별로 알림을 그룹화하세요(이 경우 효과적으로 그룹화를 비활성화함).

1. **타이밍 옵션**의 다음 옵션 중에서 선택하세요.
   + **그룹 대기** - 초기 알림을 전송하기 전에 동일한 그룹의 알림을 버퍼링하기 위해 대기하는 시간. 기본값은 30초입니다.
   + **그룹 간격** - 그룹에 대한 두 알림 사이의 최소 시간 간격. 기본값은 5분입니다.
   + **반복 간격** - 그룹에 새 알림이 추가되지 않은 경우 알림을 다시 보내기 전 최소 시간 간격. 기본값은 4시간입니다.

1. **저장**을 선택하여 변경 사항을 저장합니다.

새 알림 정책을 생성하려면 해당 트리 구조를 따라야 합니다. 트리의 트렁크에서 생성된 새 정책(기본 정책)은 트리의 브랜치에 해당합니다. 각 브랜치에는 자체 중첩 정책이 있을 수 있습니다. 따라서 기본 정책 또는 이미 중첩된 정책에 따라 항상 새 **중첩된** 정책을 추가합니다.

**새 중첩된 정책을 추가하는 방법**

1. 왼쪽 메뉴에서 **알림**을 선택하세요.

1. **알림 정책**을 선택하세요.

1. **Alertmanager 선택** 드롭다운에서 편집하려는 Alertmanager를 선택하세요.

1. 최상위 특정 정책을 추가하려면 특정 라우팅 섹션(기본 정책 또는 새 중첩된 정책을 추가하려는 기존 정책)으로 이동하고 **\$1 새 중첩된 정책**을 선택하세요.

1. 일치하는 레이블 섹션에서 일치하는 알림 레이블에 대한 하나 이상의 규칙을 추가하세요.

1. **연락 지점** 드롭다운에서 알림이 중첩된 정책이 아닌 이 특정 정책과만 일치하는 경우 알림을 전송할 연락 지점을 선택하세요.

1. 선택적으로 알림이 현재 정책과 일치한 후에도 계속 형제 정책 일치를 수행하려면 **후속 형제 노드 연속 매칭**을 활성화합니다. 이 옵션을 활성화하면 한 알림에 대해 둘 이상의 알림을 받을 수 있습니다.

1. 선택적으로 **그룹화 재정의**를 활성화하여 기본 정책과 동일한 그룹화를 지정하세요. 옵션을 활성화하지 않으면 기본 정책 그룹화가 사용됩니다.

1. 선택적으로 그룹 알림 정책에 구성된 타이밍 옵션을 재정의하려면 **일반 타이밍 재정의**를 활성화하세요.

1. 변경 사항을 저장하려면 **정책 저장**을 선택합니다.

**중첩된 정책을 편집하는 방법**

1. 왼쪽 메뉴에서 **알림**을 선택하세요.

1. **알림 정책**을 선택하세요.

1. 편집할 정책을 선택하고 **...**, **편집**을 선택하세요.

1. (중첩된 정책을 추가할 때와 같이) 변경하세요.

1. 변경 내용을 저장합니다.

**정책 검색**

*레이블 매처* 또는 *연락 지점*별로 정책 트리 내에서 검색할 수 있습니다.
+ 연락 지점별로 검색하려면 **연락 지점별 검색** 필드에 연락 지점의 이름 일부 또는 전체를 입력하세요. 해당 연락 지점을 사용하는 정책이 사용자 인터페이스에서 강조 표시됩니다.
+ 레이블로 검색하려면 **검색 기준 매처** 입력 필드에 유효한 레이블 매처를 입력하세요. 쉼표로 구분하여 여러 매처를 입력할 수 있습니다. 예를 들어 유효한 매처 입력은 `severity=high, region=~EMEA|NA`일 수 있습니다.
**참고**  
레이블로 검색할 때 일치하는 모든 정책은 정확히 일치합니다. 부분 일치 및 정규식 스타일의 일치는 지원되지 않습니다.

# 알림 관리
<a name="v10-alerting-manage"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

알림 규칙, 연락 지점 및 알림 정책을 설정한 후에는 Grafana 알림을 사용하여 알림을 실제로 관리할 수 있습니다.

**Topics**
+ [알림 사용자 지정](v10-alerting-manage-notifications.md)
+ [연락 지점 관리](v10-alerting-manage-contactpoints.md)
+ [알림 전달 무음 처리](v10-alerting-silences.md)
+ [알림 규칙 보기 및 필터링](v10-alerting-manage-rules-viewfilter.md)
+ [음소거 타이밍](v10-alerting-manage-muting.md)
+ [알림 규칙의 상태 조건 및 상태 보기](v10-alerting-manage-rulestate.md)
+ [알림 그룹별 보기 및 필터링](v10-alerting-manage-viewfiltergroups.md)
+ [알림 오류 보기](v10-alerting-manage-viewnotificationerrors.md)

# 알림 사용자 지정
<a name="v10-alerting-manage-notifications"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

알림 템플릿을 사용하여 알림을 사용자 지정합니다.

알림 템플릿을 사용하여 알림에서 메시지의 제목, 메시지 및 형식을 변경할 수 있습니다.

알림 템플릿은 Amazon SNS 또는 Slack과 같은 특정 연락 지점 통합과 연결되지 않습니다. 그러나 서로 다른 연락 지점 통합을 위한 별도의 알림 템플릿을 생성하도록 선택할 수 있습니다.

알림 템플릿을 사용하여 다음을 수행할 수 있습니다.
+ 요약, 설명, 레이블 및 주석, 값 및 링크를 포함하여 알림에서 정보를 추가, 제거 또는 재정렬합니다.
+ 텍스트를 굵은 기울임꼴 서식으로 지정하고 줄 바꿈 추가 또는 제거

알림 템플릿을 사용하여 다음을 수행할 수 없습니다.
+ Slack 및 Microsoft Teams와 같은 인스턴트 메시징 서비스의 알림 설계 변경

**Topics**
+ [Go의 템플릿 지정 언어 사용](v10-alerting-notifications-go-templating.md)
+ [알림 템플릿 생성](v10-alerting-create-templates.md)
+ [알림 템플릿 사용](#v10-alerting-use-notification-templates)
+ [템플릿 참조](v10-alerting-template-reference.md)

# Go의 템플릿 지정 언어 사용
<a name="v10-alerting-notifications-go-templating"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

알림 템플릿을 Go의 템플릿 지정 언어인 [text/template](https://pkg.go.dev/text/template)으로 작성합니다.

이 섹션에서는 Go의 템플릿 지정 언어에 대한 개요와 text/template에서 템플릿을 작성하는 방법을 제공합니다.

## 점
<a name="v10-go-dot"></a>

text/template에는 점(dot)이라는 특수 커서가 있습니다(`.`로 씀). 이 커서는 사용되는 템플릿의 위치에 따라 값이 변경되는 변수로 간주할 수 있습니다. 예를 들어 알림 템플릿의 시작 부분에서 `.`은 `ExtendedData` 객체를 참조합니다. 여기에서는 `Alerts`, `Status`, `GroupLabels`, `CommonLabels`, `CommonAnnotations`, `ExternalURL`을 포함하여 여러 필드를 포함합니다. 그러나 점은 목록의 `range`에서 사용할 때, `with`에서 사용할 때 또는 다른 템플릿에서 사용할 기능 템플릿을 작성할 때 다른 항목을 참조할 수 있습니다. [알림 템플릿 생성](v10-alerting-create-templates.md)에서 이에 대한 예제를 확인할 수 있으며, [템플릿 참조](v10-alerting-template-reference.md)에서 모든 데이터 및 함수를 확인할 수 있습니다.

## 여는 태그 및 닫는 태그
<a name="v10-go-openclosetags"></a>

text/template에서 템플릿은 템플릿이 변수를 인쇄하는지 여부와 if 문과 같이 제어 구조를 실행하는지 여부에 관계없이 `{{`로 시작하고 `}}`로 끝납니다. Jinja(변수를 인쇄할 때 `{{` 및 `}}`를 사용하고 제어 구조에서 `{%` 및 `%}`를 사용함)와 같은 다른 템플릿 지정 언어와는 다릅니다.

## 인쇄
<a name="v10-go-print"></a>

무언가의 값을 인쇄하려면 `{{` 및 `}}`를 사용합니다. 점 값, 점 필드, 함수 결과 및 [변수](#v10-go-variables) 값을 인쇄할 수 있습니다. 예를 들어 점이 `ExtendedData`를 참조하는 `Alerts` 필드를 인쇄하려면 다음과 같이 작성합니다.

```
{{ .Alerts }}
```

## 알림에 대한 반복
<a name="v10-go-iterate-alerts"></a>

알림에 대한 모든 정보가 아닌 각 알림의 레이블만 인쇄하려면 `range`를 사용하여 `ExtendedData`에서 알림을 반복할 수 있습니다.

```
{{ range .Alerts }}
{{ .Labels }}
{{ end }}
```

범위 내에서 점은 더 이상 `ExtendedData`를 참조하지 않고 `Alert`를 참조합니다. `{{ .Labels }}`를 사용하여 각 알림의 레이블을 인쇄할 수 있습니다. `{{ range .Alerts }}`에서 알림 목록의 현재 알림을 참조하도록 점을 변경하기 때문에 이러한 방식이 작동합니다. 범위가 완성되면 범위가 시작되기 전에 사용했던 값으로 점이 재설정됩니다(이 예제에서 `ExtendedData`).

```
{{ range .Alerts }}
{{ .Labels }}
{{ end }}
{{/* does not work, .Labels does not exist here */}}
{{ .Labels }}
{{/* works, cursor was reset */}}
{{ .Status }}
```

## 주석 및 레이블에 대한 반복
<a name="v10-go-iterate-labels"></a>

`The name of the label is $name, and the value is $value` 형식으로 각 알림의 레이블을 인쇄하도록 템플릿을 작성합니다. 여기서 `$name` 및 `$value`에는 각 레이블의 이름 및 값이 포함됩니다.

이전 예제와 마찬가지로 점을 사용하여 `.Alerts`에서 알림에 대해 반복합니다. 이때 점은 알림 목록에서 현재 알림을 참조합니다. 그리고 정렬된 레이블에서 두 번째 범위를 사용합니다. 이때 두 번째로 현재 레이블을 참조할 때 점이 업데이트됩니다. 두 번째 범위 내에서 `.Name` 및 `.Value`를 사용하여 각 레이블의 이름 및 값을 인쇄합니다.

```
{{ range .Alerts }}
{{ range .Labels.SortedPairs }}
The name of the label is {{ .Name }}, and the value is {{ .Value }}
{{ end }}
{{ range .Annotations.SortedPairs }}
The name of the annotation is {{ .Name }}, and the value is {{ .Value }}
{{ end }}
{{ end }}
```

## index 함수
<a name="v10-go-index"></a>

특정 주석 또는 레이블을 인쇄하려면 `index` 함수를 사용합니다.

```
{{ range .Alerts }}
The name of the alert is {{ index .Labels "alertname" }}
{{ end }}
```

## If 문
<a name="v10-go-if"></a>

템플릿에서 if 문을 사용할 수 있습니다. 예를 들어 `.Alerts`에 알림이 없는 경우 `There are no alerts`를 인쇄하려면 다음을 작성합니다.

```
{{ if .Alerts }}
There are alerts
{{ else }}
There are no alerts
{{ end }}
```

## With
<a name="v10-go-with"></a>

With는 if 문과 유사하지만, if 문과 달리 `with`에서는 with에서의 값을 참조하기 위해 점을 업데이트합니다.

```
{{ with .Alerts }}
There are {{ len . }} alert(s)
{{ else }}
There are no alerts
{{ end }}
```

## 변수
<a name="v10-go-variables"></a>

text/template의 변수는 템플릿 내에서 생성해야 합니다. 예를 들어 점의 현재 값을 사용해 `$variable` 변수를 생성하려면 다음을 작성합니다.

```
{{ $variable := . }}
```

`with` 또는 범위 내에서 `$variable`을 사용할 수 있으며, 이는 점의 현재 값이 아니라 변수가 정의된 시점에 점의 값을 참조합니다.

예를 들어 두 번째 범위에서 `{{ .Labels }}`를 사용하는 템플릿은 작성할 수 없습니다. 여기서 점은 현재 알림이 아닌 현재 레이블을 참조하기 때문입니다.

```
{{ range .Alerts }}
{{ range .Labels.SortedPairs }}
{{ .Name }} = {{ .Value }}
{{/* does not work because in the second range . is a label not an alert */}}
There are {{ len .Labels }}
{{ end }}
{{ end }}
```

첫 번째 범위와 두 번째 범위 앞에서 `$alert` 변수를 정의하여 이 문제를 해결할 수 있습니다.

```
{{ range .Alerts }}
{{ $alert := . }}
{{ range .Labels.SortedPairs }}
{{ .Name }} = {{ .Value }}
{{/* works because $alert refers to the value of dot inside the first range */}}
There are {{ len $alert.Labels }}
{{ end }}
{{ end }}
```

## 인덱스가 있는 범위
<a name="v10-go-rangeindex"></a>

범위 시작 위치에서 인덱스 및 값 변수를 정의하여 범위 내 각 알림의 인덱스를 가져올 수 있습니다.

```
{{ $num_alerts := len .Alerts }}
{{ range $index, $alert := .Alerts }}
This is alert {{ $index }} out of {{ $num_alerts }}
{{ end }}
```

## 템플릿 정의
<a name="v10-go-define"></a>

`define` 및 템플릿 이름(큰따옴표로 묶음)을 다른 템플릿 내에서 사용할 수 있는 템플릿을 정의할 수 있습니다. `__subject`, `__text_values_list`, `__text_alert_list`, `default.title`, `default.message`와 같은 기본 템플릿을 포함하여 다른 템플릿과 동일한 이름의 템플릿을 정의해서는 안 됩니다. 템플릿이 기본 템플릿과 동일한 이름으로 생성되었거나 다른 알림 템플릿의 템플릿인 경우 Grafana는 두 템플릿 중 하나를 사용할 수 있습니다. Grafana는 이름이 같은 템플릿이 두 개 이상 있는 경우 이를 금지하거나 오류 메시지를 표시하지 않습니다.

```
{{ define "print_labels" }}
{{ end }}
```

## 템플릿 실행
<a name="v10-go-execute"></a>

`template`, 템플릿 이름(큰따옴표로 묶음), 템플릿에 전달해야 하는 커서를 사용하여 템플릿 내에서 정의된 템플릿을 실행할 수 있습니다.

```
{{ template "print_labels" . }}
```

## 템플릿에 데이터 전달
<a name="v10-go-passdata"></a>

템플릿 내에서 점은 템플릿에 전달되는 값을 참조합니다.

예를 들어 템플릿에 실행 알림 목록이 전달되면 점에서는 해당 실행 알림 목록을 나타냅니다.

```
{{ template "print_alerts" .Alerts }}
```

템플릿에 알림에 대해 정렬된 레이블이 전달되면 점은 정렬된 레이블 목록을 참조합니다.

```
{{ template "print_labels" .SortedLabels }}
```

재사용 가능한 템플릿을 작성할 때 유용합니다. 예를 들어 모든 알림을 인쇄하려면 다음을 작성할 수 있습니다.

```
{{ template "print_alerts" .Alerts }}
```

그런 다음, 실행 알림만 인쇄하려면 다음을 작성하면 됩니다.

```
{{ template "print_alerts" .Alerts.Firing }}
```

`.Alerts` 및 `.Alerts.Firing`이 모두 알림 목록이므로 이 방식이 가능합니다.

```
{{ define "print_alerts" }}
{{ range . }}
{{ template "print_labels" .SortedLabels }}
{{ end }}
{{ end }}
```

## 설명
<a name="v10-go-comments"></a>

`{{/*` 및 `*/}}`를 사용하여 주석을 추가할 수 있습니다.

```
{{/* This is a comment */}}
```

설명에 줄 바꿈을 추가하지 못하도록 하려면 다음을 사용합니다.

```
{{- /* This is a comment with no leading or trailing line breaks */ -}}
```

## 들여쓰기
<a name="v10-go-indentation"></a>

탭과 공백, 줄 바꿈에서 모두 들여쓰기를 사용하여 템플릿의 가독성을 개선할 수 있습니다.

```
{{ range .Alerts }}
  {{ range .Labels.SortedPairs }}
    {{ .Name }} = {{ .Value }}
  {{ end }}
{{ end }}
```

그러나 템플릿의 들여쓰기는 텍스트에도 표시됩니다. 다음으로 이를 제거하는 방법을 살펴봅니다.

## 공백 및 줄 바꿈 제거
<a name="v10-go-removespace"></a>

text/template에서 `{{-` 및 `-}}`를 사용하여 선행 및 후행 공백과 줄 바꿈을 제거합니다.

예를 들어 들여쓰기 및 줄 바꿈을 사용하여 템플릿의 가독성을 높이는 경우:

```
{{ range .Alerts }}
  {{ range .Labels.SortedPairs }}
    {{ .Name }} = {{ .Value }}
  {{ end }}
{{ end }}
```

들여쓰기 및 줄 바꿈도 텍스트에 표시됩니다.

```
    alertname = "Test"

    grafana_folder = "Test alerts"
```

각 범위의 시작 위치에서 `}}`를 `-}}`로 변경하여 텍스트에서 들여쓰기 및 줄 바꿈을 제거할 수 있습니다.

```
{{ range .Alerts -}}
  {{ range .Labels.SortedPairs -}}
    {{ .Name }} = {{ .Value }}
  {{ end }}
{{ end }}
```

이제 템플릿의 들여쓰기 및 줄 바꿈은 텍스트에 없습니다.

```
alertname = "Test"
grafana_folder = "Test alerts"
```

# 알림 템플릿 생성
<a name="v10-alerting-create-templates"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

연락 지점으로 전송할 재사용 가능한 알림 템플릿을 생성합니다.

알림 템플릿에 하나 이상의 템플릿을 추가할 수 있습니다.

알림 템플릿 이름은 고유해야 합니다. 동일한 알림 템플릿 또는 다른 알림 템플릿에서 이름이 같은 두 개의 템플릿을 사용할 수 없습니다. `__subject`, `__text_values_list`, `__text_alert_list`, `default.title`, `default.message`와 같이 기본 템플릿과 이름이 같은 템플릿을 정의하지 마세요.

연락 지점 탭에서 알림 템플릿 목록을 볼 수 있습니다.

## 알림 템플릿 생성
<a name="v10-alerting-creating-templates"></a>

**알림 템플릿을 생성하는 방법**

1. **알림**, **연락 지점**을 선택하세요.

1. **알림 템플릿** 탭을 선택한 다음, **\$1 알림 템플릿 추가**를 선택하세요.

1. `email.subject`와 같은 알림 템플릿의 이름을 선택하세요.

1. 콘텐츠 필드에서 템플릿의 콘텐츠를 작성하세요.

   예제:

   ```
   {{ if .Alerts.Firing -}}
      {{ len .Alerts.Firing }} firing alerts
      {{ end }}
      {{ if .Alerts.Resolved -}}
      {{ len .Alerts.Resolved }} resolved alerts
      {{ end }}
   ```

1. 변경 내용을 저장합니다.

   `{{ define "email.subject" }}`(여기서 `email.subject`는 템플릿의 이름임) 및 `{{ end }}`는 콘텐츠의 시작과 끝에 자동으로 추가됩니다.

**둘 이상의 템플릿이 포함된 알림 템플릿을 생성하는 방법**

1. **알림**, **연락 지점**을 선택하세요.

1. **알림 템플릿** 탭을 선택한 다음, **\$1 알림 템플릿 추가**를 선택하세요.

1. 전체 알림 템플릿의 이름을 입력하세요. 예를 들어 `email`입니다.

1. 각 템플릿의 시작과 끝에 있는 `{{ define "name-of-template" }}` 및 `{{ end }}`를 포함하여 콘텐츠 필드에서 각 템플릿을 작성하세요. 알림 템플릿의 각 템플릿에 대해 설명이 포함된 이름(예: `email.subject` 또는 `email.message`)을 사용할 수 있습니다. 이 경우 위에 입력한 알림 템플릿의 이름을 재사용하지 마세요.

   이후 섹션에서는 생성할 수 있는 템플릿에 대한 자세한 예제를 보여줍니다.

1. 저장을 클릭합니다.

## 알림 템플릿 미리 보기
<a name="v10-alerting-preview-templates"></a>

알림 템플릿을 연락 지점에서 사용하기 전에 모양을 미리 살펴보고, 생성 중인 템플릿의 결과를 이해하며, 템플릿을 저장하기 전에 오류를 수정할 수 있는 기회를 제공합니다.

**참고**  
알림 미리 보기는 Grafana Alertmanager에서만 사용할 수 있습니다.

**알림 템플릿을 미리 보는 방법**

1. **알림**, **연락 지점**을 선택하세요.

1. **알림 템플릿** 탭을 선택한 다음, **\$1 알림 템플릿 추가**를 선택하거나 기존 템플릿을 편집하세요.

1. 템플릿 콘텐츠를 추가하거나 업데이트하세요.

   기본 데이터가 제공되며, 알림 인스턴스뿐만 아니라 알림 데이터를 추가하거나 편집할 수 있습니다. 페이로드 데이터 창에서 직접 알림 데이터를 추가하거나 **알림 인스턴스 선택** 또는 **사용자 지정 알림 추가**를 클릭할 수 있습니다.

1. [선택 사항] 기존 알림 인스턴스에서 알림 데이터를 추가하는 방법:

   1. **알림 인스턴스 선택**을 선택하세요.

   1. 각 알림 인스턴스에 대한 자세한 내용을 보려면 알림 인스턴스 위로 마우스를 가져가세요.

   1. **확인**을 선택하여 알림 인스턴스를 페이로드에 추가하세요.

1. [선택 사항] 알림 데이터 편집기를 사용하여 알림 데이터를 추가하려면 **사용자 지정 데이터 추가**를 선택하세요.

   1. 주석, 사용자 지정 레이블을 추가하거나 대시보드 또는 패널을 설정하세요.

   1. 알림에 실행 알림 또는 해결된 알림을 추가할지 여부에 따라 실행 알림 또는 해결된 알림을 전환하세요.

   1. **알림 데이터 추가**를 선택하세요.

   1. **미리 보기 새로 고침**을 선택하여 템플릿 콘텐츠의 모양과 해당 페이로드 데이터를 확인하세요.

   템플릿에 오류가 있는 경우 미리 보기에 오류가 표시되고 저장하기 전에 수정할 수 있습니다.

1. 변경 내용을 저장합니다.

## 메시지 제목에 대한 템플릿 생성
<a name="v10-alerting-create-template-subject"></a>

이 예제와 같이 실행 알림 및 해결된 알림 수가 포함된 이메일 제목에 대한 템플릿을 생성합니다.

```
1 firing alerts, 0 resolved alerts
```

**이메일 제목에 대한 템플릿을 생성하는 방법**

1. 다음 콘텐츠로 `email.subject`라는 템플릿을 생성하세요.

   ```
   {{ define "email.subject" }}
   {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts
   {{ end }}
   ```

1. `template` 키워드를 **제목** 필드에 입력하여 연락 지점 통합을 생성할 때 템플릿을 사용하세요.

   ```
   {{ template "email.subject" . }}
   ```

## 이메일 메시지에 대한 템플릿 생성
<a name="v10-alerting-create-template-message"></a>

이 예제와 같이 모든 실행 알림 및 해결된 알림의 요약이 포함된 이메일 메시지 템플릿을 생성합니다.

```
There are 2 firing alerts, and 1 resolved alerts

Firing alerts:

- alertname=Test 1 grafana_folder=GrafanaCloud has value(s) B=1
- alertname=Test 2 grafana_folder=GrafanaCloud has value(s) B=2

Resolved alerts:

- alertname=Test 3 grafana_folder=GrafanaCloud has value(s) B=0
```

**이메일 메시지에 대한 템플릿을 생성하는 방법**

1. 콘텐츠에 두 개의 템플릿(`email.message_alert` 및 `email.message`)을 포함하는 `email` 알림 템플릿을 생성하세요.

   `email.message_alert` 템플릿은 각 실행 알림과 해결된 알림에 대한 레이블 및 값을 인쇄하는 데 사용되고, `email.message` 템플릿은 이메일 구조를 포함합니다.

   ```
   {{- define "email.message_alert" -}}
   {{- range .Labels.SortedPairs }}{{ .Name }}={{ .Value }} {{ end }} has value(s)
   {{- range $k, $v := .Values }} {{ $k }}={{ $v }}{{ end }}
   {{- end -}}
   
   {{ define "email.message" }}
   There are {{ len .Alerts.Firing }} firing alerts, and {{ len .Alerts.Resolved }} resolved alerts
   
   {{ if .Alerts.Firing -}}
   Firing alerts:
   {{- range .Alerts.Firing }}
   - {{ template "email.message_alert" . }}
   {{- end }}
   {{- end }}
   
   {{ if .Alerts.Resolved -}}
   Resolved alerts:
   {{- range .Alerts.Resolved }}
   - {{ template "email.message_alert" . }}
   {{- end }}
   {{- end }}
   
   {{ end }}
   ```

1. `template` 키워드를 **텍스트 본문** 필드에 입력하여 연락 지점 통합을 생성할 때 템플릿을 사용하세요.

   ```
   {{ template "email.message" . }}
   ```

## Slack 메시지 제목에 대한 템플릿 생성
<a name="v10-alerting-create-template-slack-title"></a>

다음 예제와 같이 실행 알림 및 해결된 알림 수를 포함하는 Slack 메시지의 제목에 대한 템플릿을 생성합니다.

```
1 firing alerts, 0 resolved alerts
```

**Slack 메시지 제목에 대한 템플릿을 생성하는 방법**

1. 다음 콘텐츠로 `slack.title`라는 템플릿을 생성하세요.

   ```
   {{ define "slack.title" }}
   {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts
   {{ end }}
   ```

1. 연락 지점 통합의 제목 필드에서 템플릿을 실행하세요.

   ```
   {{ template "slack.title" . }}
   ```

## Slack 메시지 콘텐츠에 대한 템플릿 생성
<a name="v10-alerting-create-template-slack-message"></a>

레이블, 주석 및 대시보드 URL을 포함하여 모든 실행 알림 및 해결된 알림에 대한 설명이 포함된 Slack 메시지의 콘텐츠에 대한 템플릿을 생성합니다.

**참고**  
이 템플릿은 Grafana 관리형 알림 전용입니다. 데이터 소스 관리형 알림에 템플릿을 사용하려면 DashboardURL 및 SilenceURL에 대한 참조를 삭제하세요. Prometheus 알림 구성에 대한 자세한 내용은 [알림에 대한 Prometheus 설명서](https://prometheus.io/docs/alerting/latest/notifications/)를 참조하세요.

```
1 firing alerts:

[firing] Test1
Labels:
- alertname: Test1
- grafana_folder: GrafanaCloud
Annotations:
- description: This is a test alert
Go to dashboard: https://example.com/d/dlhdLqF4z?orgId=1

1 resolved alerts:

[firing] Test2
Labels:
- alertname: Test2
- grafana_folder: GrafanaCloud
Annotations:
- description: This is another test alert
Go to dashboard: https://example.com/d/dlhdLqF4z?orgId=1
```

**Slack 메시지 콘텐츠에 대한 템플릿을 생성하는 방법**

1. 콘텐츠에 두 개의 템플릿(`slack.print_alert` 및 `slack.message`)을 포함하는 `slack` 템플릿을 생성하세요.

   `slack.print_alert` 템플릿은 레이블, 주석 및 DashboardURL을 인쇄하는 데 사용되는 반면 `slack.message` 템플릿에는 알림 구조가 포함되어 있습니다.

   ```
   {{ define "slack.print_alert" -}}
   [{{.Status}}] {{ .Labels.alertname }}
   Labels:
   {{ range .Labels.SortedPairs -}}
   - {{ .Name }}: {{ .Value }}
   {{ end -}}
   {{ if .Annotations -}}
   Annotations:
   {{ range .Annotations.SortedPairs -}}
   - {{ .Name }}: {{ .Value }}
   {{ end -}}
   {{ end -}}
   {{ if .DashboardURL -}}
     Go to dashboard: {{ .DashboardURL }}
   {{- end }}
   {{- end }}
   
   {{ define "slack.message" -}}
   {{ if .Alerts.Firing -}}
   {{ len .Alerts.Firing }} firing alerts:
   {{ range .Alerts.Firing }}
   {{ template "slack.print_alert" . }}
   {{ end -}}
   {{ end }}
   {{ if .Alerts.Resolved -}}
   {{ len .Alerts.Resolved }} resolved alerts:
   {{ range .Alerts.Resolved }}
   {{ template "slack.print_alert" .}}
   {{ end -}}
   {{ end }}
   {{- end }}
   ```

1. 연락 지점 통합의 텍스트 본문 필드에서 템플릿을 실행하세요.

   ```
   {{ template "slack.message" . }}
   ```

## 공유 템플릿으로 이메일 및 Slack 모두 템플릿 지정
<a name="v10-alerting-create-shared-templates"></a>

이메일 및 Slack과 같이 각 연락 지점에 대해 별도의 알림 템플릿을 생성하는 대신 동일한 템플릿을 공유할 수 있습니다.

예를 들어 이 제목의 이메일과 이 `1 firing alerts, 0 resolved alerts` 제목의 Slack 메시지를 보내려면 공유 템플릿을 생성할 수 있습니다.

**공유 템플릿을 생성하는 방법**

1. 다음 콘텐츠로 `common.subject_title`라는 템플릿을 생성하세요.

   ```
   {{ define "common.subject_title" }}
   {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts
   {{ end }}
   ```

1. 이메일의 경우 이메일 연락 지점 통합의 제목 필드에서 템플릿을 실행하세요.

   ```
   {{ template "common.subject_title" . }}
   ```

1. Slack의 경우 Slack 연락 지점 통합의 제목 필드에서 템플릿을 실행하세요.

   ```
   {{ template "common.subject_title" . }}
   ```

## 알림 템플릿 사용
<a name="v10-alerting-use-notification-templates"></a>

연락 지점의 템플릿을 사용하여 알림을 사용자 지정합니다.

**연락 지점을 생성할 때 템플릿을 사용하는 방법**

1. **알림** 메뉴에서 **연락 지점** 탭을 선택하여 기존 연락처 목록을 확인하세요.

1. **신규**를 선택합니다. 또는 **편집** 아이콘을 선택하여 기존 연락처를 편집할 수 있습니다.

1. **메시지** 또는 **제목**과 같은 필드에 사용할 템플릿을 입력하세요. 템플릿을 입력하려면 `{{ template "template_name" . }}` 양식을 사용하여 *template\$1name*을 사용하려는 템플릿 이름으로 바꾸세요.

1. **연락 지점 저장**을 선택하세요.

# 템플릿 참조
<a name="v10-alerting-template-reference"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

이 섹션에서는 템플릿을 생성하기 위한 참조 정보를 제공합니다.

**알림(유형)**

알림 유형에는 다음 데이터가 포함됩니다.


| 이름 | 종류 | 설명 | 예제 | 
| --- | --- | --- | --- | 
|  Status  |  문자열  |  `firing` 또는 `resolved`  | \$1\$1 .Status \$1\$1 | 
|  레이블  |  KeyValue  |  알림에 연결된 레이블 세트.  | \$1\$1 .Labels \$1\$1 | 
|  Annotations  |  KeyValue  |  알림에 연결된 주석 세트.  | \$1\$1 .Annotations \$1\$1 | 
| 값 | KeyValue | 클래식 조건을 포함한 모든 표현식의 값 | \$1\$1 .Values \$1\$1 | 
|  StartsAt  |  time.Time  |  알림 실행이 시작되는 시간.  | \$1\$1 .StartsAt \$1\$1 | 
|  EndsAt  |  time.Time  |  알림의 종료 시간을 알고 있는 경우에만 설정합니다. 그렇지 않으면 마지막 알림이 수신된 이후부터 구성 가능한 제한 시간으로 설정됩니다.  | \$1\$1 .EndsAt \$1\$1 | 
|  GeneratorURL  |  문자열  |  Grafana 또는 외부 Alertmanager에 대한 백 링크.  | \$1\$1 .GeneratorURL \$1\$1 | 
|  SilenceURL  |  문자열  |  알림을 음소거하는 링크(이 알림에 대한 레이블이 미리 채워짐). Grafana 관리형 알림에만 적용됩니다.  | \$1\$1 .SilenceURL\$1\$1 | 
|  DashboardURL  |  문자열  |  알림 규칙이 하나에 속하는 경우 Grafana 대시보드에 대한 링크. Grafana 관리형 알림에만 적용됩니다.  | \$1\$1 .DashboardURL \$1\$1 | 
|  PanelURL  |  문자열  |  알림 규칙이 하나에 속하는 경우 Grafana 대시보드 패널에 대한 링크. Grafana 관리형 알림에만 적용됩니다.  | \$1\$1 .PanelURL \$1\$1 | 
|  지문  |  문자열  |  알림을 식별하는 데 사용할 수 있는 지문.  | \$1\$1 .Fingerprint \$1\$1 | 
|  ValueString  |  문자열  |  알림에서 축소된 각 표현식의 레이블과 값을 포함하는 문자열.  | \$1\$1 .ValueString \$1\$1 | 

 **ExtendedData**

ExtendedData 객체는 다음 속성을 포함합니다.


| 이름 | 종류 | 설명 | 예제 | 
| --- | --- | --- | --- | 
|  수신기  |  `string`  |  알림을 보내는 연락 지점의 이름.  |  `{{ .Receiver }}`  | 
|  Status  |  `string`  |  상태는 하나 이상의 알림이 실행 중인 경우 `firing`이고, 그렇지 않으면 `resolved`입니다.  |  `{{ .Status }}`  | 
|  알림  |  `[]Alert`  |  이 알림에서 모든 실행 알림과 해결된 알림 목록.  |  `There are {{ len .Alerts }} alerts`  | 
|  실행 알림  |  `[]Alert`  |  이 알림에서 모든 실행 알림 목록.  |  `There are {{ len .Alerts.Firing }} firing alerts`  | 
|  해결된 알림  |  `[]Alert`  |  이 알림에서 모든 해결된 알림 목록.  |  `There are {{ len .Alerts.Resolved }} resolved alerts`  | 
|  GroupLabels  |  `KeyValue`  |  이 알림에서 이러한 알림을 그룹화하는 레이블.  |  `{{ .GroupLabels }}`  | 
|  CommonLabels  |  `KeyValue`  |  이 알림에서 모든 알림에 공통된 레이블.  |  `{{ .CommonLabels }}`  | 
|  CommonAnnotations  |  `KeyValue`  |  이 알림에서 모든 알림에 공통된 주석.  |  `{{ .CommonAnnotations }}`  | 
|  ExternalURL  |  `string`  |  이 알림을 보낸 Grafana 워크스페이스 또는 Alertmanager에 대한 링크.  |  `{{ .ExternalURL }}`  | 

**KeyValue 유형**

`KeyValue` 유형은 레이블과 주석을 나타내는 키/값 문자열 페어 세트입니다.

`KeyValue`로 저장된 데이터에 대한 직접 액세스 외에도 데이터를 정렬, 제거 및 변환하는 방법도 있습니다.


| 이름 | 인수 | 반환 | 참고 | 예제 | 
| --- | --- | --- | --- | --- | 
|  SortedPairs  |    |  키 및 값 문자열 페어의 정렬된 목록  |    | `{{ .Annotations.SortedPairs }}` | 
|  제거  |  []string  |  KeyValue  |  지정된 키 없이 키/값 맵의 사본을 반환합니다.  | `{{ .Annotations.Remove "summary" }}` | 
|  이름  |    |  []string  |  이름 목록  | `{{ .Names }}` | 
|  값  |    |  []string  |  값 목록  | `{{ .Values }}` | 

**Time**

시간은 Go [https://pkg.go.dev/time#Time](https://pkg.go.dev/time#Time) 패키지에서 가져옵니다. 여러 형식으로 시간을 인쇄할 수 있습니다. 예를 들어, `Monday, 1st January 2022 at 10:00AM` 형식으로 알림이 실행된 시간을 인쇄하려면 다음 템플릿을 작성합니다.

```
{{ .StartsAt.Format "Monday, 2 January 2006 at 3:04PM" }}
```

[여기](https://pkg.go.dev/time#pkg-constants)에서 Go의 시간 형식에 대한 참조를 찾을 수 있습니다.

# 연락 지점 관리
<a name="v10-alerting-manage-contactpoints"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

**연락 지점** 목록 보기에는 기존 연락 지점 및 알림 템플릿이 모두 나열됩니다.

**연락 지점** 탭에서 다음을 수행할 수 있습니다.
+ 연락 지점 및 통합의 이름과 유형을 검색합니다.
+ 모든 기존 연락 지점 및 통합을 봅니다.
+ 각 연락 지점이 사용되는 알림 정책 수를 보고 연결된 알림 정책으로 직접 이동합니다.
+ 알림 전송 상태를 봅니다.
+ 개별 연락 지점 또는 모든 연락 지점을 JSON, YAML 또는 Terraform 형식으로 내보냅니다.
+ 알림 정책에서 사용하지 않는 연락 지점을 삭제합니다.

**알림 템플릿** 탭에서 다음을 수행할 수 있습니다.
+ 기존 알림 템플릿을 확인, 편집, 복사 또는 삭제합니다.

# 알림 전달 무음 처리
<a name="v10-alerting-silences"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

*무음*으로 알림 전달을 억제할 수 있습니다. 무음은 알림 생성만 중지합니다. 무음은 알림 규칙이 평가되는 것을 방지하지 않으며 사용자 인터페이스에 인스턴스 알림이 표시되는 것도 중지하지 않습니다. 알림을 무음으로 설정한 경우 알림이 억제되는 기간을 지정합니다.

**참고**  
정기적인 시간 간격(예: 정기 유지 관리 기간)으로 알림 전달을 억제하려면 무음 대신 [음소거 타이밍](v10-alerting-manage-muting.md)을 사용합니다.

**무음을 추가하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**을 선택하세요.

1. **무음**을 선택하세요.

1. Alertmanager 드롭다운에서 **Alertmanager**를 선택하세요.

1. **무음 생성**을 선택하세요.

1. **무음 시작 및 종료**에서 시작 및 종료 날짜를 선택하여 무음이 적용되는 시기와 종료 시기를 표시하세요.

1. 종료 시간을 설정하는 대신 **기간**에서 무음이 적용되는 기간을 지정하세요. 그러면 **무음 시작 및 종료** 필드의 종료 시간이 자동으로 업데이트됩니다.

1. **레이블** 및 **값** 필드에 *일치하는 레이블*을 하나 이상 입력하세요. 매처는 무음이 적용되는 규칙을 결정합니다. 일치하는 모든 알림(실행 중 상태)이 **영향을 받는 알림 인스턴스** 필드에 표시됩니다.

1. 선택적으로 무음을 설명하는 **설명**을 추가하세요.

1. **제출**을 선택합니다.

**무음을 편집하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**을 선택하세요.

1. **무음**을 선택하여 기존 무음 목록을 보세요.

1. 편집하려는 무음을 찾은 다음, **편집**(펜 아이콘)을 선택하세요.

1. 원하는 대로 변경한 후에 **제출**을 선택하여 변경 사항을 저장하세요.

**편집** 아이콘(펜)을 선택하여 기존 무음을 편집할 수 있습니다.

**무음 양식에 대한 URL 링크를 생성하는 방법**

무음 양식에 연결할 때 `matcher` 및 `comment` 쿼리 파라미터를 통해 기본 일치 레이블과 주석을 제공합니다. `matcher` 파라미터는 다음 `[label][operator][value]` 형식 중 하나여야 합니다. 여기서, `operator` 파라미터는 `=`(같음, 정규식 아님), `!=`(같지 않음, 정규식 아님), `=~`(같음, 정규식), `!~`(같지 않음, 정규식) 중 하나일 수 있습니다. URL에는 `matcher` 키와 함께 여러 쿼리 파라미터가 포함될 수 있습니다. 예를 들어, 일치하는 레이블 `severity=critical` 및 `cluster!~europe-.*`와 `Silence critical EU alerts` 설명을 포함하는 무음 양식에 연결하려면 `https://mygrafana/alerting/silence/new?matcher=severity%3Dcritical&matcher=cluster!~europe-*&comment=Silence%20critical%20EU%20alert` URL을 생성합니다.

외부 Alertmanager의 새 무음 페이지에 연결하려면 `alertmanager` 쿼리 파라미터를 추가합니다.

**무음을 제거하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**을 선택하세요.

1. **무음**을 선택하여 기존 무음 목록을 보세요.

1. 종료하려는 무음을 선택하고 **무음 해제**를 선택하세요. 그러면 알림 억제가 종료됩니다.
**참고**  
무음을 해제하면 종료 시간이 현재 시간으로 설정된 것처럼 알림 억제가 종료됩니다. (자동 또는 수동으로) 종료된 무음은 5일 동안 유지되고 나열됩니다. 목록에서 수동으로 무음을 제거할 수 없습니다.

# 알림 규칙 보기 및 필터링
<a name="v10-alerting-manage-rules-viewfilter"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

**알림** 페이지에는 알림 규칙이 나열됩니다. 기본적으로 규칙은 데이터 소스 유형별로 그룹화됩니다. **Grafana** 섹션에는 Grafana에서 관리하는 규칙이 나열됩니다. Prometheus 호환 데이터 소스에 대한 알림 규칙도 여기에 나열되어 있습니다. Prometheus 호환 데이터 소스에 대한 알림 규칙은 볼 수 있지만 편집할 수 없습니다.

Mimir/Cortex/Loki 규칙 섹션에는 Mimir, Cortex 또는 Loki 데이터 소스에 대한 모든 규칙이 나열됩니다. 클라우드 알림 규칙도 이 섹션에 나열되어 있습니다.

대량의 알림을 관리할 때 확장 알림 규칙 검색 기능을 사용하여 폴더, 평가 그룹 및 규칙을 필터링할 수 있습니다. 또한 레이블, 상태 조건, 유형 및 상태와 같은 속성별로 알림 규칙을 필터링할 수 있습니다.

## 알림 규칙 보기
<a name="v10-alerting-manage-rules-view"></a>

Grafana 알림을 사용하면 한 페이지에서 모든 알림을 볼 수 있습니다.

**알림 세부 정보를 보는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**, **알림 규칙**을 선택하세요. 기본적으로 목록 보기가 표시됩니다.

1. **보기 형식**에서 원하는 옵션을 선택하여 그룹화, 목록, 상태 보기 사이를 전환할 수 있습니다.

1. 규칙 행을 확장하여 규칙 레이블, 주석, 데이터 소스, 규칙 쿼리 및 규칙에서 발생하는 알림 인스턴스 목록을 봅니다.

이 페이지에서 기존 규칙을 재사용하는 데 도움이 되는 알림 규칙의 사본을 만들 수도 있습니다.

## 알림 규칙 내보내기
<a name="v10-alerting-manage-rules-export"></a>

Grafana 워크스페이스에서 규칙을 YAML 또는 JSON으로 내보낼 수 있습니다.
+ YAML, JSON 또는 Terraform으로 내보낼 각 알림 규칙 그룹 옆에 있는 **규칙 그룹 내보내기** 아이콘을 선택합니다.
+ YAML, JSON 또는 Terraform으로 모든 Grafana 관리형 알림 규칙을 보내려면 **규칙 내보내기**를 선택합니다.
+ 프로비저닝된 알림 규칙을 편집하고 수정된 버전을 내보내려면 그룹 내 각 개별 알림 규칙 옆에 있는 **추가**, **내보내기 수정**을 선택합니다.

## 프로비저닝된 알림에 대한 쿼리 정의 보기
<a name="v10-alerting-manage-rules-querydef"></a>

프로비저닝된 알림에 대한 읽기 전용 쿼리 정의를 봅니다. 규칙 정의를 위해 'as-code' 리포지토리를 탐색하지 않고 알림 규칙 쿼리가 올바른지 빠르게 확인합니다.

**그룹화된 보기**

그룹화된 보기에는 폴더별로 그룹화된 Grafana 알림 규칙과 `namespace` \$1 `group`으로 그룹화된 Loki 또는 Prometheus 알림 규칙이 표시됩니다. 이는 규칙 관리를 위한 기본 규칙 목록 보기입니다. 각 그룹을 확장하여 이 그룹의 규칙 목록을 볼 수 있습니다. 규칙을 더 확장하여 세부 정보를 확인합니다. 규칙에서 생성되는 알림 및 작업 버튼을 확장하여 세부 정보를 볼 수도 있습니다.

**상태 보기**

상태 보기에는 상태별로 그룹화된 알림 규칙이 표시됩니다. 이 보기를 사용하여 어떤 규칙이 어떤 상태에 있는지에 대한 개요를 확인합니다. 각 규칙을 확장하여 세부 정보를 볼 수 있습니다. 작업 버튼 및 이 규칙에서 생성된 모든 알림과 각 알림을 추가로 확장하여 세부 정보를 볼 수 있습니다.

## 알림 규칙 필터링
<a name="v10-alerting-manage-rules-filter"></a>

알림 페이지에 표시되는 **알림** 규칙을 여러 가지 방법으로 필터링할 수 있습니다.

**알림 규칙을 필터링하는 방법**

1. **데이터 소스 선택**에서 데이터 소스를 선택하세요. 선택한 데이터 소스를 쿼리하는 알림 규칙을 볼 수 있습니다.

1. **레이블별 검색**에서 레이블 선택기를 사용하여 검색 기준을 입력하세요. 예를 들어 `environment=production;region=~US|EU,severity!=warning`입니다.

1. **상태별 알림 필터링**에서 보려는 알림 상태를 선택하세요. 해당 상태와 일치하는 알림 규칙을 볼 수 있습니다. 다른 상태와 일치하는 규칙은 숨겨집니다.

# 음소거 타이밍
<a name="v10-alerting-manage-muting"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

음소거 타이밍은 정책에 대한 새 알림이 생성되거나 전송되지 않는 반복 간격입니다. 이를 사용하여 정기 유지 관리 기간과 같은 특정 기간 및 반복 기간에 알림이 실행되지 않도록 합니다.

무음과 마찬가지로 음소거 타이밍은 알림 규칙이 평가되지 않도록 하며 사용자 인터페이스에 알림 인스턴스가 표시되지 않도록 합니다. 이 기능은 알림 생성만 방지합니다.

Grafana 관리형 음소거 타이밍 및 외부 Alertmanager 데이터 소스에 대한 음소거 타이밍을 구성할 수 있습니다.

## 음소거 타이밍 및 무음
<a name="v10-alerting-manage-muting-compare"></a>

다음 표에서는 음소거 타이밍과 무음의 차이를 강조합니다.


| 음소거 타이밍 | 무음 | 
| --- | --- | 
| 다시 발생할 수 있는 시간 간격 정의를 사용합니다. | 시작 및 종료 시간이 고정되어 있습니다. | 
| 생성 후 알림 정책에 추가됩니다. | 레이블을 사용하여 무음 여부를 결정하기 위해 알림과 일치시킵니다. | 

## 음소거 타이밍 추가
<a name="v10-alerting-manage-muting-add"></a>

Grafana 워크스페이스에서 음소거 타이밍을 생성할 수 있습니다.

**음소거 타이밍을 추가하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**을 선택하세요.

1. **알림 정책**을 선택한 다음, **타이밍 음소거** 탭을 선택하세요.

1. **Alertmanager** 드롭다운에서 편집할 Alertmanager를 선택하세요.

1. **\$1 음소거 타이밍 추가** 버튼을 선택하세요.

1. 양식을 작성하여 음소거 타이밍과 일치하는 [시간 간격](#v10-alerting-manage-muting-interval)을 생성하세요.

1. 음소거 타이밍을 저장하세요.

## 알림 정책에 음소거 타이밍 추가
<a name="v10-alerting-manage-muting-add-notif"></a>

음소거 타이밍이 있으면 정기적으로 음소거하려는 알림 정책에 추가하여 이를 사용합니다.

**알림 정책에 음소거 타이밍을 추가하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**을 선택하세요.

1. **알림 정책**을 선택한 다음, **알림 정책** 탭을 선택하세요.

1. 음소거 타이밍을 추가하려는 알림 정책을 선택하고 **...**, **편집**을 선택하세요.

1. **음소거 타이밍** 드롭다운에서 정책에 추가할 음소거 타이밍을 선택하세요.

1. 변경 내용을 저장합니다.

## 시간 간격
<a name="v10-alerting-manage-muting-interval"></a>

시간 간격은 알림이 억제되는 특정 기간입니다. 기간은 일반적으로 특정 시간 범위와 요일, 월 또는 연도로 구성됩니다.

지원 시간 간격 옵션은 다음과 같습니다.
+ **시간 범위** - 시작 시간을 포함하고 종료 시간을 제외한 시간(UTC). 위치가 선택되지 않은 경우 현지 시간입니다.
+ **위치** - 타이밍의 위치를 설정합니다. 시간 범위는 위치의 현지 시간으로 표시됩니다.
+ **요일** - 요일 또는 요일 범위. 예를 들어 `monday:thursday`입니다.
+ **월의 일** - 한 달의 날짜. 가능한 값의 범위는 `1`\$1`31`입니다. 음수 값은 해당 월의 일을 역순으로 지정하므로 `-1`은 해당 월의 마지막 날짜를 나타냅니다.
+ **월** - 전체 역월 이름 또는 숫자로 표시된 연도의 월. 예를 들어 `1, may:august`입니다.
+ **연도** - 간격에 대한 하나 이상의 연도. 예를 들어 `2023:2024`입니다.

이러한 각 요소는 목록일 수 있으며, 일치하려면 요소의 항목을 하나 이상 충족해야 합니다. 또한 필드는 `:`을 사용하여 범위를 지원합니다. 예를 들어 `monday:thursday`입니다.

필드를 비워 두면 어느 시간이든 필드와 일치합니다. 전체 시간 간격과 일치하려면 모든 필드가 일치해야 합니다. 음소거 타이밍에는 여러 시간 간격이 포함될 수 있습니다.

정확한 기간을 지정하려면 해당 기간에 필요한 모든 옵션을 지정합니다. 예를 들어 3월, 6월, 9월, 12월의 첫 번째 월요일, 12:00\$124:00 UTC 시간에 시간 간격을 생성하려는 경우 시간 간격 사양은 다음과 같을 수 있습니다.
+ 시간 범위:
  + 시작 시간: `12:00`
  + 종료 시간: `24:00`
+ 요일: `monday`
+ 월: `3, 6, 9, 12`
+ 해당 월의 일: `1:7`

# 알림 규칙의 상태 조건 및 상태 보기
<a name="v10-alerting-manage-rulestate"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

알림 규칙의 상태 조건과 상태는 알림에 대한 몇 가지 주요 상태 표시기를 제공합니다.

세 가지 구성 요소가 있습니다.
+ [알림 규칙 상태](#v10-alerting-manage-rulestate-state)
+ [알림 인스턴스 상태](#v10-alerting-manage-rulestate-instance)
+ [알림 규칙 상태](#v10-alerting-manage-rulestate-health)

서로 관련되었지만 각 구성 요소는 약간 다른 정보를 전달합니다.

**알림 규칙의 상태 조건 및 상태를 보는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**을 선택하세요.

1. **알림 규칙**을 선택하여 기존 알림 목록을 보세요.

1. 알림 규칙을 선택하여 상태 조건 및 상태를 확인합니다.

## 알림 규칙 상태
<a name="v10-alerting-manage-rulestate-state"></a>

알림 규칙은 다음 상태 중 하나일 수 있습니다.


| State | 설명 | 
| --- | --- | 
| 정상 | 평가 엔진에서 반환한 시계열 중 pending 또는 firing 상태의 시계열은 없습니다. | 
| 보류중 | 평가 엔진에서 반환한 하나 이상의 시계열이 pending입니다. | 
| 실행 | 평가 엔진에서 반환한 하나 이상의 시계열이 firing입니다. | 

**참고**  
알림은 먼저 `pending`으로 전환된 다음, `firing`으로 전환되므로 알림이 실행되기까지 최소 2회의 평가 주기가 걸립니다.

## 알림 인스턴스 상태
<a name="v10-alerting-manage-rulestate-instance"></a>

알림 인스턴스는 다음 상태 중 하나일 수 있습니다.


| State | 설명 | 
| --- | --- | 
| 정상 | pending 또는 firing이 아닌 알림의 상태. 모든 것이 예상대로 작동합니다. | 
| 보류중 | 구성된 임계치 기간 미만으로 활성화된 알림의 상태. | 
| 알림 | 구성된 임계치 기간보다 오래 활성화된 알림의 상태. | 
| 데이터 없음 | 구성된 기간에 데이터가 수신되지 않았습니다. | 
| 알림 | 알림 규칙을 평가하려고 할 때 오류가 발생했습니다. | 

## 마지막 상태 유지
<a name="v10-alerting-manage-rulestate-keepstate"></a>

`NoData` 또는 `Error` 상태가 나타날 때 마지막 상태를 유지하도록 알림 규칙을 구성할 수 있습니다. 이렇게 하면 알림이 실행되지 않고 해결 및 다시 실행되지 않습니다. 일반 평가와 마찬가지로 알림 규칙은 보류 기간이 경과한 후 `pending`에서 `firing`으로 전환됩니다.

## 알림 규칙 상태
<a name="v10-alerting-manage-rulestate-health"></a>

알림 규칙은 다음 상태 중 하나일 수 있습니다.


| State | 설명 | 
| --- | --- | 
| Ok | 알림 규칙을 평가할 때 오류가 없습니다. | 
| 오류 | 알림 규칙을 평가할 때 오류가 발생했습니다. | 
| NoData | 규칙 평가 중에 반환된 하나 이상의 시계열에 데이터가 없습니다. | 
| \$1status\$1, KeepLast | 규칙이 다른 상태를 수신했지만 알림 규칙의 마지막 상태를 유지하도록 구성되었습니다. | 

## NoData 및 Error에 대한 특별 알림
<a name="v10-alerting-manage-rulestate-special"></a>

알림 규칙 평가에서 `NoData` 또는 `Error` 상태가 생성되면 Grafana 알림은 다음과 같은 추가 레이블이 있는 알림 인스턴스를 생성합니다.


| Label | 설명 | 
| --- | --- | 
| alertname | 상태에 따라 DatasourceNoData 또는 DatasourceError. | 
| datasource\$1uid | 상태의 원인이 되는 데이터 소스의 UID. | 

**참고**  
추가 레이블을 생성하려면 [Grafana 관리형 알림 규칙 구성](v10-alerting-configure-grafanamanaged.md) 주제에 설명된 대로 알림 규칙에서 `NoData` 또는 `Error`로 데이터 없음 또는 오류 처리를 설정해야 합니다.

무음 추가, 연락 지점으로 라우팅 등을 포함하여 이러한 알림을 일반 알림과 동일한 방식으로 처리할 수 있습니다.

# 알림 그룹별 보기 및 필터링
<a name="v10-alerting-manage-viewfiltergroups"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

알림 그룹에서는 Alertmanager 인스턴스의 그룹화된 경보를 표시합니다. 기본적으로 알림 규칙은 알림 정책의 기본 정책에 대한 레이블 키별로 그룹화됩니다. 공통 알림 규칙을 단일 알림 그룹으로 그룹화하면 중복 알림 규칙이 실행되지 않습니다.

알림 그룹을 보고 특정 기준과 일치하는 알림 규칙을 필터링할 수도 있습니다.

**알림 그룹을 보는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**을 선택하세요.

1. **그룹**을 선택하여 기존 그룹을 보세요.

1. **Alertmanager** 드롭다운에서 외부 Alertmanager를 데이터 소스로 선택하세요.

1. **사용자 지정 그룹화 기준** 드롭다운에서 레이블 조합을 선택하여 기본값이 아닌 다른 그룹화를 보세요. 이는 알림 정책 그룹을 디버깅하고 확인하는 데 유용합니다.

루트 정책의 그룹화 또는 사용자 지정 그룹화에 지정된 레이블이 알림에 포함되지 않은 경우 헤더가 `No grouping`인 다양한 그룹에 알림이 추가됩니다.

알림의 레이블 또는 상태를 기준으로 알림을 필터링할 수 있습니다.

**레이블을 기준으로 필터링하는 방법**
+ **검색**에서 기존 레이블을 입력하여 레이블과 일치하는 알림을 확인하세요.

  예를 들어 `environment=production,region=~US|EU,severity!=warning`입니다.

**상태를 기준으로 필터링하는 방법**
+ **상태**에서 활성, 억제됨 또는 미처리 상태 중에서 선택하여 선택한 상태와 일치하는 알림을 보세요. 다른 모든 알림은 숨겨집니다.

# 알림 오류 보기
<a name="v10-alerting-manage-viewnotificationerrors"></a>

****  
이 설명서 주제는 **Grafana 버전 10.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 9.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 9에서 작업](using-grafana-v9.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

알림 오류를 보고 알림 오류가 전송되지 않았거나 수신되지 않은 이유를 이해합니다.

**참고**  
이 기능은 Grafana Alertmanager에 대해서만 지원됩니다.

**알림 오류를 보는 방법**

1. 왼쪽 메뉴에서 **알림**을 선택한 다음, **연락 지점 **을 선택하세요.

   연락 지점에서 장애가 발생한 경우 워크스페이스 오른쪽에 오류가 있다는 메시지와 오류 개수가 표시됩니다.

1. 연락 지점을 선택하여 해당 연락 지점에 대한 오류 세부 정보를 확인하세요.

   오류 아이콘 위로 마우스를 가져가면 오류 세부 정보가 표시됩니다.

   연락 지점에 둘 이상의 통합이 있는 경우 나열된 각 통합에 대한 모든 오류가 표시됩니다.

1. 상태 열에서 알림 상태를 확인하세요.

   정상, 시도 없음 또는 오류일 수 있습니다.