概要
Zabbix の標準通知機能だけでは、リアルタイムな監視対応が難しい。
Slack の Webhook を利用すれば、障害発生や復旧通知を即座に受け取ることができる。
本記事は Zabbix 7.4 + Slack Webhook 環境での通知連携を完全に構築するための実務ガイドである。
以下の手順どおりに設定すれば、運用環境でもそのまま使用可能だ。
1. 事前チェック
1.1 アウトバウンド通信の許可
Zabbix サーバーから hooks.slack.com:443 への通信が許可されている必要がある。
ファイアウォールやプロキシ環境では、このドメインとポートを例外として許可する。
1.2 Slack チャンネルと Webhook の作成
Slack で監視専用チャンネルを新規作成する。
チャンネル設定 → 「Add App」→「Incoming Webhooks」を選択 → Webhook URL を発行。
1.3 Webhook の有効性テスト
Zabbix サーバーで以下のコマンドを実行し、Webhook が正常に動作するか確認する。
以下のコマンドの webhook url 部分を、Slack で発行された Webhook アドレスに置き換えて実行する。
curl -X POST \
-H 'Content-type: application/json' \
--data '{"text":"Zabbix → Slack 接続テスト"}' \
'webhook url'
Slack チャンネルにメッセージが届けば、Webhook は正常に動作している。
2. Zabbix URL のグローバルマクロ追加
Zabbix Web UI → 管理 → マクロ → 新規マクロ追加
| マクロ | 値 |
|---|---|
| {$ZABBIX.URL} | https://<貴社のZabbixドメイン> 例: http://zbx.example.com/zabbix |
3. Slack メディアタイプ設定

3.1 Webhook URL パラメータの追加
Zabbix Web UI → アラート → メディアタイプ → Slack を選択して有効化し、クリックする。webhook_url パラメータを追加する。
3.2 不要なパラメータの削除
以下の項目だけを残し、他はすべて削除する。
| 名前 | 値 |
|---|---|
| alert_message | {ALERT.MESSAGE} |
| alert_subject | {ALERT.SUBJECT} |
| webhook_url | (Slack Webhook URL) |
| zabbix_url | {$ZABBIX.URL} |
3.3 スクリプトの置き換え
以下のスクリプトを貼り付けて保存する。
// Slack Webhook sender (minimal)
try {
var p = JSON.parse(value);
var payload = {
"text": "*" + (p.alert_subject || "Zabbix") + "*\n" + (p.alert_message || "")
};
var req = new HttpRequest();
req.addHeader('Content-Type', 'application/json');
var resp = req.post(p.webhook_url, JSON.stringify(payload));
if (req.getStatus() != 200) {
throw 'Slack webhook response: ' + req.getStatus() + ' ' + resp;
}
return 'Message sent successfully to Slack.';
} catch (e) {
throw 'Failed to send Slack message: ' + e;
}
4. ユーザーへの Slack メディア割り当て

Zabbix Web UI → ユーザー → Admin → 連絡方法
「連絡方法の追加」をクリックし、以下のように設定する。
| 項目 | 値 |
|---|---|
| 種類 | Slack |
| 宛先 | ダミー値(例:slack) |
| デフォルト | 有効 |
| 深刻度 | 「警告以上」を推奨 |
設定後、「追加」→「更新」。
5. アクション(Action) の作成
5.1 トリガーアクションの編集
パス: アラート → アクション → トリガーアクション → Report problems to Zabbix administrators
5.2 条件の追加
| 種類 | オペレーター | 値 |
|---|---|---|
| トリガーの深刻度 | 以上 | 警告 |
有効化をチェックし、追加。
5.3 オペレーション設定

オペレーションステップ1 → 編集
| 項目 | 値 |
|---|---|
| ユーザーグループ | Zabbix administrators |
| 送信先メディアタイプ | Slack |
| カスタムメッセージ | 有効 |
件名・メッセージ内容(障害通知)
障害通知
- 障害発生 : {EVENT.NAME}
--------------------------------------
発生時刻 : {EVENT.DATE} {EVENT.TIME}
深刻度 : {EVENT.SEVERITY}
ホスト : {HOST.NAME1}
アイテム : {ITEM.NAME1}
現在値 : {ITEM.LASTVALUE1}
イベントID : {EVENT.ID}
リンク : {$ZABBIX.URL}/tr_events.php?eventid={EVENT.ID}
5.4 復旧通知の追加

| 項目 | 値 |
|---|---|
| ユーザーグループ | Zabbix administrators |
| 送信先メディアタイプ | Slack |
| カスタムメッセージ | 有効 |
件名・メッセージ内容(復旧通知)
復旧通知
- 解決 : {EVENT.NAME}
--------------------------------------
解決時刻 : {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
深刻度 : {EVENT.SEVERITY}
ホスト : {HOST.NAME1}
イベントID : {EVENT.ID}
リンク : {$ZABBIX.URL}/tr_events.php?eventid={EVENT.ID}
6. 設定の保存と動作確認
すべてのアクション設定を完了したら「更新」をクリック。
テストトリガーを発生させ、Slack チャンネルに通知が届くことを確認する。
✅ 最終チェックリスト
| 項目 | 確認 |
|---|---|
| サーバーのアウトバウンド通信許可 (hooks.slack.com:443) | ✅ |
| Slack Webhook テスト成功 | ✅ |
| {$ZABBIX.URL} マクロ追加 | ✅ |
| Slack メディアタイプ有効化 & スクリプト置換 | ✅ |
| ユーザーへの Slack メディア登録 | ✅ |
| アクション(障害/復旧)動作確認 | ✅ |
結論
この手順を完了すれば、Zabbix のイベント発生時に Slack チャンネルへ自動通知が送信される。
外部モジュールを追加する必要はなく、Webhook と Zabbix 標準機能だけで安全かつ確実に運用可能 だ。
🛠 마지막 수정일: 2025.11.11
💡 お困りですか?
Zabbix、Kubernetes、各種オープンソースインフラの構築・運用・最適化・障害解析が必要であれば、いつでもご連絡ください。
📧 メール: jikimy75@gmail.com
💼 サービス: 導入支援 | 性能チューニング | 障害解析コンサルティング
답글 남기기
댓글을 달기 위해서는 로그인해야합니다.