迅速な障害発見を手助け!Zabbixの障害をTeamsに通知する方法

こんにちは。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はよく変わるので正確な手順はその時のバージョンに依存しますが、だいたい以下のような手順で設定できると思います。

①対象チャネルの右の「…」マークをクリックし、メニューから「チャネルの管理」をクリック

Teams設定①

チャネルの管理

②上部タブ「設定」をクリックし、「コネクタ」の編集をクリック

コネクタの編集

コネクタの編集

③”Webhook”と検索し、出てくる「Incoming Webhook」をクリック

Webhookを開く

Webhookを開く

④Webhookの表示名(今回は”ZabbixTestとしました”)を入力し、ページ下部の「Create」をクリック

Webhookの名前入力

Webhookの名前入力

⑤WebhookのURLが出てくるので、コピーして控えておき、「Done」をクリック

URLをコピー

URLをコピー

以上で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など様々なツールに障害通知を送ることができます。デフォルトで用意されているもの以外にも、スクリプトを作り込めばあらゆるツールと連携して障害通知を送ることも可能です。

障害通知は、監視ツールにおける重要な要素です。ご希望の通知を実装する方法や、通知をカスタマイズする方法など、お困りの点がありましたら、ぜひ弊社までお声がけください!

お問い合わせ 製品・サービスについて 入力 | SCSK株式会社
SCSK株式会社 製品・サービスについてご意見・ご質問をお受けしております。

最後まで読んでいただき、ありがとうございました。明日のアドベントカレンダーもお楽しみに!


弊社ではZabbix関連サービスを展開しています。以下ページもご参照ください。

★Zabbixの基礎をまとめたeBookを公開しております!★

★SCSK Plus サポート for Zabbix★

★YouTubeに、SCSK Zabbixチャンネルを開設しました!★

★X(旧Twitter)に、SCSK Zabbixアカウントを開設しました!★

タイトルとURLをコピーしました