Webサーバのログ集計の素振りに便利なツール達

k1low.hatenablog.com
この記事を見て、そういえば自分もよくgrepコマンドなど組み合わせてアクセスログから条件に応じた集計をよくやってるなと気づきました

すぐにfilt試してみたかったのですが、記事にあるようなアクセスログを常時吐いてくれるような環境が手元になかったので、まずはそうしたランダムなアクセスログ生成するツールがないか調べたところすぐ見つかりました
github.com

しかし自分は業務ではltsv形式のログを扱う事が多いためltsv形式のログが欲しかったのですが、このgemはそのあたりもきちんと考慮されており、出力ログフォーマット拡張に対応していました

また、ググるとすでにそれっぽいのが見つかったのですが、ちょっと使いづらかったので少々手直ししてltsv形式のログ出力してくれるツールを作りました

github.com

このツールを使って以下のようにltsv形式のランダムなログを生成することができました

$ bundle exec ruby app.rb --limit=1000 --rate=100 > access.log

また、filtのAlternativesとしてレポジトリにて紹介されているupも便利そうで、過去の保存済みログファイルなどに対して色々集計を試したい場合はこちらが便利そうでした github.com

upに対して先程生成したアクセスログファイルを喰わせて

$ cat access.log |& up

そして、ltsv形式のログを扱う際に便利なlltsvというツールがあるためこれも集計コマンド内に組み込んだりもして github.com

最終的には以下のようにログ集計の素振り環境を用意することができました

(upのコンソール画面)

 | lltsv -k method | sort | uniq -c
 912 method:GET
  88 method:POST

(あ...filt結局試してない...)