Tech Sketch Bucket of Technical Chips by TIS Inc.

フリーで使える統合監視の鬼、Zabbixでナウい監視をする〜Amazon SESでアラートを送る〜

Pocket

この記事はeXcale Developer's Blogから移転されたものです。


eXcale 開発チームの泉谷(@syguer)です。
前回はTriggerを設定してActionを実行する方法について紹介しましたが、今回は前回の記事で紹介したActionにAmazon SESを使ったメール送信を設定する方法を紹介します。


※以下、本記事ではZabbixのバージョンは2.2、OSはCent OS 6.5を使用します。
また、Zabbix serverについてはインストール済みを想定しています。Zabbix serverのインストールについてはこちらをご覧ください。


ZabbixからAmazon SESでメール送信

Zabbixにはメールを送信するための設定項目がデフォルトでありますが、認証が使えない問題があります。
そこで、外部のスクリプトを使ってAmazon SESにメールを投げるようにします。
使用するスクリプトはコミュニティで用意されているものをそのまま使います。
スクリプトはgithub上にあります。

スクリプトの配置

まずはスクリプトをダウンロードします。

今回はそのままgit cloneします。

スクリプトを配置したら/usr/lib/zabbix/alertscripts/sendmessage-smtp-php/sendmessage_smtp_php.shを編集します。
編集箇所は以下です。

※$MAIL_SMTP_USERと$MAIL_SMTP_PASSで設定する値はAmazon SES側で発行が必要です。
発行の手順についてはこちらを参照してください。

以上でスクリプトの配置は完了です。
ここからはZabbixのwebインターフェースで設定します。


Media Typeの追加

Media Typeとはメッセージの送り先のメディアのことで、デフォルトでEmailやSMS等が複数用意されています。
今回はここに新しくSESを追加します。

まず、[Administration] => [Media types]を選択し、右上の[Create media type]をクリックします。

TypeにScriptを指定すると以下のような画面になります。
Nameは今回はSESとします。また、Script nameにスクリプトの/usr/lib/zabbix/alertscripts/からの相対パスを入れます。
設定と同時に有効にするため、Enabledにチェックを入れたまま[Save]をクリックします。

Media Typeが追加されました。

メール送信先の設定

メールの送信先はZabbixのユーザー設定から行います。
今回は最初から用意されているAdminユーザーにメール送信先を追加します。
まず、[Administrator] => [Users]を開き、右上のプルダウンから[Users]を選択します。

Adminを選択します。

Media => addをクリックします

Typeに先ほど追加したSESを指定し、Send toに送信先のメールアドレスを設定します。
Addで追加されます。

追加されたら[Save]で保存します。

ここまででメール送信のための準備は完了です。
引き続き、実際にこの通知設定を使うようにActionを設定します。


Actionの設定

[Configuration] => [Actions]を開き、右上の[Create Action]を選びます。

Nameに適当な名前を入力します。

Operations => new をクリックします。

Send to Usersに先ほどメールアドレスを設定したAdminユーザーを追加し、Send only toにSESを指定しておきます。
設定したらAddをクリックしてOperationを追加します。

追加したOperationが確認できたらSaveをクリックしましょう。

お疲れ様でした。ここまでですべての設定は完了です。

アラートメールが飛ぶか確認する

以前の記事で追加したZabbix agentの死活監視に前回設定したTriggerがある場合は、監視対象ホストのZabbix agentを落とせば良いでしょう。
以下のようなメールが届けば成功です。

うまく届かない場合は[Monitoring] => [Events]から該当のアラートの詳細を開き、Actionでエラーが発生していないかを見てみるとよいでしょう。

この画像の例ではスクリプトの配置が誤っているため、エラーが発生しています。


最後に

今回はZabbixからAmazon SESでメールを送る方法を紹介しました。
アラート通知はメールが基本になると思うので、ぜひ活用してみてください。

エンジニア採用中!私たちと一緒に働いてみませんか?