Icinga Director でのメール通知設定

未分類

Icinga Director でメール通知の設定を行う。

s-nail(mailx 後継コマンド)のインストールおよび設定

icinga2 には標準でメール送信コマンド (/etc/icinga2/scripts/mail-{host,service}-notification.sh) が用意されているがこれは mailx(s-nail) を使ってメールを送信しているようだ。この s-nail についてはこちらを参照し、インストールおよび /etc/s-nail.rc の設定を行っておく。

なお、/etc/s-nail.rc の一例を以下に示す。

set mta=smtp://foo%40example.com:password@example.com:587
set smtp-use-starttls
set smtp-auth=plain
set v15-compat
set from=foo@example.com

メール通知設定

本家のドキュメントをみてもメール通知の設定方法がいまいちよくわからなかったが、ようやくまとまったページ(こちら)が見つかったのでこれを参考に設定を行う。ただし、こちらは icinga2 が動作している環境に postfix をインストールしそれを利用してメールを送信する方法となっている(それ専用のスクリプトもダウンロードできるようになっている)。近場にメールサーバがない場合はこの方法を用いてもいいだろう。

ここでは、mailx(s-nail) を利用した方法を説明する。

通知用ユーザの作成

通知用ユーザとは、各種通知を受け取るユーザのことである。システム用のユーザとは別に作成する。

ユーザグループの作成

ユーザグループを作成する。

左ペインの「Icinga Director」をクリック、つづいて画面中央の「ユーザ/コンタクト」をクリック、さらに画面右の「グループ一覧」をクリックする。

図1

画面右のユーザグループの「追加」をクリックする。

ユーザグループおよび表示名に「Admin Group」を入力する。グループ名および表示名は任意。

入力ができたら「追加」をクリックする。

ユーザグループに「Admin Group」が追加された。

ユーザテンプレートの作成

ユーザテンプレートを作成する。

左ペインの「Icinga Director」をクリック、つづいて画面中央の「ユーザ/コンタクト」をクリック、さらに画面右の「ユーザテンプレート」をクリックする。

画面右(すべてのユーザテンプレート画面)の「追加」をクリックする。

ユーザテンプレート名に「ADMIN」、グループに先ほど定義した「Admin Group」を選択する。状態フィルターと状態タイプフィルターは以下のように設定する。

状態: Critical, Down, OK, Unknown, Up, Warning

状態遷移タイプ: Acknowledgement, Custoum, DowntimeEnd, DowntimeRemoved, DowntimeStart, FlappingEnd, FlappingStart, Problem, Recovery

フィルターの部分は、一つ一つ選択していく。入力できたら「追加」をクリックする。

テンプレート「ADMIN」(未使用)が作成された。

ユーザの作成

つづいてユーザを作成する。

左ペインの「Icinga Director」をクリック、つづいて画面中央の「ユーザ/コンタクト」をクリック、さらに画面右の「ユーザ/コンタクト」をクリックする。

画面右の「追加」をクリックする。

ユーザ名および表示名に「info-icinga」、インポートで「ADMIN」を選択、Eメールに送信先のアドレス、後は下の画面の通りに入力する。最後に「追加」をクリックする。

コマンドの定義

つづいてコマンドを定義する。

コマンドの定義

左ペインの「Icinga Director」をクリック、つづいて画面中央の「コマンド」をクリックする。

画面右のコマンド画面の「Add」をクリックする。

コマンドタイプとして「Notification Plugin Command」を選択する。

コマンド名を「Host Alarm By Email」とする。コマンドに「/etc/icinga2/scripts/mail-host-notification.sh」を選択する。

最後に「保存」をクリックする。

同様にコマンド名「Service Alarm By Email」についても定義しておく。「Host Alarm By Email」との違いは、コマンドに「/etc/icinga2/scripts/mail-service-notification.sh」を指定すること。

コマンド引数の定義

つづいて、コマンド引数を定義する。

定義したコマンドを選択し、画面右の「Argument」タブをクリックする。すると以下の画面になる。

引数名と値に入力したら「追加」をクリックする。

「Host Alarm By Email」のコマンド引数は以下のものを定義する。

引数
-4$address$
-6$address6$
-b$notification.author$
-c$notification.comment$
-d$icinga.long_date_time$
-f$notification_from$
-i$icingaweb2url$
-l$host.name$
-n$host.display_name$
-o$host.output$
-r$user.email$
-s$host.state$
-t$notification.type$
-v$notification_logtosyslog$

また、「Service Alarm By Email」のコマンド引数は以下のものを定義する。

引数
-4$address$
-6$address6$
-d$icinga.long_date_time$
-e$service.name$
-l$host.name$
-n$host.display_name$
-o$service.output$
-r$user.email$
-s$service.state$
-t$notification.type$
-u$service.display_name$

以下はコマンド引数を入力した画面の例。

メール通知設定

メール通知設定を行う。

通知テンプレートの作成

左ペインの「Icinga Director」をクリック、つづいて画面中央の「通知テンプレート」をクリックする。

さらに画面右の「追加」をクリックする。

以下の情報を入力する。

通知テンプレート: Mail-Host-Template
通知コマンド: Host Alarm By Email
通知インターバル: 7200
最終通知までの時間: 2592000(30days)

「追加」をクリックする。

つづいて、以下の情報でテンプレートを追加する。

通知テンプレート: Mail-Service-Template
通知コマンド: Service Alarm By Email
通知インターバル: 7200
最終通知までの時間: 2592000(30days)

通知設定

左ペインの「Icinga Director」の「通知」をクリックする。

つづいて画面中央の「通知」をクリックし、画面右側の「追加」をクリックする。

以下の情報で設定する。

通知設定1
通知: Notification on Host Alerts to Admins
インポート: Mail-Host-Template
ユーザグループ: Admin Group
適用先: ホスト
条件式の指定: host.enable_notifications is true(or set)
状態フィルターと遷移タイプフィルター
状態: Down, Up
状態遷移タイプ: Acknowledgement, Custom, Problem, Recovery

通知設定2
通知: Notification on Service Alerts to Admins
インポート: Mail-Service-Template
ユーザグループ: Admin Group
適用先: サービス
条件式の指定: service.enable_notifications is true(or set)
状態フィルターと遷移タイプフィルター
状態: Critical, OK, Unknown, Warning
状態遷移タイプ: Acknowledgement, Custom, Problem, Recovery

以下のようになる。

これで、通知設定は完了である。

テスト

監視対象のホストをシャットダウン・再起動してメール通知が実施されるかどうか確認する。

当方の環境では上記の設定でメールが発信された。

コメント

タイトルとURLをコピーしました