15
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Zabbix 5.0でslack通知を設定する

Last updated at Posted at 2020-06-12

zabbix5.0でslackに通知を投げるのにはまったのでメモを残す。

https://www.zabbix.com/jp/integrations/slack
基本的には上記の通りに行えばいいが、いくつかはまりどころがある。

https://www.youtube.com/watch?v=3-ONmc43vMw
こちらの動画の通りにパラメータ設定すれば、うまくいく。

目的

  • zabix 5.0のデフォルトメディアタイプ設定を利用してslackに通知を投げる。

slackの設定

4.4ではIncoming webhookを使っていたが、5.0ではbotsを利用するように変更された。

zabbix用Appを作成する

Your AppsからCreate New Appで新Appを作成する
App Nameはわかりやすい名前を、workspaceは投稿するworkspaceを設定する

Basic InformationのAdd features and functionalityでBotsを選択する。

「First, assign a scope to your bot token」と言われるので、セクション最後(又は左メニュー)のOAuth & Permissionsリンクを選択する。

ScopesセクションのAdd an OAuth Scopeでchat: writeを追加する。
(用途によってはchat: write.customizechat: write.publicも追加する)
公式ドキュメントでは、作成後にslack側がOAuthの権限仕様を変更したらしく、この記述がない。

OAuth Tokens & Redirect URLsセクションでInstall App to Workspaceを選択する。

Bot User OAuth Access Tokenをコピーしておく

チャンネルの設定

slack上で新規チャンネルを作成する。
チャンネル名がascii以外だと投稿できないので日本語名などつけないこと。
チャンネルのユーザーに作成済のbotを追加する。
chat: write.publicがScopeにあればユーザー追加は不要。

Zabbix側の設定

マクロ設定

管理 -> 一般設定 -> マクロから{$ZABBIX.URL}を設定する。
これは、slack投稿された際に該当トリガーを開くためのリンクに使われる。
なので、zabbixのwebインターフェースURLのトップを設定する。
(テスト中でリンクがまともに動かなくてもいいならhttp://127.0.0.1/とでもしておけばいい)

メディアタイプ設定

管理 -> メディアタイプ からSlackを選択する。
デフォルト設定を残しておきたければ、複製を選択して別の名前を付ける。
bot_tokenに先ほどクリップボードにコピーしたBot User OAuth Access Tokenを設定する。(xorb-で始まる文字列)
host_ip{HOST.IP}になっているが、後ろに何か文字を追加する。
{HOST.IP} .など
zabbix server自体のトリガーなどではHOST.IPが空の通知が来ることがあるのに、デフォルトのスクリプトではそれをイリーガルとしてはじいているため、これを設定する。

メッセージテンプレートタブに移って、テンプレートを追加する。
障害、障害復旧、障害更新あたりを最低追加しておく。
全部追加しても問題はない。(たった七種)

それ以外はデフォルト設定のまま追加(更新)を選択する。

メディアテスト

管理 -> メディアタイプ から作成したslackメディアの右端にあるテストを選択するして、テストダイアログを開く。
channelに先ほど作成したチャンネル名(#で始まる文字列)を設定する。
zabbix_urlに先ほど{$ZABBIX.URL}に設定したURLを設定する。
あとは、テストボタンを押す -> エラーメッセージに従って項目を修正する、を繰り返す。
だいたい数字を入れろというエラーなので、1を設定してまわればいい。
具体的な項目としてはevent_idevent_nseverityevent_update_statusevent_valuetrigger_id
ここで0か1を設定しろというものに対して0を設定すると投稿できなかったりするので、各パラメータの意味をスクリプト読んでしっかり把握したい人以外は全部1を設定しておくのが無難。
テスト投稿が成功したら次へ進む

ユーザーに割り当て

管理 -> ユーザーで適切なユーザーにslackメディアを追加する。

ユーザーを開いたらメディアタブ -> 追加
タイプを先ほど設定したslackのメディアタイプを設定する。
送信先に先ほどテストでchannelに設定したチャンネル名を設定する。
あとはデフォルト設定のまま追加を選択、ユーザーを更新or追加で設定する。

参考

https://www.youtube.com/watch?v=3-ONmc43vMw
https://www.zabbix.com/jp/integrations/slack

15
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?