東京生まれHOUSE MUSIC育ち

悪そうな奴はだいたい友達なの?

chinachuでの録画開始、録画終了をslackに連携する

はじめに

録画サーバで録画開始と録画終了をslackに通知するようにしました。

同じようなことを考えている人は私の他にもいらっしゃって、様々な方法があるようです。例えば、以下のようなページが参考になります。

上記のページを参考にしながら、自分の勉強を兼ねて実装してみました。

どうやって実現するか

色々と調べると開始と終了は以下のchinachuのログに出力されています。録画開始は「RECORD」という文字列、録画終了は「FIN」という文字列がキーワードになりそうです。このログを監視して、キーワードにひっかかった場合にslackに通知することを考えました。

/usr/local/var/log/chinachu-operator.stdout.log

Slackへの通知はIncoming Webhooksをcurlで使用する

slackへの通知はIncoming Webhooksを使用することにしました。URLだけ指定すればいいので、よりシンプルに実装できると考えたからです。

slackのIncoming Webhooks設定ページにサンプルとしてcurlでの使用方法が記載されています。それをほぼそのまま使用することにしました。

ログ監視はlogmonを使用する

最初、ログ監視はfluentdやnegiosを使ってみようと考えたのですが、設定が複雑そうでした。

そこで、logmonというツールを使ってみることにしました。以下の記事を参照すると、簡単に設定することができるとわかりました。

qiita.com

logmonのインストールと設定

上記のページにインストール方法や設定方法が書いてあるので、そのとおりにインストールしました。

監視用の設定は以下です。

/etc/logmon/logmon.conf

chinachu用に設定したのは以下です。chinachuのログである「/usr/local/var/log/chinachu-operator.stdout.log」を監視対象にしています。ログに「RECORD」または「FIN」の文字列があれば、出力されたログのままslackに通知するというように設定しています。

# Monitor for messages
:/usr/local/var/log/chinachu-operator.stdout.log
(RECORD|FIN)
curl -X POST --data-urlencode "payload={\"text\": \"<%%%%>\"}" https://hooks.slack.com/services/XXX/XXX/xxxxxxxx