こんにちは。SCSK株式会社の上田です。
毎年恒例、TechHarmonyのアドベントカレンダー企画が始まりました!🎉🎉🎉
12/25までの期間、毎日ブログをお届けしますので、お楽しみください。
今年はアドベントカレンダーでは、前半の約3分の1日程でZabbix枠を頂きました!
12/1~8の8日間、毎日Zabbix関連記事を投稿いたしますので、Zabbixに興味のある方・使用している方は是非ご覧ください!
さて、初日である今回は、Zabbixの障害通知をTeamsに飛ばす方法を紹介します。
Zabbixでは、発生した障害を様々なツールに通知することができます。
しかし、通知先としてメールだけを使っている人が多い印象です。
そこで、今回は、Microsoft Teamsへの障害通知を簡単に設定する方法を紹介します!
はじめに
本記事の環境は以下です。
- Zabbix:Zabbix 7.0 LTS
- Teams:バージョン25290.205.4069.4894
Teamsはデスクトップ版を使っています。ブラウザ版でもそこまで画面は変わらないと思います。
ただ、TeamsのUIはよく変わるので、記事内のスクショと画面が異なる可能性がありますのでご了承ください。(その場合はそれっぽい設定項目を探してください。。。)
通知を設定する
細かいカスタマイズは後にして、なにはともあれ「とりあえずZabbixからTeamsに通知を送る」ということをやってみます。
Teams側での設定と、Zabbix側での設定に分けて説明します。
Teams側の設定
Teamsでは、通知を送りたいチャネルに対してWebhookの設定をします。TeamsのUIはよく変わるので正確な手順はその時のバージョンに依存しますが、だいたい以下のような手順で設定できると思います。
①対象チャネルの右の「…」マークをクリックし、メニューから「チャネルの管理」をクリック
②上部タブ「設定」をクリックし、「コネクタ」の編集をクリック
③”Webhook”と検索し、出てくる「Incoming Webhook」をクリック
④Webhookの表示名(今回は”ZabbixTestとしました”)を入力し、ページ下部の「Create」をクリック
⑤WebhookのURLが出てくるので、コピーして控えておき、「Done」をクリック
以上でTeams側の設定は完了です。
Zabbix側の設定
続いて、Zabbix側で設定していきます。他の監視設定と同じようにWebインターフェースで設定します。
設定するのは、メディアタイプ・ユーザー・アクションの3項目です。
メディアタイプの設定
①【通知】>【メディアタイプ】を開く
②メディアタイプ一覧に「MS Teams」という項目があるので、それをクリック
③(任意ですが)検証用なので、「複製」して、適当な名前を付ける(今回は”MS Teams Test”としました)
④パラメータ欄の”teams_endpoint”の値に、先ほどコピーしたWebhookのURLを張り付ける
⑤「有効」にチェックを入れ、「追加」をクリック
ユーザーの設定
①【ユーザー】>【ユーザー】を開く
②適当なユーザー(今回は”Admin”)をクリックし、メディアタブを開く
③「追加」をクリックし、以下のように入力し、右下の「追加」をクリック
- タイプ:MS Teams Test
- 連絡先:任意(今回は”Teams”にしました)
- 有効な時間帯:デフォルトでOK
④「更新」をクリック(これ忘れやすいので注意!!)
アクションの設定
①【通知】>【アクション】>【トリガーアクション】を開く
②右上「アクションの作成」をクリック
③名前、実行条件に任意の情報を入れる(実行条件は監視したいホストやトリガーの情報を指定します)
④「実行内容」タブで、実行内容の「追加」をクリック
⑤「ユーザーに送信」で、先ほど編集したユーザーを選択し、「追加」をクリック
これで準備完了しました。これで、実行条件に設定したトリガーで障害がおこると、Teamsに通知が飛びます!
通知をカスタマイズする
今までの手順では、デフォルトの障害通知メッセージがデフォルトのTeamsユーザーから投稿されています。それらをカスタマイズしてみましょう!
通知ユーザー(Teams)を変更する
先ほどWebhookを設定した時の画面で、「Upload Image」というボタンがありました。そこから通知するユーザーのアイコンが設定できます。今回は、Copilotで生成した通知用のキャラクターをアイコンに設定してみました!
・・・何とも言えない、かわいらしいキャラクターが生成されました。
アップロードしてみると、ご覧のように設定したアイコンで通知が飛ぶようになります!
通知メッセージを変更する
通知メッセージは、メディアタイプ内に記述されているスクリプトに基づくメッセージが適用されており、メディアタイプの「メッセージテンプレート」の内容は反映されません。
「メッセージテンプレート」の内容で通知を行うには、パラメータ”use_default_message”の値を”false”から”true”に変更しましょう。
これにより、メッセージテンプレートや、アクションで設定したカスタマイズメッセージが投稿されるようになります。今回は、メディアタイプのメッセージテンプレートを修正してみましょう。
デフォルトだと、英語で分かりにくいですね。情報を日本語に直してみましょう。
障害を起こしてみると、通知メッセージも日本語に変わっていました!
おわりに
今回は、Zabbixの障害通知をTeamsに送る方法を紹介しました。
Zabbixでは、Teams以外にもSlackなど様々なツールに障害通知を送ることができます。デフォルトで用意されているもの以外にも、スクリプトを作り込めばあらゆるツールと連携して障害通知を送ることも可能です。
障害通知は、監視ツールにおける重要な要素です。ご希望の通知を実装する方法や、通知をカスタマイズする方法など、お困りの点がありましたら、ぜひ弊社までお声がけください!
最後まで読んでいただき、ありがとうございました。明日のアドベントカレンダーもお楽しみに!
弊社ではZabbix関連サービスを展開しています。以下ページもご参照ください。
★Zabbixの基礎をまとめたeBookを公開しております!★
★SCSK Plus サポート for Zabbix★
★YouTubeに、SCSK Zabbixチャンネルを開設しました!★
★X(旧Twitter)に、SCSK Zabbixアカウントを開設しました!★




















