- Published on
ZabbixのアラートをIFTTTで通知する
- Authors

- Name
- 丸山 竜輝
概要
ちまたではPushbulletを使う方法やSlackを使う方法等が紹介されているがそもそもIFTTTアプリをスマホに入れており。履歴を記録する必要もなかったためIFTTTのプッシュ通知機能でアラートを受け取れるよう設定した。
前提条件
- Zabbixのバージョンは4
- 基本的には下記記事で構築した通りの環境
- dockerでzabbixを導入してみる
- 設定を日本語に変更済み今回は日本語でのUIを使って解説する
- iOSもしくはandroid端末にIFTTTアプリを導入しプッシュ通知を許可済み
設定手順
メディアの作成
管理->メディアタイプを開くメディアタイプの作成を開く- 下記の通り設定(
SUBJECTは二個要らないですミスで入れてしまいました。)

- (画像では登録済みのため更新と出ているが)追加をクリック
メディアの紐づけ
- 右上のユーザーアイコンをクリック
メディア->追加をクリックタイプでpushを選択- 送信先は今回使わないのでダミーで何か入れておいてください
- 追加をクリック
- 更新をクリック(ここを忘れて別ページ移ると設定が消えます)
IFTTTレシピの作成
- レシピの作成を開く
- thisにwebhooksを設定(途中で
Event Nameを聞かれますが後で使うので覚えておいてください) - thatに
NotificationのSend a rich notification from the IFTTT appを設定 - 下記の通り設定

プッシュ通知のテストとURLの取得
- webhooksを開く
- 右上の
Documentaitionを開く - イベントの箇所に先ほど作成したwebhookのイベント名
value1に適当な文言value2に適当なURLを入れる Test Itをクリック- IFTTTアプリが入ってる端末にプッシュ通知が届きプッシュ通知を開いた際に
value2に入れたURLが開かれることを確認 - この時のテスト画面にあったURLをコピーしておいてください
scriptの設定
Monitoring Artistのdockbixのalertスクリプトのパスはこの公式資料のZS_AlertScriptsPathにあるとおり/usr/local/share/zabbix/alertscriptsにあるzabbixの環境によってこのパスはことなると思うが、基本的にzabbixで設定されているalertscriptsディレクトリにスクリプトファイルを設置しないと呼び出されません。(永続化は別途設定必要)
- alertscriptsディレクトリに
push.shを作成下記の通り記述
※何故STDINを使って改行しているかというと$1の中身が改行されていたため最初通知の発砲に失敗しており個の箇所を現在の様に修正したら治りました。よりよい解決放があればご教示願います。
#!/bin/sh
curl -X POST {先ほどのURL} -H "Content-Type: application/json"
-d @- << EOF
{
"value1":"${1}",
"value2":"${2}"
}
EOF
2.最後におまじないをして終わりchmod +x push.sh(大体意味は分かると思うので説明は割愛)
プッシュ通知用にアクションをカスタマイズ(テスト中動かないかも)
IFTTTでURL用のパラメーターを設定したがそれをアクションの件名を使って引用しているので件名の欄をイベントURLに書き換えれば通知を開いた際アラートのイベント画面が開く(はず)
設定->アクションを開く- デフォルトのアクションを開き
複製をクリック 実行内容,復旧時の実行内容,更新時の実行内容のデフォルト件名を下記の様な形式に書き換えhttp://{zabbixホスト}/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.ID}実行内容,復旧時の実行内容,更新時の実行内容の実行内容のステップ1の変更をクリック次のメディアのみ使用の箇所をpushを選択作成をクリック