ZABBIXのアラートをSlackに飛ばす

ZABBIXのアラートをSlackに飛ばす設定です。

アラート通知の際に周知や確認などメールよりもSlackの方が気づきやすなどのケースは多いのではないでしょうか。

基本的には以下の手順で行います。

  • Slackの「Incoming Webhooks」を作成してチャンネルに通知するアプリを作る
  • アプリに通知を行うシェルスクリプトを作成する
  • メディアタイプにスクリプトを設定し、トリガーのアクションに追加する

今回設定を入れたZABBIXは4.2です。

 

Slackの「Incoming Webhooks」を作成してチャネルに通知するアプリを作る

Slackの左下の画面の「App」をクリックします。

 

次にアプリ一覧で「Incoming Webhooks」と入力してアプリを探します。

一番上のをインストールします。

アプリの概要が出るので確認して「設定を追加」を行います。

 

投稿するチャンネルの設定を行います。

その後にインテグレーションの追加を行います。

 

Webhookに必要なURLが確認できましたので、「設定を保存する」を行います。

いくつかのチャンネルに登録する場合はわかりやすい名前やアイコンをつけておいた方が良いでしょう。

 

「https://hooks.slack.com/services/XXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXX」というURLが取得できましたので、次以降はこちらを利用します。

 

アプリに通知を行うシェルスクリプトを作成する

「/usr/lib/zabbix/alertscripts/」のフォルダにシェルスクリプトを設置します。

今回はこちらのサイトを参考にさせていただきました。

Webを汚すWeblog

シェルは以下のようになります。

 

ファイル名は「zabbix_to_slack.sh」で保存しています。

実行権限を忘れずにつけてください。

引数でチャンネル、タイトル、メッセージを順番に受け取っています。

タイトルの内容によって、アイコンや色などを変更させています。

元のスクリプトにWARNING用の設定を付け加えました。

アラートの種類を細かく設定している場合は条件訳を細かくすれば対応できます。

 

メディアタイプにスクリプトを設定し、トリガーのアクションに追加する

メディアタイプで以下のように設定します。

名前 zabbix_to_slack
タイプ スクリプト
スクリプト名 zabbix_to_slack.sh
スクリプトパラメータ1 {ALERT.SENDTO}
スクリプトパラメータ2 {ALERT.SUBJECT}
スクリプトパラメータ3 {ALERT.MESSAGE}

設定は以下のようになります。

 

こちらをユーザーの「メディア」などに紐付けます。

 

こちらを「アクション」などに割り当てて障害時の通知をSlackに飛ばすことができます。

運用をある程度実施しているところはだいたい入っている設定かと。