Zabbix4.4+SlackはWebhookで!
いままでZabbixからの通知をSlackで利用しようとすると、外部スクリプトを書いて登録して。。。
ってやる必要があったのですが、Zabbix4.4からはメディアタイプとして「Webhook」ってのが追加になっています。
この Webhook を使えば、Zabbix の管理画面だけで外部サービスに通知するための JavaScriptコードの入力や編集がすることができます。
ってことで早速!
SlackからWebhook URLを獲得する
Incomming Webhooksを有効化することになるのですが、あちこちで開設されているので、ここではカット!!!(**)
今回は投稿先として「#zabbix」を作成しました。プライベートで(^^;
https://hooks.slack.com/services/****/****/****
ZabbixにWebhookを設定する
Slackへの通知の送信を行うために、Webhookを設定します。
管理 / メディアタイプ / メディアタイプの作成
メディアタイプの入力画面が表示されますんで、パラメータを登録します。
パラメータは不要なやつは消しちゃいます。
スクリプトはこちらを使わせていただきました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
var req = new CurlHttpRequest(); req.AddHeader('Content-Type: application/x-www-form-urlencoded'); Zabbix.Log(4, 'webhook request value='+value); req.Post( 'https://hooks.slack.com/services/****', 'payload='+value ); Zabbix.Log(4, 'response code: '+req.Status()); return JSON.stringify({ 'tags': { 'endpoint': 'slack' } }); |
Webhook URLは取得されたもので書き換えてください。
一覧に登録されます。テストをして、実際に送信されるか確認をしてみてください。
指定されたチャネルで受信できているはずです。
Zabbixの通知を設定します
Slackに障害通知が送信されるように設定をします。
設定 / アクション で「アクション」を表示します。
イベントソースを”トリガー”にしてトリガー一覧を表示します。
該当のトリガーのステータスを”有効”にします。
管理 / ユーザーで「ユーザー」を表示します。
今回は”Admin”で設定をするんで、Adminをクリックすると「ユーザー」が表示されます。
「メディア」タブをクリックすると、登録されているメディアの一覧が表示されるので”追加”します。
メディアを追加する画面が表示されます。
タイプは、作成したSlackのタイプを選択します。
送信先は、実際には使われないので、なんでもありです。
追加して、更新します。
これで、なんかあったら{ALERT.MESSAGE} マクロの内容が、Slackに通知されます。
おたのしみに(^^)
参考:Zabbix 4.4で追加されたWebhookでSlackに通知する設定メモ