Hai ZabbixマスターになりかけのAdachinです。

今までチャット系ツールはアトラシアンのhipchatを使用していたんですが、
slackに移行するぞ!となったので頑張って連携してみました!

とりあえず、slackはAPIが豊富で、UIもかわいいし、最強チャットツールに任命!
hipchatはよくサポートから落ちてるからゴメンナサイメールが来るのでなんとかしてほしいですね!(´・ω・`)
それ以外はBitbucketとかあるし、どっちでも良さそうですw
とりあえずどうやって連携しているか他のサイト見ても細かく書いていなかったので、
よくわからん人でもこのブログで分かった!となってくれれば幸いでございます。

※追記
zabbix3もzabbix2と基本設定内容は変わりないですが、slackユーザを使ってリモートコマンドを指定しなくてもできます。


■まずはincoming hookを取得

https://my.slack.com/services/new/incoming-webhook

上記のURLをアクセスする前にAlert系のgroupを作ってください。

そしてURLをアクセスしたら使用するgroupを選択し、Your Unique Webhook URLをメモします。

こんなやつ。

https://hooks.slack.com/services/HAHA/WHOHO/HEHEHE

slackでの作業はオシマイです。


■Zabbixサーバにてスクリプトファイルの設置

ZabbixのAlertScriptPathを/etc/zabbix/zabbix_server.confから確認します。

これでOKです。


■Zabbixの設定

・メディアタイプの設定

管理 -> メディアタイプ -> メディアタイプの作成
下記の画像のように登録してください。

z01

・slackユーザ作成

管理 -> ユーザ -> ユーザの作成

名前 Slack
メディア -> 新規メディア >#Alertchannel名
タイプ Slack
グループ Zabbix Administrator

・メディアタイプの設定(zabbix3)

管理>メディアタイプ

・アクションの設定

設定 -> アクション -> アクションの作成

下記のように設定してください。
リカバリメッセージ チェックオン(zabbix3の方を参考に)

・zabbix2

z02

・zabbix3

・アクションの実行条件(zabbix2,3)

z03

トリガーの値に障害と正常を追加します。
アクションの実行内容はターゲットリストをリストを現在のホストに、コマンドは下記のようにします。
テストしたい場合は下記のコマンドを打って確認してください。

・zabbix2(アクションの実行内容)

z004

・zabbix3(アクションの実行内容)

※ユーザに送信でも可能です。

・その他

※PROBLEMを繰り返し通知させたい場合はアクションを2つに分ける必要があります。
problem→0(無限) 、recovery→1(一回のみ)のように設定します。


■slack.shについて

デフォルトのスクリプトだとかなり使いにくいし、見にくいので実行するとこんな感じで出ると思います。

z05

改行もしたいし、色も付けたいし、Downの場合は絵文字で見やすくしたり、自分なりに工夫して作ってみました。
基本webシナリオのものをslackに通知させてます。
で、こんな感じにしました。
よかったら参考にしてください!

・zabbix2

・zabbix3

・zabbix2(slack)

slackres・zabbix3(slack)


■まとめ

時間があったらこのスクリプトをいろいろ改良したいですね。
ロアベ上がったらグラフをslackに通知とかなどなど。。
redmineもslackに通知などなど。。
次回はslackでnagios通知をブログします。

参考:https://github.com/ericoc/zabbix-slack-alertscript

The following two tabs change content below.
あだちん

あだちん

1989年生まれ。 Infra Engineer/SRE In Shibuya 2013年新卒に自宅サーバを構築し、この技術ブログを立ち上げたが、 2017年に電源が壊れConoHaにリプレイスした。 好きな構成管理ツールはansible,Terraform。 インフラならdocker。言語はPython。 WEBならH2o。 HIPHOPが好きすぎてTrack Makerでもある。

コメントを残す