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