今回はWindowsでNginxのログを可読性を挙げて解析しやすくためGoAccessを導入する方法を紹介していこうと思います。(公式サイト

GoAccessを使ったら普段見ずらいAccess.logを分析し、綺麗な可視化結果を表示してくれる。
GoAccessはLinux向けなのでWindowsでは本来使えなくて非常に残念ですが、「CowAxess(無料)」というラッパーを使えば、Windowsでも簡単に使用できる!
たまたま仕事でうまく出来たので、手順を少し整理してみんなに紹介したいと思います。

CowAxessのインストール(公式サイト

  • CowAxessの公式サイトでWindows用インストラクターをダウンロードしてインストールする。(ダウンロードページ
     ※デフォルトで「C:\cowaxess_x64」にインストールしてくれる。
  • 「C:\cowaxess_x64」配下にある「cowaxess.cmd」ダブルクリックで起動完了。(Linuxのような仮環境を用意してくれた)
  • 一旦OKです、次は分析前の準備作業を行う。

Nginxのアクセスログの出力フォーマットを確認する

フォーマットの設定はサーバより違いますので、下記を参考して自分で確認してください。
Ngnix設定ファイル格納場所:/etc/nginx/nginx.conf (デフォルト)
「log_format」の部分を確認してください。
例:

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for"';

NginxフォーマットからGoAccessフォーマットに変換する

アクセスログを正確に分析させるため、NginxフォーマットからGoAccess識別できる形式に変換必要です。
手動で翻訳しても構いませんが、ツール「nginx2goaccess.sh」を使ったら簡単に変換してくれる。
ツールを使う場合、GitHubからダウンロードしてください。

  • 先程確認したNginxのログフォーマットを一行にまとめ、ツール「nginx2goaccess.sh」で形式変換する(Linux仮環境で実行)。
    例:

    nginx2goaccess.sh '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"'

    例の出力結果

    time-format %T
    date-format %d/%b/%Y
    log_format %h - %^ [%d:%t %^] "%r" %s %b "%R" "%u" "%^"
  • 変換後フォーマットをこのまま「C:\cowaxess_x64」配下に任意ファイル名で保存する。
    例:C:\cowaxess_x64\nginxlog.conf

goaccessコマンドでログを分析させる

ログファイル(access.log)と上記フォマードファイル(nginxlog.conf)を引数として、コマンド「goaccess」を実行する(Linux仮環境で実行)
結果の表示は2種類あります。
① コマンドプロンプト画面に表示

goaccess -f access.log -p nginxlog.conf

② HTMLファイルに出力

goaccess -f access.log -p nginxlog.conf -a -o output.html

注意、ログの日付の部分が英語の月になる(例、12/May/2021)かつ Windowsの言語は英語でない場合、上記コマンドに加えて、「LC_TIME="en_US.UTF-8"」と「--log-format=COMBINED」を付けってください。
例:

LC_TIME="en_US.UTF-8" bash -c 'goaccess -f access.log -p nginxlog.conf --log-format=COMBINED -a -o output.html'

HTMLファイルの表示例

きれいし、分かりやすく色んな情報を纏めてくれる。

さらに、テーマや各種表示設定も制御可能です。

ぜひ、みなさんも使って見てください。

Last modification:May 26, 2021
If you think my article is useful to you, please feel free to appreciate