【ZABBIX7.0LTS】アラートメールメッセージのカスタマイズについて

# はじめに
今回は、Zabbix における通知メールのメッセージをカスタマイズする方法について解説します。メッセージをカスタマイズすることで、障害内容をより具体的かつ分かりやすく把握できるようになります。<br>
※ メール設定についての説明は、今回は割愛させていただきます。
　　→ メール設定するにあたり役立つ情報（末尾参照）


# デフォルトの障害検知時のメッセージ
デフォルトでは、以下のような障害メッセージが用意されています。しかし、このままでは情報が十分に伝わらない場合も多いため、カスタマイズを検討する必要があるかと思います。

※ プレーンテキスト版
【通知】→【メディアタイプ】→【Email】→【メッセージテンプレート】→【障害】

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/3b9fe42d-186f-a60b-2667-1c821983905b.png)

以下は、死活監視がNGだった場合のメールです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/615d97c5-1293-d51b-8d69-90f4f032049d.png)

※ HTML版
【通知】→【メディアタイプ】→【Email (HTML)】→【メッセージテンプレート】→【障害】

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/6d23eecc-238b-617b-362c-d5718eb3e489.png)

以下は、死活監視がNGだった場合のメールです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/5dc7f4ca-7bb4-6ad0-5de2-fb63ea7ad696.png)

# メッセージをカスタマイズする方法
Zabbixでは、通知メッセージを「HTML」や「マクロ」を使用してカスタマイズすることが可能です。特に「マクロ」を活用すると、アラートを引き起こしたトリガーの値や現在の状況など、動的な情報をメッセージに含めることができます。これにより、通知内容をより具体的かつ分かりやすくすることができます。

### 1.「HTML」によるカスタマイズ：
「HTML」を使用して通知メッセージをカスタマイズするには、メール用のメディアタイプでメッセージ形式を「HTML」に設定する必要があります。

【通知】→【メディアタイプ】→【タイプがメールのメディア】（例: Email）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/d1d9417b-39d7-725c-1e10-41f4529da7f1.png)

詳細は以下を参照：
[**【ZABBIX 7.2 Documentation】1. Email**](https://www.zabbix.com/documentation/current/en/manual/config/notifications/media/email)

では早速、「メッセージ」を「HTML」形式で作成してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/24d578e2-58a1-8dc8-594a-54a2d5bcef45.png)

```html:HTML
<h2 style="color: red;">「{HOST.NAME} 」で障害発生！</h2>
```

通知メッセージに色を付けたり、重要な部分を強調したりすることが可能！！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/1efc31e4-6711-3e65-0388-36dacba6c9b9.png)


### 2.「マクロ」によるカスタマイズ：
Zabbix でサポートされている組み込み「マクロ」を使用することで、動的な情報をメッセージに含めることができます。

※ 組み込みマクロの中には、メッセージで使用できないものもあります。

「組み込みマクロ」の詳細は以下を参照：
[**【ZABBIX 7.2 Documentation】1. Supported macros**](https://www.zabbix.com/documentation/current/en/manual/appendix/macros/supported_by_location)

今回は、以下のマクロを通知メッセージに組みたいと思います。

#### 【組み込みマクロ】

<dl>
<dt>{EVENT.NAME}</dt>
<dd>アクションをトリガーした問題イベントの名前</dd>

<dt>{TRIGGER.SEVERITY}</dt>
<dd>トリガーの重大度</dd>

<dt>{TRIGGER.STATUS}</dt>
<dd>トリガーの状態（PROBLEM または OK のいずれか）</dd>

<dt>{EVENT.DATE}</dt>
<dd>アクションをトリガーしたイベントの日付</dd>

<dt>{EVENT.TIME}</dt>
<dd>アクションをトリガーしたイベントの時間。</dd>

<dt>{HOST.NAME}</dt>
<dd>Zabbix コンソール上でのホスト表示名</dd>
</dl>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/1593efda-9f15-c29b-73cc-3f66fadc8d42.png)

<dl>
<dt>{HOST.DESCRIPTION}</dt>
<dd>ホストの説明</dd>

<dt>{HOST.IP}</dt>
<dd>ホストのIPアドレス</dd>

