Zabbix Slack通知設定を初心者向けに完全解説
Zabbixで監視を始めると、次に困るのが「障害通知をどう受け取るか」です。
メール通知でも運用はできますが、実務ではSlack連携を使う現場も増えています。
理由はシンプルです。
- 通知に気付きやすい
- チーム全員で共有できる
- 障害対応の履歴が残る
- スマホでも確認しやすい
ただし、初心者が実際に設定すると、以下で止まりやすいです。
- Webhookが分からない
- Slack側設定で迷う
- Zabbixのアクション設定が難しい
- テスト通知が届かない
- 通知が多すぎて運用崩壊する
この記事では、ZabbixとSlackを連携する方法を、実務での注意点も含めて丁寧に解説します。
単なる手順紹介ではなく、
「なぜその設定が必要なのか」
「実務でどこが問題になるのか」
まで理解できる内容にしています。
ZabbixとSlackを連携するメリット
メール通知より気付きやすい
結論から言うと、Slack通知は「気付かれやすい」です。
監視運用では、障害を早く検知して対応することが重要です。
しかし実務では、メール通知だけだと以下が起きやすくなります。
- メール埋もれ
- 気付くのが遅れる
- 個人依存になる
Slackなら、チームチャネルへ通知できます。
そのため、担当者が離席していても他メンバーが気付きやすくなります。
障害対応をチーム共有しやすい
Slackは会話履歴が残ります。
そのため、
- 「誰が対応したか」
- 「いつ復旧したか」
- 「何が原因だったか」
を追いやすくなります。
監視運用では、障害そのものより「対応履歴管理」が重要になる場面も多いです。
運用ログを残しやすい
実務では、あとから障害を振り返るケースがあります。
例えば、
- 月次障害レビュー
- インシデント分析
- 再発防止検討
などです。
Slack通知を残しておくと、障害発生時系列を確認しやすくなります。
Zabbix Slack連携の全体構成
まずは全体像を理解しましょう。
構成はシンプルです。
Zabbix
↓
Webhook
↓
Slackチャンネル
Slack Incoming Webhookとは
Webhookは「別サービスへ自動通知する仕組み」です。
今回は、ZabbixがSlackへHTTP通信を行います。
その受け口になるのがSlackのIncoming Webhookです。
ZabbixからSlackへ通知する流れ
通知の流れは以下です。
- Zabbixで障害発生
- トリガーが発火
- アクション実行
- SlackへWebhook送信
- Slackチャンネルへ通知
ここで重要なのは、「アクション設定」です。
初心者はWebhook設定だけで終わったと思いがちですが、アクション設定を忘れると通知されません。
Slack側でWebhookを設定する
Slackアプリを作成する
まずSlack APIページへアクセスします。
その後、以下を行います。
- Create App
- From scratch
- アプリ名入力
- Workspace選択
ここで作成するのは「Zabbix通知専用アプリ」です。
実務では、用途ごとに分けることが多いです。
理由は管理しやすいためです。
Incoming Webhookを有効化する
アプリ作成後、Incoming WebhooksをONにします。
その後、
「Add New Webhook to Workspace」
を選択します。
通知先チャンネルを指定してください。
例えば、
- #monitoring
- #alert
- #infra障害通知
などがよく使われます。
Webhook URLを取得する
生成されたWebhook URLをコピーします。
例:
https://hooks.slack.com/services/XXXX/XXXX/XXXX
このURLが非常に重要です。
漏洩すると第三者が勝手に通知できます。
そのため実務では、
- Gitへ貼らない
- 公開Wikiへ書かない
- チケットへ直接貼らない
などを徹底します。
Zabbix側でSlack通知設定を行う
メディアタイプを設定する
Zabbixでは「メディアタイプ」で通知方法を定義します。
設定画面:
管理
→ メディアタイプ
Zabbix 6系以降では、Slack用テンプレートが標準搭載されていることがあります。
利用できる場合はそれを使うと簡単です。
Slack Webhook URLを登録する
SlackメディアタイプへWebhook URLを設定します。
ここで初心者がよくハマります。
よくある失敗
- URL前後に空白が入る
- Webhook URLが途中で切れる
- HTTPSでなくHTTPにしている
特にコピペ時の空白はかなり多いです。
設定したのに通知がこないんだけど…?
まずWebhook URLを確認しよう。空白や改行が混ざると失敗することがあるよ。
通知メッセージを調整する
実務では、通知内容が非常に重要です。
最低限、以下は入れましょう。
- ホスト名
- 障害内容
- 発生時刻
- 障害レベル
- 復旧状況
悪い例:
Problem detected
これでは何が起きたか分かりません。
良い例:
[HIGH]
WebサーバCPU使用率90%超過
host:web01
time:2026-05-20 21:00
Zabbixのアクション設定を行う
アクション設定とは
アクション設定は、
「どの障害で通知するか」
を決める仕組みです。
ここを適当に作ると、通知地獄になります。
Slack通知用アクションを作成する
設定例:
条件:
・障害レベル High以上
・監視対象グループ Linux Servers
実行:
・Slack通知
初心者は「全部通知」にしがちです。
しかし実務では危険です。
通知条件を適切に絞る
通知が多すぎると、誰も見なくなります。
これは監視運用で本当によくある問題です。
特に危険なのは以下です。
- 一時的CPU高騰
- 短時間ネットワーク断
- 一瞬だけ上がるロードアベレージ
誤検知が多いと、運用負荷が急激に増えます。
そのため、
- 継続時間条件
- 障害レベル
- 対象サーバ
を調整することが重要です。
通知が1日100件以上来ちゃうんだけど…
まずは「本当に対応が必要な障害」だけ通知しよう。監視は増やすより減らす方が難しいんだ。
Slack通知のテストを行う
テスト通知の確認方法
設定後は必ずテストします。
確認ポイント:
- Slackへ通知されるか
- メッセージ崩れがないか
- 日本語文字化けがないか
- 復旧通知が来るか
障害通知だけ確認して終わる初心者は多いです。
しかし実務では「復旧通知」も重要です。
復旧通知がないと、
「まだ障害中なのか?」
「もう直ったのか?」
が分からなくなります。
通知が届かない時の確認ポイント
まず以下を確認してください。
Zabbixサーバ → Slackへの通信
特に社内環境ではProxy制限があります。
実務ではここがかなり多いです。
確認項目:
- Firewall
- Proxy
- DNS解決
- HTTPS通信許可
Linuxサーバならcurlで確認できます。
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"test"}' \
https://hooks.slack.com/services/XXXX/XXXX/XXXX
実務でよくある失敗と注意点
通知が多すぎて誰も見なくなる
これは監視運用の典型的失敗です。
通知数が増えるほど、重要障害が埋もれます。
結果として、
「また通知か」
という状態になります。
監視は「全部通知」ではなく、
「本当に見るべき通知だけ出す」
ことが重要です。
復旧通知を入れ忘れる
意外と多いです。
障害通知だけだと、復旧確認を手動で行う必要があります。
その分運用負荷が増える原因になります。
障害レベルを整理しない
実務ではレベル分けが重要です。
例:
- Information
- Warning
- Average
- High
- Disaster
全て同じ扱いにすると、重要障害が埋もれます。
Zabbix運用負荷を減らすSlack連携の考え方
本当に必要な通知だけ送る
監視は「通知数を減らす設計」が重要です。
特に初心者は、
「監視項目を増やす=良い運用」
と思いがちです。
しかし実際は逆です。
不要通知が増えるほど、障害対応品質は下がります。
深夜通知の扱いを決める
24時間運用でない場合、深夜通知ルールが必要です。
例えば:
- Disasterのみ通知
- オンコール担当だけ通知
- 翌朝確認にする
などです。
障害レベルごとに通知先を分ける
実務では以下のように分けることがあります。
| レベル | 通知先 |
|---|---|
| Warning | 監視チーム |
| High | インフラ担当 |
| Disaster | 全体通知 |
こうすることで、不要通知を減らせます。
まとめ
ZabbixとSlackを連携すると、障害通知を素早く共有できるようになります。
ただし、単純に通知を増やすだけでは運用は改善しません。
重要なのは、
- 本当に必要な通知だけ送る
- 誤検知を減らす
- 復旧通知まで設計する
- 障害レベルを整理する
ことです。
特に初心者は、
「通知が来れば安心」
と思いやすいですが、実務では「通知疲れ」が大きな問題になります。
まずは小さく始めて、必要に応じて調整していくのがおすすめです。









