2018.04.06
カド

ZABBIX(2.4.8)の障害通知をSlackにさせてみた

こんにちは
春ですね。
最近一人暮らしを始めましたが、周りの人達のありがたみをひしひしと感じながら生活しています。カドです。

ZABBIX(2.4.8)で起きた障害通知をSlackにさせてみた

早速本題に入ろうと思います。
突然ですが皆さまSlackをご存知でしょうか?(ご存知でない方はGoogle先生に聞いていただけたらと。。。)

D563A89B-01EE-41A2-9AB0-3667A4A88119

最近、うちの会社で実用を始めたSlackですが、こいつがとても有能で、様々な機能を実装しているんです。

有能なSlack。きっと、仕事に色々活用できるはず。
そうだ、障害を通知させよう!
はい、そんなわけで今回はZABBIXで検知した障害をSlackに通知させてみます。

Slackにアプリを導入

まずはSlackに「Incoming Webhooks」というアプリを導入します。
「Incoming Webhooks」とは、Slackにある様々なAPIや外部サービスとの連携機構の中の1つで「外部サービスからSlackにメッセージを送信する」ための機能です。
Incoming Webhooks」をクリックすると下のようなページへ飛びます

↑ここで、チャンネルを指定すると

指定したチャンネルに通知させる時に使用するURLが作成されます。
この時のURLをどこかに控えておきます。

ZABBIXサーバーにSlackのスクリプトを設置&変更

ZABBIXが設置されているサーバーにログインし、下記のコマンドを実行していきます。

# grep AlertScriptsPath /etc/zabbix/zabbix_server.conf

↑でAlertScriptsPathの場所を確認
※「grep」で/etc/zabbix/zabbix_server.confのファイルから「AlertScriptsPath」とつくものを検索

### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

↑実行結果
※「AlertScriptsPath」は「/usr/lib/zabbix/alertscripts」のファイルの中にいる

# cd /usr/lib/zabbix/alertscripts

↑「/usr/lib/zabbix/alertscripts」に移動

# wget https://raw.githubusercontent.com/bageljp/zabbix-slack/master/slack.sh
# chmod a+x slack.sh

↑Slackのスクリプトを設置して実行権限をつけてあげる
※「wget」でURLを指定してファイルをダウンロード
※「chmod」で「slack.sh」に実行権限をつける

# vim /usr/lib/zabbix/alertscripts/slack.sh

↑スクリプトの設定を変更していきます。
※「vim」で「slack.sh」ファイルの中身を書き換え

  • 「url=」にIncoming Webhooksで控えたURLを記入する
  • 「username=」に通知されるときの表示名を変えられる
  • その他、通知する時のアイコンを絵文字で指定できたり、色々できます。。



これでSlackのスクリプト設定完了です!

参照元:https://github.com/ericoc/zabbix-slack-alertscript 
    https://qiita.com/wapa5pow/items/2327561493015a833c97 

ZABBIXの設定

管理→メディアタイプにSlackのスクリプトを設定します。

  1. 「メディアタイプの作成」→クリック
  2. 「名前」→適当にSlackとかつける
  3. 「タイプ」→スクリプト
  4. 追加!



管理→ユーザーの作成で通知したいユーザーのメディアにSlackを追加します。

  1. 「ユーザーの設定」→クリック
  2. 「メディアを追加」→新規メディアを設定
  3. 「タイプ」→Slackにする
  4. 「送信先」→適当にチャンネル名を記入
  5. 追加!




管理→ユーザーグループの設定でユーザーグループを作成します。

  1. 「ユーザーグループの作成」→クリック
  2. 「グループ名」→適当にSlackとか記入
  3. 「ユーザー」→Slackのメディアを追加したユーザーを選択
  4. 追加!




設定→アクションで通知の設定をします。

  1. 「アクションの作成」→クリック
  2. 「名前」→適当にSlack通知とか記入
  3. 「件名、メッセージ」→お好みの設定で
  4. 「アクションの実行条件」→クリック→内容はお好みの設定で
  5. 「アクションの実行内容」→クリック
  6. 「ユーザーグループに送信」→Slackに通知を設定したユーザーを追加
  7. 「ユーザーに送信」→Slackに通知を設定したユーザーを追加
  8. 「次のメディアのみ使用」→Slackに設定
  9. 追加!




これで設定は以上です!


実際に通知させてみたものがこちら↓

Slackの機能を活用して、引用にしてみたり、太字にしてみたり、スタンプを取り入れたり‥
他にも引用の色を変えたりできるらしいので、取り入れたいと思います。

実際に実装した場合のメリット

今後、実際の障害をSlackに通知させた場合のメリットとしては

  • 離れたところでもアラートを検知しやすい
  • 障害の通知に対してリアクションをすることで対応したかどうかが判断しやすい
  • ZABBIXが複数ある場合はZABBIXごとにチャンネルを切り分けられる
  • 重要なアラートとそうでもないアラートをチャンネルごとに切り分けられる

などなど
他にもたくさんのメリットがあると思いますがこの辺で。


このブログがどこかの誰かのためになることを願ってます
それでは!

カド

一覧に戻る