amegonの雑なブログ

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

Zabbix で発生したトリガー情報を Slack に通知する

目次

  • やりたいこと
  • 参考にした設定
  • 設定追加、変更したところ
    • Zabbixの設定
    • Slackの設定
  • 通知テスト
  • できあがり

今回やりたいこと

Zabbixを使用して監視した結果をSlackに通知したい。
そうすれば外でも何があったか把握できる。
メールでもいいかなとも思ったが、せっかくだから Slack を使ってみる、といった感じ。

参考にした情報

https://qiita.com/Higemal/items/f0bc18bf66e54628b22a
↑ とても参考になりました。ありがとうございました ペコリ

設定追加、変更したところ

私の環境では、参考にさせていただいた手順だけでは期待した動作ができず、少し調べて設定を追加、変更しました。

Zabbixの設定

メディアタイプでテストを実行したところエラー発生。
エラーの内容は SyntaxError: unterminated statement (line 116) と表示されている。

ググってみたところ、このエラー自体は既知のものらしく、以下の手順で修正できた。

  • Zabbix の 管理 → メディアタイプ で Slack を選択
  • 画面下方の スクリプト のボックスを選択
  • Java Script の編集画面になるので、以下修正 ※ 計2か所
    • 修正前文字:Can't
    • 修正後文字:Can\'t
    • ZabbixのメディアタイプでJS編集画面
  • 適用 を押して Java Script の編集終了
  • 更新 を押して メディアタイプ Slack の編集終了

これでいけると思いテストを再実行。
今度は違うエラーが表示された。
次項へ続く。

Slackの設定

次に表示されたエラーは "missing_scope"。
調べたところ Slack 側で作成した App に権限が不足しているとのこと。
以下の手順で設定変更実施。

  • https://api.slack.com/apps にアクセス
  • 先だって作成したアプリを選択
  • 画面左の Features → OAuth & Permissions を選択
  • Scopes 内で以下の設定がなければ追加する (※ これがあればできた、という程度で精査はしていません。。。)
    • channels:read
    • chat:write
    • files:read
    • files:write
  • Scopes 内の設定を変更すると、ブラウザの画面上部に You’ve changed the permission scopes your app uses. Please reinstall your app for these changes to take effect (and if your app is listed in the Slack App Directory, you’ll need to resubmit it as well). と表示される。
    • reinstall your app がリンクになっているので選択する
  • 設定完了

これでいけると思いテストを再実行する。

通知テスト

メディアタイプ → Slack でテスト実行。
今度は成功。Slackにもテスト情が通知された。

できあがり

Zabbix から Slack に通知を上げることができた。
これで監視データから通知ができる仕組みが準備できたので、必要 or 有用な通知を上げるようにしてみる。