分析したいApacheログファイルがたくさんあります。あまりセットアップを必要としないツールを探しています。ライブWebサーバーをいじることなく、コマンドラインからログを実行できるもの。
推奨事項はありますか?
分析したい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-logのフィールドを引き出すことができます。これは常に私が欲しいものです。その後、パイプラインでもう少し解析できます。
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"
そしてもちろん、今ではほとんど何でも可能です。
楽しい!
awk '($9 == 200) {print $6,$7,$8}'
ます。例と同じものを表示します。FPATを使用する必要はありません(この方法は他の場合に便利ですが)
apachetopはかなりクールです。ライブ統計を出力します。あなたはそれを実行します
apachetop -f /var/log/apache2/www.mysite.com.access.log
Debian / Ubuntuにインストールするには:
apt-get install apachetop
またはソースから:https : //github.com/JeremyJones/Apachetop
コマンドラインツールを使用する代わりに、Apache Logs Viewerを試してみるといいでしょう。これは、Apacheログファイルを監視および分析できる無料のツールです。かなりクールなグラフとレポートをその場で生成できます。
http://www.apacheviewer.comからの詳細情報