- 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
を選択作成
をクリック