Zabbixで障害検知時のメール通知方法
Zabbixで障害を検知した際のメール通知方法を説明する。
目次
Zabbixで障害検知時のメール通知方法
1.目的
zabbixの基本機能であるメールによる障害通知は、SMTP-AUTHに対応していないため、SMTP-AUTH認証設定のアドレスに対してメール送信ができない。
障害発生時にメール送信されるようにするため、「zabbixのカスタムアラートスクリプト機能を利用して、SMTP-AUTHによるメール送信を実現する方法を説明する。
2.動作環境
Zabbix server v2.2.19 (revision 70207) (14 July 2017)
Compilation time: Jul 17 2017 04:50:18
3.カスタムアラートスクリプト
今回は以下の2つのスクリプトを使用する。
sendMail.sh | カスタムアラートスクリプト本体 |
sendMail.py | カスタムアラートスクリプトが呼び出すpythonスクリプト ※実際にSMTP-AUTHによるメール送信を行うのはこちら |
※sendMail.shについて
zabbixから3つの引数が渡されるので、カスタムアラートスクリプトにはその処理内容を記載する。
①送信先アドレス
②メールタイトル
③メール本文
コマンドの意味
-A | SMTP-AUTHでメールを送信する |
-m | 送信先SMTPサーバ |
-p | 送信先ポート番号 |
-t | 送信先メールアドレス |
-s | メールタイトル |
-b | メール本文 |
-f | 送信元メールアドレス ※今回このコマンドは使用せず、デフォルト値をpythonスクリプトに埋め込むこととした。 |
4.カスタムアラートスクリプトの配置先
カスタムアラートスクリプトの配置場所
/usr/lib/zabbix/alertscripts
カスタムアラートスクリプトのパス
zabbix_server.conf内に記載する。
### Option: AlertScriptsPath
# Full path to location of custom alert scripts.
# Default depends on compilation options.
#
# Mandatory: no
# Default:
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
5.カスタムアラートスクリプトの通知用メディアへの追加手順
1.メディアタイプの作成
[管理]-[メディアタイプ]-[メディアタイプの作成]
2.メディアタイプを作成する
「タイプ=スクリプト」でメディアタイプを作成
※スクリプト名は配置したカスタムアラートスクリプトの名前
ユーザに通知用のメールアドレスを設定
1.ユーザの選択/作成
[管理]-[ユーザ]
紐づけたいユーザがある場合→「メンバー」項の『ユーザ名』をクリックする。
紐づけたいユーザがない場合→「#」項の『ユーザー』リンクをクリックし、新規作成する。
2.「メディアタブ」を選択
3.追加しているメディアタイプを確認する
追加する場合は下部の「追加」を選択する。
①追加しているメディアタイプ
②新規追加
4.メディアタイプの設定をする
タイプ | カスタムアラートスクリプトとして登録したメディアタイプ |
送信先 | メールの送信先 |
有効な時間帯 | 送信許可時間:フォーマットは下記参照https://www.zabbix.com/documentation/2.2/jp/manual/appendix/time_period |
指定した深刻度の時に使用 | 通知するレベル(トリガーの設定) |
ステータス | この設定のステータス有効/無効 |
アクションの追加
1.アクションの作成
[設定]-[アクション]-[アクションの作成]
2.メールの件名とボディ部のフォーマットを行う
{}の部分は通知内容で置き換えられる。
3.実行条件を設定する
「アクションの実行条件」タブの実行条件を設定する。
※何も指定しない場合、最も単純なケースとしてトリガーが「OK」から「障害」に変わった場合にアクションが実行される。
4.アクションの実行内容を設定する
「アクションの実行内容」タブの実行内容を設定する。
実行内容のタイプ | アクションの内容 |
ユーザーグループに送信 | ユーザーグループに送信する場合設定する |
ユーザーに送信 | 個別ユーザに送信する場合設定する |
次のメディアのみ使用 | アクションで使用するメディアタイプ |
6.ダウンロード
◎sendMail.sh ≫ sendmail_sh
◎sendMail.py ≫ sendmail_py
※ダウンロード後に「_」を「.」に修正し、ご使用ください。