

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

# 알림 설정
<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를 다시 시작하거나 핫 리로드를 수행하는 경우에만 리소스 속성을 변경할 수 있습니다. 이렇게 하면 파일이 다시 프로비저닝되거나 핫 리로드가 수행되는 경우 덮어쓸 리소스가 변경되는 것을 방지할 수 있습니다.