読者です 読者をやめる 読者になる 読者になる

ひといきブログ

技術的な備忘やデジモノレビュー等、ちょっとひといき

LINE Notifyを試しに使ってみた(epgrecの監視)

つい最近、LINE Notifyという、ただLINEのトークルームに対して通知するのみの簡易サービスが提供されたみたいです。
prtimes.jp
curlコマンドを使った簡単な使い方はこちら(LINE Engineers' Blog)
http://developers.linecorp.com/blog/ja/?p=3784

ヘッダーにトークンを入れて、POSTしたら登録したトークルームに通知がいくみたいです。
とっても簡単!!!

家のサーバーの監視とかこれでいいんじゃね?って思いました。
わざわざzabbixとか入れるほどでもないし、そこまで大したものはない。頻繁に見たいわけではなく、ただERRORがでたら早めに知りたい...
うってつけですね!!!

そこでまずはepgrecのERROR監視に取り入れてみる

epgrecというのは、PT3とかチューナーとか使うときに利用する録画予約システムの1つです。
このアプリケーションは、PHPで書かれているので通知用のコードを埋め込んでしまえばすぐですね。
では果たしてどこに埋め込めばいいのか...
とりあえずPHPファイルを眺めてみると、それっぽいファイルがありました。
recLog.inc.php
中を見てみると、reclogという関数があり、メッセージとログレベルを引数にして関数内で編集してアップデートしていました。
function reclog( $message , $level = E_INFO ) {
...
}
そして、このファイル名や関数名ですべてのPHPファイルを対象にgrepしてみると、ずらずら結果が出力されました。この関数で当たりのようです。

入れ込むコードを書いてみる

書いてみるとは言ったものの、なるべく楽したいのでググったら見事ありました。
qiita.com
PHPのコードをありがたく拝借します。
最終行のpost_message()だけ除いて、権限755のapche:apacheでnotify.phpというファイル名にして新しく作っておきます。
次にrecLog.inc.phpを編集します。

先頭に+がある行を追加します。
意味としては、まず一番上の行は単純にnotify.phpを読み込んで、post_message()関数を使えるようにするためのものです。
下の4行は、ログレベルがINFOかDEBUG以外だったらLINEに通知するという意味になります。

結果

まだINFOやDEBUG以外のログが上がってないので、通知はきませんw
ただし、DEBUGのand条件を取って、何個か通知がきたので、うまくいっていると思います。

最後に

IFFFTと連携してやるのも楽しいと思いますが、自分でコード書くのも楽しいもんです。
複雑なことはできませんが、まだまだ使い道はあると思うのでいろいろ試してみてください。