a_hamada/ 2022年 10月 28日/ 技術

こんにちは!濱田です。
今回はzabbixのアラート通知設定について書いていこうと思います。
私が設定を行った際、詰まった箇所があるのでそちらも併せて書いていきます。
zabbixのアラート設定には様々な方式があるのですが、今回はEmailでアラートを上げる方法をご紹介します。

アラート通知の設定方法

早速本題に入っていきます。
zabbixのアラート設定にはいくつか手順がありますので、順に説明していきます。

メディアタイプの設定

アラート通知の設定でまず必要なのが、メディアタイプの設定です。
メディアタイプの設定ではEmail、Slackなどといったツールとzabbixを接続するための設定を行います。
まずwebインタフェース左側メニューから「管理」→「メディアタイプ」をクリックします。
すると設定可能なメディアタイプの一覧が出てきます。
その中から「Email」を選択

Emailを選択すると画像のようなメールサーバの設定画面が表示されるので、適宜項目を埋めていきます。

また「メッセージテンプレート」タブを選択すると障害発生時、復旧時などに送信される
メールの件名、本文のテンプレートを設定できます。
特に追加はしなくてもデフォルトでテンプレートが設定されてると思います。

ここまででメディアタイプの設定は終了です。

ユーザーグループ、ユーザーの作成

次にアラート通知を設定する前にアラートの通知を行うユーザー、ユーザーグループを作成していきます。
デフォルトでAdmin権限を持ったユーザ及び、Adminユーザが属しているユーザーグループがあるかもしれません。
ですが私がアラート通知を設定した際、Admin権限を持っていないユーザに通知しようとした際に少しはまったので、新しくユーザー及びユーザーグループを作成する手順からご紹介します。

ユーザーグループの作成

まずはユーザーグループを作成していきます。
webインタフェース左側のメニューから「管理」→「ユーザーグループ」を選択します。
すると現在作成されているユーザーグループの一覧が表示されると思います。
画面右上の「ユーザーグループの作成」をクリックします。
画像のようなユーザーグループ作成画面が表示されると思うので、
適当なグループ名を設定して有効に✓が入っているのを確認してください。
「ユーザー」には後程作成するユーザーを設定するので、現時点では空欄で大丈夫です。

設定出来たら次に権限タブに移動します。
ここからが私がアラート通知を設定する際にはまった部分です。
結論から言うと私がはまった原因は、
「アラート通知を受け取りたいユーザーもしくは、ユーザーグループに監視対象のホストが属しているホストグループへの表示権限がなかった」です。
今回のブログはこれが書きたくて書いたと言っても過言ではありません。
具体的な設定方法をご紹介します。
「ユーザーグループ」タブから「権限」タブに移動後、監視対象として追加したホストが属しているホストグループを検索ボックスで検索ワードを入力する、または検索ボックス横の選択ボタンを押してホストグループの一覧から選択します。
その後、追加したいユーザーグループの権限に応じて「表示/設定」、「表示のみ」を選択して「追加」を押せばホストグループへの権限設定は完了です。
アラート通知だけを目的にしているのであれば余計な権限を与えたくないので、「表示のみ」が良いと思います。
「追加」ボタンを押せばユーザーグループの作成完了です。

ユーザの作成

次に作成したユーザーグループに属するユーザを作成していきます。
webインタフェース左側のメニューから「管理」→「ユーザー」を選択します。
すると現在作成されているユーザーの一覧が表示されると思います。
その画面右上にある「ユーザーの作成」をクリックします。
すると画像のようなユーザー作成画面が表示されると思うので、必要事項を設定していきます。

「グループ」には先ほど作成したユーザーグループを設定してください。
またパスワードはwebインタフェースにログインしないユーザの場合は設定不要です。
なので今回の様にアラート通知を受け取るためのユーザーの場合設定する必要はありません。
必要な項目を設定し終えたら、「メディア」タブに移動します。
ここで障害発生時などにアラート通知を行う連絡先のメールアドレスを設定します。
まずメディアメニューの追加を押して、メディア追加ウィンドウを表示します。

メディア追加ウィンドウのタイプを「Email」に変更して、送信先にメールアドレスを入力します。
有効な時間帯の項目は1週間のうち、何曜日に何時から何時までの間で障害を通知するかの設定です。
1-7,00:00-24:00の1-7の部分が曜日、00:00-24:00が時間の設定になります。
なのでこの設定は24時間365日障害発生時にはアラート通知が飛んでくるように設定しています。
曜日の設定は1:月曜日、7:日曜日になっているので、
例えば平日の業務時間のみ障害通知を行いたいという場合には
1-5,09:0-18:00となります。
設定出来たら「追加」をクリックしてウィンドウを閉じます。

最後に権限タブに移動します。
ここで「ユーザーの役割」メニューの「選択」をクリックして、「ユーザーの役割」一覧から設定するユーザーの役割を選択します。

障害通知だけ行いたいユーザーなら「Guest role」で十分だと思います。
ユーザーの役割については今回はさほど重要ではないので割愛しますが、また機会があれば別途ブログに書きます。
「ユーザーの役割」設定後、表示される権限に設定したユーザーグループと同じ権限が付与されていることを確認して「追加」を押してユーザー作成は完了です。
ここまで完了したら先ほど作成したユーザーグループのユーザーに今作成したユーザーを設定するのを忘れずに。

