月別アーカイブ: 2015年1月




Apacheのアクセスログ解析を1発で出来るRubyツール「request-log-analyzer」を利用してみたら、すごく便利だった!




投稿日:

Apacheなどのwebサーバのログをコマンドラインで分析する時ありますよね。日別のアクセス状況を確認したりとか、404エラーの状況をみたりとか。場合によっては、時間毎のヒット率を出したり、アクセスページのURLのランキングを見てみたりを、awkコマンドで実施していると思います。

こんな時、概要を見るのにとっても便利なツールがありましたので記録しておこうと思います。今回やることは、「request-log-analyzer」というコマンドをインストールするだけです。


【インストール】

 
$ gem install request-log-analyzer --no-ri --no-rdoc
Fetching: request-log-analyzer-1.13.4.gem (100%)
Successfully installed request-log-analyzer-1.13.4
1 gem installed



【実行】

# /usr/local/bin/request-log-analyzer access_20150126.log

Request-log-analyzer, by Willem van Bergen and Bart ten Brinke - version 1.13.4
Website: http://railsdoctors.com

 access_20150126.log:      100% [============================================================] Time: 00:00:03

Request summary
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Processed File:      /access_20150126
Parsed lines:        10767
Skipped lines:       0
Parsed requests:     10767
Skipped requests:    0

First request:       2015-01-26 00:00:12
Last request:        2015-01-26 23:59:11
Total time analyzed: 1 days

Request distribution per hour
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  0:00 ┃  700 hits/day ┃ ░░░░░░
  1:00 ┃  500 hits/day ┃ ░░░░░
  2:00 ┃  200 hits/day ┃ ░░
  3:00 ┃   90 hits/day ┃ ░
  4:00 ┃   90 hits/day ┃ ░
  5:00 ┃   90 hits/day ┃ ░
  6:00 ┃  100 hits/day ┃ ░
  7:00 ┃  200 hits/day ┃ ░░
  8:00 ┃  200 hits/day ┃ ░░
  9:00 ┃  200 hits/day ┃ ░░
 10:00 ┃  300 hits/day ┃ ░░░
 11:00 ┃  300 hits/day ┃ ░░░
 12:00 ┃  300 hits/day ┃ ░░░
 13:00 ┃  400 hits/day ┃ ░░░
 14:00 ┃  400 hits/day ┃ ░░░
 15:00 ┃  400 hits/day ┃ ░░░
 16:00 ┃  200 hits/day ┃ ░░
 17:00 ┃  400 hits/day ┃ ░░░
 18:00 ┃  400 hits/day ┃ ░░░░
 19:00 ┃  400 hits/day ┃ ░░░
 20:00 ┃  700 hits/day ┃ ░░░░░
 21:00 ┃ 1000 hits/day ┃ ░░░░░░░░░
 22:00 ┃ 1000 hits/day ┃ ░░░░░░░░
 23:00 ┃ 1000 hits/day ┃ ░░░░░░░░

HTTP methods
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GET  ┃ 10000 hits ┃ 100.0% ┃ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
POST ┃     2 hits ┃   0.0% ┃

HTTP statuses
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
200 ┃ 10000 hits ┃ 99.7% ┃ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
404 ┃    30 hits ┃  0.3% ┃
403 ┃     3 hits ┃  0.0% ┃
400 ┃     2 hits ┃  0.0% ┃

Most popular URIs
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
/test/test                                                                                                     ┃ 635 hits ┃ 5.9% ┃
/test/test2                                                                                                    ┃ 264 hits ┃ 2.5% ┃

このように続いていきます。今回はここで割愛。


このツール、Apacheログだけでなく、Rails、Merb、Apache、Amazon S3、MySQL slow query log、NGINX、PostgreSQL query log、Oink log、HAProxy httplogなど、各種ログに対応しています。

ログに合わせてオプションも利用できるので以下を参照ください。
https://github.com/wvanbergen/request-log-analyzer/wiki

これで色々と解析してみようと思います。