Zabbix から「LINE Notify」にアラート通知する方法

Zabbix
Zabbix
スポンサーリンク

LINE Notify(ラインノーティファイ)は、Webサービスからの通知をLINEで受信できるサービスです。対応しているWebサービスでなくても、Zabbix や 自分のWebサービスから LINE Notify で通知を送信することができます。LINE Notify の使い方は本当にシンプルで、アクセストークンを取得して API をたたくだけ!そこで今回は、Zabbix から LINE Notify にアラート通知する設定手順をご紹介いたします。

LINE Notify のアクセストークン取得

まず初めに、LINE Notify のアクセストークンを取得します。

LINE Notify トップページの「ログイン」をクリックします。

LINEに登録したメールアドレスと、LINEのパスワードでログインします。

「マイページ」をクリックします。

「トークンを発行する」をクリックします。

「トークン名」と、通知を送信するLINEグループ(もしくはユーザー)を選択し、「発行する」をクリックします。

アクセストークンが発行されますのでメモしておきます。

連携中のサービスに、トークン名と通知を送信するLINEグループが表示され、ここで連携の解除(アクセストークンの無効化)ができます。

後はLINEアプリで「LINE Notify」ユーザーを、アクセストークン作成時に選択したLINEグループに招待すれば、LINE側での通知準備は完了です。

Zabbix アラートスクリプトの作成

Zabbix から LINE Notify で通知するための、 アラートスクリプトを作成します。今回はシェルスクリプトで作成していますが、プログラム言語はなんでもかまいません。

アラートスクリプトを置く場所は、Zabbixサーバーの設定ファイルの AlertScriptsPath パラメーターで確認してください。Zabbixサーバーをパッケージからインストールしている場合は「/usr/lib/zabbix/alertscripts」になっていると思います。

$ sudo grep AlertScriptsPath /etc/zabbix/zabbix_server.conf
(略)
AlertScriptsPath=/usr/lib/zabbix/alertscripts

LINE Notify アラートスクリプトを作成します。スクリプト中の「$1」と「$2」は、この後に作成するメディアタイプ(通知先)のスクリプトパラメータの1つ目と2つ目がそれぞれ入ります。

sudo vi /usr/lib/zabbix/alertscripts/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

# 通知本文
body=$2

# LINE Notify 実行
curl -X POST -H "Authorization: Bearer ${access_token}" \
-F "message=${subject}: ${body}" \
https://notify-api.line.me/api/notify

exit 0

(公式ドキュメント)
LINE Notify API Document
5 Custom alertscripts | Zabbix Documentation 3.2

アラートスクリプトのオーナーを zabbix に変更して実行権限を付けます。

$ sudo chown zabbix /usr/lib/zabbix/alertscripts/LINE_Notify.sh
$ sudo chmod 700 /usr/lib/zabbix/alertscripts/LINE_Notify.sh

続いて Zabbix 管理画面での設定です。

メディアタイプ(通知先)の作成

LINE Notify アラートスクリプトを、メディアタイプ(通知先)として登録します。

[管理]→[メディアタイプ]「メディアタイプの作成」をクリックします。

適当な名前を入力し、タイプ「スクリプト」を選択します。スクリプト名に先ほど作成したアラートスクリプトのファイル名を入力し、スクリプトパラメータ枠の「追加」をクリックします。

スクリプトパラメータの1つ目に {ALERT.SUBJECT} 2つ目に {ALERT.MESSAGE} を入力し「追加」ボタンをクリックします。このスクリプトパラメータの値は、先ほど作成したアラートスクリプトの「$1」と「$2」に入ります。

LINE Notify メディアタイプが作成されました。

ユーザーのメディア(通知先)設定

適当なユーザーに、先ほど作成した LINE Notify メディアタイプを設定します。

[管理]→[ユーザー] 「Admin」ユーザーをクリックします。

「メディア」タブをクリックします。

メディア枠の「追加」をクリックします。

タイプ「LINE Notify」を選択、送信先に適当な名称を入力し「追加」ボタンをクリックします。(ここで入力する送信先は、何も使われませんのでほんと適当で構いません)

「更新」ボタンをクリックすれば、ユーザーのメディア設定完了です。

アクションの有効化

今回は、初めから作成されているアクション(障害が発生した時に通知される内容と通知先)を利用します。

[設定]→[アクション] 「Report problems to Zabbix administrators」のステータスをクリックして「有効」にします。

Zabbix 管理画面での設定は以上です。

動作確認

最後に動作確認をして完了です。

Zabbixには「テスト送信」のような機能がありませんので、擬似的に障害を発生させて、LINE Notify でアラート通知がされることを確認します。

終わりに

LINE Notify ではアラート通知を LINEグループに送信できるので、そこまま運用チームでトークできるのが便利そうですね。また、クラウドサービスでは、サーバーからのメール送信が禁止されている場合もありますので、LINE Notify を使ったアラート通知も一案だと思います。

コメント

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