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」になっていると思います。
(略)
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 chmod 700 /usr/lib/zabbix/alertscripts/LINE_Notify.sh
続いて Zabbix 管理画面での設定です。
メディアタイプ(通知先)の作成
LINE Notify アラートスクリプトを、メディアタイプ(通知先)として登録します。
[管理]→[メディアタイプ]「メディアタイプの作成」をクリックします。
適当な名前を入力し、タイプ「スクリプト」を選択します。スクリプト名に先ほど作成したアラートスクリプトのファイル名を入力し、スクリプトパラメータ枠の「追加」をクリックします。
スクリプトパラメータの1つ目に {ALERT.SUBJECT} 2つ目に {ALERT.MESSAGE} を入力し「追加」ボタンをクリックします。このスクリプトパラメータの値は、先ほど作成したアラートスクリプトの「$1」と「$2」に入ります。
ユーザーのメディア(通知先)設定
適当なユーザーに、先ほど作成した LINE Notify メディアタイプを設定します。
[管理]→[ユーザー] 「Admin」ユーザーをクリックします。
タイプ「LINE Notify」を選択、送信先に適当な名称を入力し「追加」ボタンをクリックします。(ここで入力する送信先は、何も使われませんのでほんと適当で構いません)
「更新」ボタンをクリックすれば、ユーザーのメディア設定完了です。
アクションの有効化
今回は、初めから作成されているアクション(障害が発生した時に通知される内容と通知先)を利用します。
[設定]→[アクション] 「Report problems to Zabbix administrators」のステータスをクリックして「有効」にします。
Zabbix 管理画面での設定は以上です。
動作確認
最後に動作確認をして完了です。
Zabbixには「テスト送信」のような機能がありませんので、擬似的に障害を発生させて、LINE Notify でアラート通知がされることを確認します。
終わりに
LINE Notify ではアラート通知を LINEグループに送信できるので、そこまま運用チームでトークできるのが便利そうですね。また、クラウドサービスでは、サーバーからのメール送信が禁止されている場合もありますので、LINE Notify を使ったアラート通知も一案だと思います。
コメント