Zabbix
【5】通知はやっぱりメール?~情報共有問題~
障害通知といえば一般的にはメール通知を採用するかと思います。しかし、メール通知特有の課題も多く、最近ではメール以外の障害通知方法を検討するケースも多いようです。本コラムでは、メール通知の課題と、メール以外のZabbix障害通知について解説します。
Zabbix障害のメール通知、特有の課題とは?
|
障害通知のメールの宛先に、個人のメールアドレスのみ設定されていた場合、メールを受信した担当者は「このメールは他の誰が受信しているのか?」「誰に共有すべきなのか?」「自分が何らかのアクションをすべきなのか?」など悩むケースがあるようです。 |
|
障害通知のメールを受信した後、障害状況の確認や情報共有、障害対応など他のメンバーとの情報のやり取りが必要になります。ここでもメールで通知している場合、メールを起点として情報共有の流れになりにくい特性があります。 |
|
本来は、障害通知メールを受信する度に、本文で内容を確認します。しかし、Zabbixから大量の通知が届いていると、受信だけ確認してその後中身を開かずに放置してしまい、重要な通知を見逃すこともあるようです。 |
SNSを活用したZabbix障害通知がオススメ
Zabbixの通知アクションのメディアとしてビジネスChat(画面イメージはSlack)が活用できます。イメージとしては、障害の内容に応じたチャットのチャンネルに対してZabbixが障害のメッセージを書き込みます。このメッセージに対して関係者が障害に関する情報共有や、障害発生時点の性能情報などの関連情報を張り付けることで、スムーズな対応や共有が実現できます。また、スマートフォンを利用することで、在宅勤務や移動中でもスムーズな対応の指示、調査状況の共有が可能です。
|
|
ZabbixからSNSへの通知設定方法
ZabbixからビジネスChatツールへの通知は、一般的にはビジネスChat側のWebAPI経由でZabbixからメッセージを登録します。例えば、LINEの場合は事前にLINE Notify のアクセストークン取得を取得して、以下のようなスクリプトをZabbixのアクションから実行することで通知が可能です。
LINE_notify.shのサンプル
#!/bin/sh
export PATH="/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin"
export LANG=C
# LINE Notify API のアクセストークン
access_token=“ここにアクセストークンを記載する"
# 通知タイトル
subject=$1 #下記メディアタイプの1つ目のスクリプトパラメータの値が展開される
# 通知本文
body=$2 #下記メディアタイプの2つ目のスクリプトパラメータの値が展開される
# LINE Notify 実行
curl -X POST -H "Authorization: Bearer ${access_token}" \
-F "message=${subject}: ${body}" \
https://notify-api.line.me/api/notify
exit 0
Zabbix側のメディアタイプの設定例
|
Zabbixの保守サポートで便利なプラグインを入手可能
Zabbixからビジネスchatに通知を行う場合は、それぞれのChatツール毎にAPIの接続方法やスクリプトの作成が必要になり、少なからず手間がかかります。
そんな手間を省く各種ツールやプラグインは、Zabbixカスタマーポータルからダウンロード可能です(Zabbix保守ユーザーのみがダウンロード及び利用可能)。
2020年4月時点では以下の通り「HipChat」「Slack」通知用のプラグインが用意されており上記の様なスクリプトの作成無しで通知が可能です。是非、Zabbixの保守サポートをご検討ください。
Zabbixカスタマーポータルから入手可能な便利なツール
・Zabbix設定バックアップツール
・ Zabbix設定バックアップ同期ツール
・イベントCSVエクスポートツール
・ Zabbix用SNMPトラップフォーマッタ
・警子ちゃん通知プラグイン
・パトライト通知プラグイン
・ HipChat通知プラグイン
・ Slack通知プラグイン
・ USBスピーカー通知プラグイン
・ SMTP Auth対応日本語メール送信プラグイン
・ Zabbix API用PHPライブラリ
・ Zabbix API用Pythonライブラリ
Zabbixの技術サービスや保守サポートについて
技術コラム Zabbixを使いこなす10のポイント
- コラム執筆者:中村 利一