<dt>{ITEM.NAME}</dt>
<dd>アイテムの名前</dd>

<dt>{ITEM.KEY}</dt>
<dd>トリガーで使用している原因となったアイテムキー</dd>

<dt>{ITEM.VALUE}</dt>
<dd>最新のアイテムの値</dd>

<dt>{TRIGGER.DESCRIPTION}</dt>
<dd>トリガーの説明</dd>

<dt>{EVENT.ID}</dt>
<dd>アクションをトリガーしたイベントID</dd>
</dl>

では早速、「メッセージ」に上記の「マクロ」を組み入れてみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/b85de10d-335d-cfe8-da1f-e70c5700d270.png)

通知メッセージに動的な情報を表示させることが可能！！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/55d24a5d-02e7-da0d-a731-4530e0c09ef0.png)


### 3.「マクロ」と「HTML」を組み合わせたカスタマイズ：
最後に「マクロ」と「HTML」を組み合わせてメッセージを作成したいと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/fa3c6f98-b817-a9c0-f908-09231fec080b.png)

```html:
件名：

【ZABBIX監視】障害発生中 !!（ 対象：{HOST.NAME} ）

本文：

<h2 style="color: red;">【 {HOST.NAME} 】の障害情報は、以下の通りです。</h2>
<b>【イベント名】</b>　　　　{EVENT.NAME} <br>
<b>【重要度】</b>　　　　　　{TRIGGER.SEVERITY} <br>
<b>【状態】</b>　　　　　　　{TRIGGER.STATUS} <br>
<b>【検出日時】</b>　　　　　{EVENT.DATE} {EVENT.TIME} <br>
<b>【ホスト名】</b>　　　　　{HOST.NAME} <br>
<b>【ホストコメント】</b>　　{HOST.DESCRIPTION} <br>
<b>【IPアドレス】</b>　　　　{HOST.IP} <br>
<b>【アイテム名】</b>　　　　{ITEM.NAME} <br>
<b>【アイテムキー】</b>　　　{ITEM.KEY} <br>
<b>【アイテム値】</b>　　　　{ITEM.VALUE} <br>
<br>
<b>【トリガー内容】</b> <br>
{TRIGGER.DESCRIPTION} <br>
<br>
<b>Original problem ID：</b>{EVENT.ID}

```

このように、「HTML」と「マクロ」を組み合わせることで、障害通知メールをより視覚的に分かりやすく表現することができます！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/91ccb218-a4e1-0f0e-f730-e320a5b2ed98.png)


# メール設定するにあたり役立つ情報

以下は、Zabbix でアラート通知の設定方法を詳しく解説したドキュメントです。
[**【ZABBIX 7.2 Documentation】5. Receiving problem notification**](https://www.zabbix.com/documentation/current/en/manual/quickstart/notification)

以下は、アラート通知に必要なメール設定の方法が分かるドキュメントです。
[**【ZABBIX 7.2 Documentation】1. Email**](https://www.zabbix.com/documentation/current/en/manual/config/notifications/media/email)

以下は、メール送信に必要なメディア設定の方法が分かるドキュメントです。
[**【ZABBIX 7.2 Documentation】1. Media types**](https://www.zabbix.com/documentation/current/en/manual/config/notifications/media#user-media)

以下は、メール通知で「Gmail」や「Office365」を使用する上で役立つサイトです。
[**Zabbix: Gmail、o365からのメール送信 (6.4以降)**](https://zenn.dev/gohatomo/articles/68ef4b70b51700)

# 参考資料
・[**Zabbixのアラートをメール通知する設定手順とメール文をカスタマイズする方法**](https://www.site24x7.jp/blog/zabbix-email-notification/)
・[**【ZABBIX 7.2 Documentation】4. メッセージでマクロを使用する**](https://www.zabbix.com/documentation/current/en/manual/config/notifications/action/operation/macros)
・[**誰でも簡単にできる！HTMLで文字の色を指定する方法【初心者向け】**](https://magazine.techacademy.jp/magazine/9799)
・[**HTMLの基本テクニック**](https://www.tohoho-web.com/wwwbeg3.htm)
・[**カラーコード一覧表**](http://www.netyasun.com/home/color.html)