CONTACT
お問い合わせ

Zabbixで障害検知時のメール通知方法

Zabbixで障害を検知した際のメール通知方法を説明する。

目次

Zabbixで障害検知時のメール通知方法

  1. 目的
  2. 動作環境
  3. カスタムアラートスクリプト
  4. カスタムアラートスクリプトの配置先
  5. カスタムアラートスクリプトの通知用メディアへの追加手順
  6. ダウンロード

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つの引数が渡されるので、カスタムアラートスクリプトにはその処理内容を記載する。
①送信先アドレス
②メールタイトル
③メール本文

コマンドの意味

-ASMTP-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
  ※ダウンロード後に「_」を「.」に修正し、ご使用ください。