やりたいこと
サービスリリース時に、先に局所的なデプロイをして様子を見る際などに使う
(実際に使っている)ユースケース
- 広告配信サーバーが数百台あり、リリース時には手始めに1台にデプロイして動作確認というフェーズがある
- この時、該当1台はバランサーから外している
- 配信サーバーは、以下の3つのプロセスで成り立っている
- 先行1台での動作確認時には以下のあたりを確認したい
で、どうやるか?
簡易的なスクリプトを作ってましたが、ちょっとだけ直して外部に切り出してみました
How To Use
の項目のままなのですが、clone して make すれば動きます
もうちょっと詳しく書くと、
- 実態はperl スクリプト
make setup
で必要なCPAN Module を$REPOS/local
配下にinstall- 正しくはcpanm を拾ってくる所からやるべきですが、手抜きしてリポジトリ内に同封してます
etc/config.yaml
を 編集します- path : (必須)tailしたいログファイルのFull Pathを記入。アクセスログ等はローテートすると思いますが、動的な日付部分は POSIX::strftime() 形式で書けます。File::RotateLogsのやり方をパクりました
- color : (必須)Term::ANSIColor で色付けして出力するための色指定です
- option : (任意) File::Tail で出力する際のオプション指定
- 編集したconfig.yaml のフォーマットが正しいか
make test
で確認できます make run
すれば、動きます。無限ループで動き続けるので、Ctrl + C
で切ってください
画面イメージ
まとめ
Term::ANSIColor や File::Tail など、既存のCPAN Moduleを使えてお手軽に作れました
運用上のログ監視はこんなのとは全然違うしっかりした仕組みがあるので、
あくまでリリース時の開発者作業の一助に過ぎません。そのスコープにおいてはこれで十分かと思います