ZABBIXのアラートをSlackに飛ばす - 株式会社CoLabMix

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に飛ばすことができます。

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

 

このブログは株式会社CoLabMixによる技術ブログです。

GCP、AWSなどでのインフラ構築・運用や、クローリング・分析・検索などを主体とした開発を行なっています。

Ruby on RailsやDjango、Pythonなどの開発依頼などお気軽にお声がけください。

開発パートナーを増やしたいという企業と積極的に繋がっていきたいです。

お問い合わせやご依頼・ご相談など

    関連記事

    1. CentOS7のPython3でMeCabのmecab-ipadic-…

    2. AkismetのスパムフィルタをpythonとDjangoで実装

    3. terraform構築手順〜API Gateway 編〜

    4. autditbeatをcentos7にインストールして監査ログをとって…

    5. SublimeText3でリモートのサーバ上にあるファイルを開いたり編…

    6. 【Django】入力フォームの増減機能からDBに保存する方法