分析したいApacheログファイルがたくさんあります。あまりセットアップを必要としないツールを探しています。ライブWebサーバーをいじる必要なく、コマンドラインからログを実行できるもの。
何かお勧めですか?
上記のツールはすべてかっこいいですが、質問者が何を求めているのかはわかっていると思います。他のファイルでできるように、アクセスログから情報を引き出すことができないのはしばしば私を悩ませます。
ばかばかしいアクセスログ形式が原因です。
127.0.0.1 - - [16/Aug/2014:20:47:29 +0100] "GET /manual/elisp/index.html HTTP/1.1" 200 37230 "http://testlocalhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0"
なぜ彼らは日付に[]を使用し、他のものに ""を使用したのですか?彼らは日付がフィールド4にあることを知らないと思っていましたか?それは信じられないほどイライラさせられます。
このための現時点で最高のツールはgawkです。
gawk 'BEGIN { FPAT="([^ ]+)|(\"[^\"]+\")|(\\[[^\\]]+\\])" } { print $5 }'
上記のデータでこれはあなたに与えるでしょう:
_"GET /manual/elisp/index.html HTTP/1.1"
_
つまり、FPATでは、Apacheログのフィールドを、スペースで区切られたエンティティだけでなく、実際のフィールドであるかのように引き出すことができます。これはいつも私が欲しいものです。その後、パイプラインでそれをもう少し解析できます。
FSPATを動作させることはここで定義されています: http://www.gnu.org/software/gawk/manual/html_node/Splitting-By-Content.html
したがって、Apacheログを解析できるgawkを作成するためのエイリアスを設定できます。
alias apacheawk="gawk -vFPAT='([^ ]+)|(\"[^\"]+\")|(\\\\[[^\\\\]]+\\\\])' " apacheawk '$6 ~ /200/ { print $5 } | sort | uniq
私のためにこれを作りました:
_"GET / HTTP/1.1"
"GET /manual/elisp/index.html HTTP/1.1"
"GET /manual/elisp/Index.html HTTP/1.1"
"GET /scripts/app.js HTTP/1.1"
"GET /style.css HTTP/1.1"
_
そしてもちろん、他のほとんどすべてが可能になりました。
楽しい!
wtop はクールです。他のユーティリティもあります。多くの場合、bash、sed、awkを使用してログを解析します。
apachetopはかなりクールです。ライブ統計を出力します。あなたはそれを実行します
apachetop -f /var/log/Apache2/www.mysite.com.access.log
Debian/Ubuntuにインストールするには:
apt-get install apachetop
またはソースから: https://github.com/JeremyJones/Apachetop
どのような出力が必要ですか?
あなたが単に物事を数えることを探しているなら、grep something logfile.txt | wc -lはうまく機能します。きれいなグラフが必要な場合...それほどではありません。
使用できるWindowsワークステーションがある場合は、logparserが最適なツールです。
analogは、箱から出してうまく動作し、多くの設定を必要としません。 logwranglerは、より良い出力を生成するためにanalogで動作するパッケージで、セットアップもほとんど必要ありません。
コマンドラインツールを使用する代わりに、Apache Logs Viewerを試すことをお勧めします。これは、Apacheログファイルを監視および分析できる無料のツールです。それはその場でいくつかのかなりクールなグラフとレポートを生成できます。
詳細は http://www.apacheviewer.com から