Zabbixのアラートをメール通知する設定手順とメール文をカスタマイズする方法

Zabbixでアラートを発報する方法は様々ありますが、メール通知で受け取るのが一般的です。サーバー、クラウド運用の現場で触っている方も多いのではないでしょうか。今回はZabbixでアラートをメール通知する方法とそのメール文をカスタマイズする方法を紹介します。また、監視からメール通知までを無料かつ5分で始める方法も紹介しますので参考にしてみてください。

Zabbixでメール通知を設定する際に考慮すべきこと

Zabbixでメールを通知する際は構築されているZabbixマネージャーのコンソールから設定していきます。別途社内のメールサーバーやクラウドのメールサービスを利用するのが一般的です。マネージャーサーバーとメールサーバーを同居させるケースもありますが、サービスの競合による不具合の可能性や、障害時の原因切り分けの観点から、ここでは分けることをおすすめします。

また、通知の内容は予め用意されているテンプレートとZabbix構文で設定する事が可能ですが、デフォルトの設定だと十分なアラートの内容が伝わらない点には考慮が必要です。わかりやすいメール文にカスタマイズする方法にも触れるので参考にしてみてください。

Zabbixでデフォルトのメール通知を受信するための設定手順

Zabbixでメール通知を設定してみましょう。Zabbixの構築監視対象サーバーの登録は済んでいるものとします。

1. メディアタイプ(メール)の設定

[管理]→[メディアタイプ]→[Email(HTML)]をクリックします。

Zabbixでデフォルトのメール通知を受信するための設定手順1

2. メールサーバーの設定

メール送信に必要な各項目を入力していきます。有効なSMTPサーバーやアカウントを入力してください。その後、[更新]をクリックします。

Zabbixでデフォルトのメール通知を受信するための設定手順2

3. メールのテスト

設定した内容でメールが届くか確認します。[Email(HTML)]の右端にある[テスト]をクリックします。

Zabbixでデフォルトのメール通知を受信するための設定手順3

有効な送信先メールアドレスを入力し[テスト]をクリックします。

Zabbixでデフォルトのメール通知を受信するための設定手順4

成功しました。

Zabbixでデフォルトのメール通知を受信するための設定手順5

4. 届いたメールの確認

テストメールがZabbixから届いていることを確認できました。

Zabbixでデフォルトのメール通知を受信するための設定手順6

5. 設定をユーザー(管理者)に紐づけ

このメール設定をユーザー(管理者)に紐づけます。[管理]→[ユーザー]→[Admin]をクリックします。

Zabbixでデフォルトのメール通知を受信するための設定手順7

[メディア]→[追加]からメディアタイプのプルダウンで先ほど設定した[Email(HTML)]を選択、[送信先]にアラートを受信したいメールアドレスを設定し[追加]をクリックします。画面遷移後[更新]をクリックします。

Zabbixでデフォルトのメール通知を受信するための設定手順8

初期ユーザーのAdminに設定していますが、個別にユーザーを作り設定する事もできます。

6. 通知テスト

意図的に障害を発生させるために、監視対象のサーバーでCPU使用率を100%にしてみます。Ubuntuの為、[yes > /dev/null]コマンドを利用して負荷をかけていきます。コマンドの後ろに&をつけるとプロセスを多重起動出来るので、すぐにCPU使用率を100%にすることができます。

Zabbixでデフォルトのメール通知を受信するための設定手順9

7. コンソールで障害を確認

Zabbixコンソール上で対象サーバーの障害が発生していることを確認できます。

Zabbixでデフォルトのメール通知を受信するための設定手順10

8. 障害メールの確認

Zabbixからの障害メールが届いていることを確認できました。

Zabbixでデフォルトのメール通知を受信するための設定手順11

メールはHTMLメールですが、かなりあっさりしています。これだけだと、緊急度をすぐに判断することが出来なかったり、大量のメールが届いている中で流し見してしまい埋もれる可能性がありそうです。

Zabbixからのメールを誰でもわかるようにカスタマイズする方法

送信するメールはカスタマイズできます。今回は一目で異常が発生している事を認知させるために、HTMLメールに色をつけてわかりやすくしたいと思います。

1. メールの要件を考える

障害メールの要件としては、

  • どのサーバー(IP)で発生しているか伝える
  • 障害の場合は「赤」復旧は「緑」で表現
  • 重要度を強調する

の3点を考えて設定します。

2. メッセージテンプレートを編集する(HTML)

前項で設定したメールはHTMLですので、HTMLタグがそのまま扱えます。本文を見たときに一目でわかるように書いてみます。

[管理]→[メディアタイプ]→[Email(HTML)]をクリックし、[メッセージテンプレート]のタブを開きます。障害、障害復旧などタイプに応じてメッセージを変更できますので、[障害]のアクション[変更]をクリックします。

Zabbixからのメールを誰でもわかるようにカスタマイズする手順1

件名もわかりやすくするために文頭に「障害が発生しました_」と追記します。メッセージ内にも見出し赤文字を表示させるために次の一行を最初に挿入します。

