少し前に、Webサーバーのログを分析してレポートを作成できるGoAccessユーティリティに出会いました。 このユーティリティはCで記述されており、ほぼすべてのLinuxディストリビューションリポジトリで利用できます。
プロジェクト住所この記事は革新的なものではなく、短いHOWTOであり、そのほとんどはドキュメントにあります。
そして順番に:
1.インストール
yum install goaccess
2.セットアップ
/etc/goaccess.confファイルで、nginxログを分析するための行のコメントを解除します。
time-format %H:%M:%S date-format %d/%b/%Y log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
3.ログ分析
分析の結果は、コンソール(インタラクティブ)モードとレポート形式の2つのモードで取得できます。 このプログラムは、html、json、csvなどのいくつかのタイプのレポートをサポートしています
現在のログを分析するためにプログラムを起動する最も単純なケース:
goaccess -a -f <log_file>
この場合、現在のログの分析を次の形式で取得します。
TABを使用してパラメーターをナビゲートできます。
Webレポートは次のようになります。
次に、ログ全体ではなく、特定の部分のみを分析する必要がある場合を考えてみましょう。
1.過去2時間のログ分析:
sed -n '/'$(date '+%H:%M:%S' -d '2 hours ago')'/, $ p' <log_file> | goaccess -a
2.過去2日間の分析:
sed -n '/'$(date '+%d/%b/%Y' -d '2 day ago')'/, $ p' <log_file> | goaccess -a
3.特定の日付の分析:
sed -n '/18\/Jan\/2016/,/19\/Jan\/2016/ p' <log_file> | goaccess -a
4. htmlレポートの取得:
goaccess -a -f <log_file> > report.html