

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 通知テンプレートの作成
<a name="v9-alerting-create-templates"></a>

****  
このドキュメントのトピックは、**Grafana バージョン 9.x** をサポートする Grafana ワークスペース向けです。  
Grafana バージョン 10.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 10 での作業](using-grafana-v10.md)」を参照してください。  
Grafana バージョン 8.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 8 での作業](using-grafana-v8.md)」を参照してください。

コンタクトポイントに送信するため、再利用可能な通知テンプレートを作成できます。

通知テンプレートには 1 つ以上のテンプレートを追加できます。

通知テンプレート名は、一意である必要があります。同じ通知テンプレートまたは異なる通知テンプレートに、同じ名前のテンプレートを 2 つ使用することはできません。`__subject`、`__text_values_list`、`__text_alert_list`、`default.title`、`default.message` などのデフォルトテンプレートと同じ名前のテンプレートを定義しないでください。

[コンタクトポイント] タブには、通知テンプレートのリストが表示されます。

## 通知テンプレートの作成
<a name="v9-alerting-creating-templates"></a>

**通知テンプレートを作成するには**

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. 通知テンプレート全体の名前を入力します。例えば、`email`。

1. 各テンプレートの最初と最後に `{{ define "name-of-template" }}` と `{{ end }}` を含む各テンプレートをコンテンツフィールドに書き込みます。`email.subject` や `email.message` など、通知テンプレート内の各テンプレートにわかりやすい名前を使用できます。この場合、上記で入力した通知テンプレートの名前は再度使用しないでください。

   次のセクションでは、作成するテンプレートの詳細な例を示します。

1. 保存をクリックします。

## E メールの件名テンプレートの作成
<a name="v9-alerting-create-template-subject"></a>

この例では、発射アラートと解決済みアラートの数を含む E メールの件名のテンプレートを作成します。

```
1 firing alerts, 0 resolved alerts
```

**E メールの件名のテンプレートを作成するには**

1. `email.subject` というテンプレートを次の内容で作成します。

   ```
   {{ define "email.subject" }}
   {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts
   {{ end }}
   ```

1. テンプレートは、キーワード `template` を使用して**件名**フィールドに配置して、コンタクトポイント統合を作成するときに使用します。

   ```
   {{ template "email.subject" . }}
   ```

## E メールのメッセージ用のテンプレート作成
<a name="v9-alerting-create-template-message"></a>

この例では、すべての発射アラートと解決済みアラートの概要を含む E メールのメッセージ用のテンプレートを作成します。

```
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
```

**E メールのメッセージ用のテンプレートを作成するには**

1. `email` という名前の通知テンプレートを、コンテンツに `email.message_alert` と `email.message` という 2 つのテンプレートで作成します。

   `email.message_alert` テンプレートは、`email.message` テンプレートに E メールの構造が含まれている間、各発射アラートと解決済みアラートのラベルと値を印刷するために使用されます。

   ```
   {{- 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="v9-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` を使用して**タイトル**フィールドに配置して、コンタクトポイント統合を作成するときに使用します。

   ```
   {{ template "slack.title" . }}
   ```

## Slack メッセージのコンテンツのテンプレート作成
<a name="v9-alerting-create-template-slack-message"></a>

すべての発射アラートと解決済みアラートの説明 (ラベル、注釈、ダッシュボード URL など) を含む Slack メッセージのコンテンツのテンプレートを作成します。

```
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` の 2 つのテンプレートを使用して、`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` を使用して**テキスト本文**フィールドに配置して、コンタクトポイント統合を作成するときに使用します。

   ```
   {{ template "slack.message" . }}
   ```

## 共有テンプレートを使用して E メールと Slack の両方にテンプレートを作成する
<a name="v9-alerting-create-shared-templates"></a>

E メールや Slack など、コンタクトポイントごとに個別の通知テンプレートを作成する代わりに、同じテンプレートを共有できます。

例えば、この件名の E メールを送信し、このタイトル `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. E メールの場合は、E メールコンタクトポイント統合の件名フィールドからテンプレートを実行します。

   ```
   {{ template "common.subject_title" . }}
   ```

1. Slack の場合は、Slack コンタクトポイント統合のタイトルフィールドからテンプレートを実行します。

   ```
   {{ template "common.subject_title" . }}
   ```

## 通知テンプレートの使用
<a name="v9-alerting-use-notification-templates"></a>

コンタクトポイントのテンプレートを使用して通知をカスタマイズします。

**コンタクトポイントの作成時にテンプレートを使用するには**

1. **[アラート]**メニューから、**[コンタクトポイント]** を選択して、既存のコンタクトポイントのリストを表示します。

1. **[コンタクトポイントを追加]** を選択します。または、編集するコンタクトポイントの横にある **[編集]** アイコン (ペン) を選択して、既存のコンタクトポイントを編集することもできます。

1. **[Message]** (メッセージ) や **[Subject]** (件名) などの 1 つ以上のフィールドに、使用するテンプレートを入力します。テンプレートを入力するには、`{{ template "template_name" . }}` フォームを使用し、 *template\$1name* を使用するテンプレートの名前に置き換えます。

1. **[コンタクトポイントの保存]** をクリックします。