<h2 style="color:red">障害が発生しました</h2><br>

Zabbixからのメールを誰でもわかるようにカスタマイズする手順2

3. メッセージテンプレートを編集する(マクロ)

続いて{}で括られているZabbixマクロを編集します。ここで言うマクロとは障害発生時のトリガー詳細や重要度、対象ホストなどの値を取得しメールに記載できるよう予め登録された構文になります。
まず障害が発生しているホスト名がわかるよう、見出しに組み込んでしまいましょう。本文内に「<b>Host:</b> {HOST.NAME}<br>」の記載があるのでこれを流用し、次のように編集します。

<h2 style="color:red">  {HOST.NAME}で障害が発生しました</h2><br>

また、環境把握の為にIPが必要になって来ることも多いので、以下マクロを記入します。

<b>Host IP:</b> {HOST.IP}<br>

Zabbixからのメールを誰でもわかるようにカスタマイズする手順3

[更新]をクリックし、元の画面に遷移後[更新]をクリックして設定が完了しました。

4. 障害メールの確認

前項であった手順でCPU使用率の障害を起こして、メールを確認します。

Zabbixからのメールを誰でもわかるようにカスタマイズする手順4

件名で障害が発生していることがわかり、重要度が赤色で強調され、どのホスト(IP)で起きているかがわかり要件を満たせました。

5. 障害復旧時の例

復旧時もわかりやすいようにテンプレートを編集しておきます。[管理]→[メディアタイプ]→[Email(HTML)]をクリックし、[メッセージテンプレート]のタブ→[障害復旧]のアクション[変更]をクリックします。文言を変える、色を緑にするなど適切に変えていきます。

Zabbixからのメールを誰でもわかるようにカスタマイズする手順5

復旧後のメールを確認します。

Zabbixからのメールを誰でもわかるようにカスタマイズする手順6

無料かつ5分で監視からメール通知の設定まで完了する方法

OSSによる監視に煩わしさを感じ、クラウドサービスの活用を検討するという方も少なくないと思います。中でも特に簡単に始められるのがSite24x7です。クラウドサービスなのでメールサーバーを用意する必要もありません。必要なのはアカウントの登録と監視対象サーバーへのエージェントのインストール、簡単な設定の3ステップのみです。

何も監視できていない状態からわずか5分で、例えばサーバー監視を設定し、異常時にメール通知を受け取れるようになります。

メール通知に関しては、デフォルトで設定が入っているため何もしなくても受信します。ここではそのデフォルトの設定内容までを紹介します。

0. 監視の開始

サーバーのリソース監視を始めるまでのアカウントの作成やエージェントのインストール手順はこちらをご確認ください。必要なものは監視対象サーバーとメールアドレスのみで、数分で完了できます。

1. 監視設定の確認

まずは監視設定がどうなっているか、リソース監視のしきい値を確認します。[管理]→[設定プロファイル]→[しきい値と可用性]→[Default Threshold – SERVER]をクリックします。

しきい値プロファイルの編集画面になります。スクロールしていくとCPU、メモリ、スワップメモリ、ディスクの使用率のしきい値と通知の重要度が[トラブル]と[クリティカル]でわかれている事を確認できます。これがメール通知の条件となります。

2.通知プロファイルの確認

[管理]→[設定プロファイル]→[通知プロファイル]→[Default Notification]をクリックするとデフォルトの通知設定の詳細内容を確認できます。必要に応じてプロファイルを追加、編集します。

3.必要に応じてエスカレーション先グループ変更

デフォルトではエスカレーション設定の連絡先グループが設定されていないので、プルダウンで表示される[管理グループ]を選択し[保存]をクリックします。

デフォルトでアカウント作成者は管理グループに属しています。個別にグループを作成することも可能です。

4.障害メールの確認

Zabbixの手順と同様に監視対象サーバーのCPU使用率を上げて100%にします。ダッシュボードの[アラート]から、対象のサーバーでアラートが出ていることを確認します。

アラートのメールが届いていることを確認できました。

最初から色付きで緊急度がわかりやすくこのまま運用出来そうです。復旧時のメールも同様にわかりやすい体裁となっています。

まとめ

Zabbixでの設定方法やメール内容の記述が複雑なのに比べ、Site24x7の設定は簡単で、内容もわかりやすくデフォルトで運用に耐えうる事がわかりました。一般的なサーバー監視を行うのであれば、Site24x7で十分と言えます。複雑な条件をつけたり、開発したスクリプトを使用したいなどの要件がある場合はそのままZabbixを使うことが適していると言えるでしょう。

手軽にサービス監視が出来るSite24x7。サーバーやサービスが増え続ける度に監視の設定に頭を悩ませている運用担当者は、SaaS型の監視ソリューションSite24x7を採用してみてはいかがでしょうか。

FREEプランのサインアップはこちら:
https://www.site24x7.jp/signup.html?pack=1&l=ja

プランと価格の詳細はこちら:
https://www.site24x7.jp/pricing.html

ZabbixとSite24x7の機能比較一覧はこちら:
https://www.site24x7.jp/zabbix-alternative.html

関連記事