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




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




投稿日:

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

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


【インストール】

[html]
$ 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
[/html]


【実行】
[html]
# /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% ┃

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


このツール、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

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