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
これで色々と解析してみようと思います。