アクションの作成

ここでようやく本題のアクションの設定を行っていきます。
webインタフェース左側のメニューから「設定」→「アクション」→「トリガーアクション」を選択します。
表示された画面右上の「アクションの作成」をクリックします。
するとアクションの作成画面が表示されます。

「名前」の項目にはどのユーザに対してのアクション項目なのかわかるような名前を設定します。
次に「実行条件」の「追加」をクリックします。
すると画像のような実行条件追加ウィンドウが表示されます。

実行条件としては例えば特定のホストで障害が発生したときにアラートを通知するようにしたり、発生した障害の深刻度でアラートを上げるようにしたりできます。
今回は特定のホストで障害が発生したときにアラートを上げるように設定します。
まず「タイプ」には「ホスト」を設定します。
次に「オペレータ」は「等しい」を選択します。
最後に「ホスト」に任意の監視対象を指定して、「追加」をクリックすれば実行条件の追加は完了です。
1つのアクションに対して複数の実行条件を設定することができます。
複数の実行条件を設定した場合、アクションの作成画面に「計算のタイプ」のメニューが追加されます。
これは設定された複数の実行条件のいずれかを満たしたときにアラートを上げるのか、
実行条件のすべてを満たしたときにアラートを上げるのかを設定できます。
設定できる項目とその内容は以下です。
・And/Or
 すべての実行条件を自動的にAndまたはOrで組み合わせて条件を設定してくれます。
 例えば同じタイプを設定した実行条件が複数ある場合はOrで条件を組み合わせます。
それ以外の場合は全てAndで条件が組み合わせられます。
・And
 すべての条件がAndで組み合わせられて設定されます。
・Or
 すべての条件がOrで組み合わせられて設定されます。
・カスタム条件式
 実行条件をAnd/Orで自由に組み合わせることができます。

続いて実行内容タブに移動します。

「デフォルトのアクション実行ステップの間隔」には、障害発生時にアラートを上げる間隔を設定します。
h=時間、m=分、s=秒などで設定できます。
次に実行内容を設定していきます。
実行内容メニューの「追加」をクリックします。
実行内容の詳細ウィンドウが立ち上がります。

「ステップ」と「ステップの間隔」に関しては詳細は割愛させていただきますが、
今回は特に使用しない項目なのでそのままの値で大丈夫です。
「ユーザーグループに送信」、「ユーザーに送信」項目には
先ほど作成したユーザーグループ、ユーザーを一覧から選択して追加すれば、
ユーザーに設定したメールアドレスにアラート通知を送信することができます。
「次のメディアのみ使用」の項目には、メディアタイプの一覧から「Email」を選択します。
「メッセージのカスタマイズ」にチェックを入れるとアクションに個別に件名、本文を設定できます。
「実行条件」は障害確認済みの状態によってアクションの実行を行いたい場合に設定します。
今回は特に設定しません。
「Add」(なぜか言語を日本語にしてもここだけ英語…)をクリックして完了です。

次に「復旧時の実行内容」の設定です。
「追加」をクリックして詳細ウィンドウを表示します。

「処理内容」が「メッセージの送信」になっている場合の設定項目は先ほどの実行内容と同じです。
「処理内容」を「障害通知送信済みのユーザー全てにメッセージを送信」に設定すると、
先ほどの実行内容で設定した送信先と同じ宛先に、障害復旧時に復旧した旨のメッセージを送信します。
ここも項目の設定が完了したら「Add」をクリックして完了です。

最後に「更新時の実行内容」の設定です。
これまで同様「追加」をクリックして詳細ウィンドウを表示します。

こちらの設定項目は「復旧時の実行内容」と全く同じですね。
ただこの項目の実行条件が障害の復旧時か、障害の確認、メッセージの入力時、障害の深刻度の変更などを行ったときかの違いです。
ここも「Add」をクリックして完了します。
最後にアクション自体の「追加」をクリックしてアクションの追加も完了です。
結構長くなってしまいましたがこれで障害発生時のアラート通知設定が完了です。
テストメールを発行してみましょうと言いたいところなのですが、
残念ながらアラートメールのテストメールの送信の仕方が調べてもわかりませんでした…
仕方なく私はWebシナリオを無理やり変えて障害を起こしてテストしました。
もし今後方法が分かりましたらブログに書こうと思います。

まとめ

少し長くなってしまいましたが、アラート通知の設定手順としては大まかに下記のとおりです。

  1. メディアタイプの設定
  2. ユーザーグループの作成
  3. ユーザーの作成
  4. 1.で作成したユーザーグループに2.で作成したユーザーを追加
  5. アクションの追加

一旦今回の記事でzabbix関連の記事は最後にしようかなと思っています。
次回のテーマに関しては未定です。
何を書こうかまだ悩んでます。
ひとまず今回の記事はここまでにしようと思います。

それではまた!

About a_hamada

2020年9月からWebプログラマに転向した半人前 日々勉強することばかり。 最近使っている言語はもっぱらPython