LoginSignup
0
1

More than 1 year has passed since last update.

ZabbixのアラートをSlackで飛ばす。

Posted at

概要

zabbixで取得したアラートを、Slack経由で飛ばすようにしたい。 SlackのWebhook機能を使って実現しよう。 基本的には、参考サイトの情報をそのまま追記していく形になる。 Slackのメディアタイプが存在しない場合、以下のリポジトリからファイルをDLしてきて、 Zabbix管理画面のメディアタイプからインポートする必要がある。
https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/slack?at=release/6.0

必要な環境

  • Zabbix 5.x環境
  • 通知するSlackワークスペース
  • 通知するSlackチャンネル
  • Slackユーザーアカウント

今回は、CentOs8のLinux上に、ZabbixServer5.0をのせています。

設定手順

slackappの作成
Slackチャンネルで通知をおこなうSlackアプリを作成します
以下のリンクからアクセスして、Create an appを押す。
https://api.slack.com/

スクリーンショット 2022-11-03 14.16.08.png

すると「Create an app」ポップアップが表示されるので「From scratch」を選択し、手動で設定を入力してアプリを作成します。

スクリーンショット 2022-11-03 14.19.48.png

「Name app & choose workspace」ポップアップが表示されるので、
以下の流れで設定を行います。
1.「Sign into a different workspace」を選択してSlackユーザーアカウントにログインします
2. 「App Name」にSlackアプリ名を記載します
3. 「Pick a workspace to develop your app in:」で対象のSlackワークスペースを選択します
4. 「Create App」を押下します
スクリーンショット 2022-11-03 14.21.36.png

App Nameに記載したSlackアプリ名でSlackチャンネルに通知を行います。
アプリ名は後から変更ができます。
「Create App」ボタンを押下した後に、サイドバーから【OAuth & Permissions】を選択します。 OAuth & Permissionsの設定で、追加するSlackアプリの権限設定を行います

スクリーンショット 2022-11-03 14.22.41.png

下にスクロールして「Add an OAuth Scope」ボタンを押下
スクリーンショット 2022-11-03 14.24.13.png

プルダウンメニューから「chat:write」を選択します。「chat:write」を選択することでSlackアプリにSlackチャンネルへの書き込み権限 を付与しています。

「Bot Token Scopes」「chat:write」が追加されていることを確認

スクリーンショット 2022-11-03 14.25.00.png

スクリーンショット 2022-11-03 14.28.52.png

上にスクロールして「Install to Workspace」を押下し、SlackアプリをSlackワークスペースにインストールします。

その後、許可するを押下します

許可をすると、「Bot User OAuth Token」が表示されていることを確認します。「Bot User OAuth Token」は後でZabbix側の設定をす る時に必要になります。忘れないように「Copy」ボタンを押してメモします。

これでSlackAPIの設定は完了。

slackでの設定

通知に用いるSlackチャンネルを開く。ここでは、sample_zabbix_alertというチャンネルを新たに作成した。 右上の所を選択して、
インテグレーションタブ⇒アプリを追加するを選択。

先ほど作成したSlackAPPの名前を検索し、追加する。
スクリーンショット 2022-11-03 14.36.39.png

成功したら、チャンネルの方に、Slackチャンネル名に追加されました。と表示される。

Zabbixでの設定

Zabbixでは

  • メディアタイプの設定、
  • ユーザーの設定、
  • トリガーアクション
    の設定を実施していく。

Zabbixフロントエンドに、Zabbix特権管理者相当の権限を持つユーザーでログインする。
メインメニューから【管理】→【メディアタイプ】を押下してメディアタイプの一覧から「Slack」を押下。
スクリーンショット 2022-11-03 14.38.26.png

  • bot_tokenにSlack API設定で取得した「Bot User OAuth Token」の値
    • zabbix_urlに{$ZABBIX_URL}がある。
      これは、グローバルマクロでの設定をお勧めする。後程解説する。

そして、更新を押す。

グローバルマクロの設定

  1. メインメニューから【管理】→【一般設定】の順で押下する。
  2. 左上のプルダウンメニューから「マクロ」を選択する。
  3. マクロに {$ZABBIX_URL}、値に「http://IPアドレス」または「https://IPアドレス」を記載する。 https~ の記載がないと、アラート送信時に失敗する。

そして、更新ボタンを押す。
スクリーンショット 2022-11-03 14.40.38.png

テストの実行

設定が正しいか確認するために、管理⇒メディアタイプの右側にあるSlackの「テスト」を押下する。

テストを行うために必要なパラメーターに値を入力する。 必要なのは、以下のパラメータ。

必要なパラメーターに値を入力したら「テスト」ボタンを押下する。 テストに成功した場合、「メディアタイプ"Slack"のテスト」ポップアップに「メディアタイプのテストに成功しました。」と表示され
る。 また、Slack側でも、送信されたのが確認できる。
スクリーンショット 2022-11-03 14.42.40.png

userの作成

アラート通知を行うユーザーを作成する。
メインメニューから【管理】→【ユーザー】の順で押下する。
今回は「zabbix_alerts」ユーザーを使用します。 Slack通知用のユーザーを作成していない場合は「ユーザーの作成」を押下して作成を押す。 (元からあるユーザーを使用する場合はスキップする。)

所属するユーザーグループは、監視対象ホストの表示権限が必要。
表示権限が付与されていない場合はアラート通知を行えない。

  1. メディアタブに移動して追加を選択。
  2. 「メディア」のポップアップが表示されるので「タイプ」のプルダウンメニューからSlackを選択した後に「送信先」にSlackのチャンネル名を記載する。
  3. 設定後に「追加」を押下します。この時、送信先の先頭についている#は無くても動作はしてくれる。

この時に指定する、深刻度と、 有効な時間帯は、ケースによって適宜変更する事をお勧めする。

トリガーアクションの設定

アラートを発報する条件や送信するメッセージを設定する。 アクションの左上のプルダウンからトリガーアクションを指定し、 メインメニューから【設定】→【アクション】の順で押下して「アクションの作成」を押下する。

実行条件を設定して「実行内容」タブを選択します。今回は実行条件を「Zabbix serverホスト」でイベント発生時に設定している。
スクリーンショット 2022-11-03 14.45.48.png

  • 「実行内容」と「復旧時の実行内容」
  • 「更新時の実行内容」を設定します。
    今回は「実行内容」と「復旧時の実行内容」にメディアタイプ「Slack」とユーザー「zabbix_alerts」の設定を行う。
    スクリーンショット 2022-11-03 14.46.35.png

この時、メッセージを変更する場合は、画面下にあるメッセージのカスタマイズにチェックを入れて、 メッセージを編集する。
これにて設定は完了です。

発報テスト

Zabbixエージェントを停止させたり、検証用のマシンのケーブルを抜いたりしてみて、 アラートが来るか確認してみる。以下のような画面の出力が出てくるハズである。
スクリーンショット 2022-11-03 14.47.40.png

参考サイト

0
1
0

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
0
1