amegonの雑なブログ

日常的なものから技術的なものまでメモの雑記

Zabbix から Slack への通知

はじめに

以前 Zabbix から Slack へアラート通知する設定をしてから時間がたっていたことで、Slack の api ページが若干表示が変更になっていたことと、前回の設定のメモがあまりにもいまいちだったので再設定を兼ねて設定方法をメモしました。

大きな流れ

  • Slack の api 機能で bot を作成
  • Slack ワークスペースで通知先チャンネルの設定
  • Zabbix のメディアタイプ設定
    • この時 slack で作成した bot の情報をパラメータとして設定
  • Zabbix のアクション設定で上記のメディアタイプを指定

Slack apibot の作成

以下の URL にアクセス

https://api.slack.com/

表示された画面で Your apps を選択

表示された画面で Create New App ボタンを選択

表示された画面で From Scratch を選択

表示された画面で以下の情報を入力・選択して Create App ボタンを押す

  • App Name
    • App の名前。任意でOK。
  • Pick a workspace to develop your app in:
    • App を使用する workspace を選択する。

以下の画面に遷移したら OAuth & Permission を選択

遷移した画面で中断まで画面をスクロールし、Scopes 内の Add an OAuth Scope ボタンを押す

表示された選択肢から chat:write を選択

chat:write が追加されたことを確認する

画面を上部にスクロールし、OAuth Tokens for Your Workspace 内の Install to Workspace ボタンを押す

アクセス許可の画面が表示されるので 許可する を選択

画面が戻ってくると OAuth Tokens for Your Workspace 内の Bot User OAuth Token に Token が表示されているのでメモっておく

Slack ワークスペースで通知先チャンネルの設定

Slack ワークスペースの App に、先ほど作成した botSlack Notification from Zabbix が表示されていることを確認

次に Zabbix からの通知を受け取りチャンネルを作成する
ここでは #zabbix_alert として作成

チャンネルを選択して右クリック → チャンネル詳細を表示する を選択する

表示された画面で インテグレーション を選択し App 内の アプリを追加する を選択する

表示された画面で、前項で作成した bot Slack Notification from Zabbix追加 ボタンを押す

Zabbix のメディアタイプ設定

Zabbix にログインして 管理 → メディアタイプを選択し、その中の Slack を選択

オリジナルの設定は残しておきたいので、画面最下部に移動して 複製 を選択

複製したメディアタイプで以下の項目の設定を更新して保存する

項目 設定内容 設定例
名前 任意 Slack_Zabbix_Alert
bot_token Slack api で生成された Bot User OAuth Token -
zabbix_url 自身の Zabbix サーバーの URL http://192.168.1.1/zabbix

次にテスト実行してみる。
この際以下を変更して テスト ボタンを押す。

  • channel:zabbix_alert
  • event_id:1
  • event_nseverity:0
  • event_source:0

Slack 側で受信できたことを確認

Zabbix のアクション設定で上記のメディアタイプを指定

管理 → ユーザー で通知を実施するユーザーを選択

メディア を選択して以下のように設定

設定 → アクション で Slack に通知したいアクション設定に対して、先ほど作成したユーザーのメディアを選択して設定する