はじめに
録画サーバで録画開始と録画終了を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というツールを使ってみることにしました。以下の記事を参照すると、簡単に設定することができるとわかりました。
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