アクセス解析したい(goaccess)

$ goaccess --log-format COMMON ログファイル
$ goaccess --log-format COMMON ログファイル1 ログファイル2
$ goaccess --log-format COMMON ログファイル -o 出力ファイル名.html

goaccessは、ウェブサイトのアクセスログを解析できるコマンドです。 理屈はわからないのですが、めちゃくちゃ高速です。

インストールしたい(goaccess)

$ brew install goaccess
$ goaccess --version
GoAccess - 1.9.1.

ログ形式したい(--log-format)

$ goaccess --log-format COMMON ログファイル
$ goaccess --log-format COMBINED ログファイル

--log-formatでログで形式を指定できます。 ログファイルに適した形式を選択します。

ファイル出力したい(-o / --output)

$ goaccess --log-format COMMON ログファイル --output 出力ファイル名.csv
$ goaccess --log-format COMMON ログファイル --output 出力ファイル名.json
$ goaccess --log-format COMMON ログファイル --output 出力ファイル名.html
$ open 出力ファイル名.html

--output(-o)で、集計結果をファイルに出力できます。 ファイル名もしくは拡張子で出力形式を指定できます。 出力形式は[csv|json|html]が使えます。

ダッシュボードで確認したい場合はHTMLが便利です。 自身で可視化する場合はJSON形式が便利かもしれません。 (CSV形式はPandasで読み込むのがちょっと大変そうです)

ダイアログ設定(-c / --config-dialog)

$ goaccess -c ログファイル
$ goaccess -c ssl_access_log
$ goaccess -c access_log

--config-dialog(-c)で、ダイアログ形式でログフォーマットを選択できます。 ログ形式がわからない場合に有効です。

矢印キーでカーソルを移動し、SPCーで選択トグル、Enterで決定します。 ログファイルのフォーマットと一致していると、ログがパースされ、アクセス解析の結果が表示されます。 選択したフォーマットでない場合、エラーが表示されます。 qでダイアログを一度閉じたあと、別のフォーマットを選択できます。

圧縮ログを解析したい(gzcat)

$ gzcat access_log.gz | goaccess --log-format COMMON -o 出力ファイル名.html -

goaccessは、.gzで圧縮されたログファイルをそのまま読み込めません。 圧縮ファイルを眺めたい(zcat / zless)で紹介したgzcatで展開しつつ、パイプでgoaccessに渡します。

このとき、末尾に-を付けて標準入力から読み込むことを明示する必要があります。 -を省略すると、No input data was providedというエラーになります。