GoAccessを使ってWebサイトのアクセスログを解析する

作成日: 2020年06月27日, 更新日:

GoAccess ダッシュボード画面 dark

アクセス解析といえばGoogle アナリティクスやYandexのMetarica、オープンソースではOpenWebAnalyticsやPiwik。トラッキングに特化したサービスなどは多数あり、これらのアクセス解析は発行されたタグを各ページに埋め込むビーコン型のアクセス解析です。

このサイトではAMPのページのみアクセス解析してます。


ログ解析アプリ

macではコンソールでも確認できますが、Logseenを使えばセットしたキーワードからログを抽出することができます。

RやJupyterを使ってグラフ化したりもしてみましたが、こっちが意図して抽出するのはイイのですがもうちょっとラクしてかっこよくしたいのでGoAccessを使ってみます。

GoAccess

GoAccess は、オープンソースのリアルタイム Web ログ解析ツールです。

  1. インストール
  2. ターミナル出力
  3. 設定
  4. ダッシュボード
  5. ログ整形

インストール

GoAccessのダウンロードページからインストール方法を確認します。

macOSのCatalinaに brew install goaccess でインストールしてみましたがログの解析が失敗します。[c] キーでログフォーマットを変更してみるのですがダメなので違う環境で試してみます。

Ubuntu18にインストールしました。

ターミナル出力

ターミナルから起動します。

goaccess ログファイル名パス / ログファイル.log

ログを goaccess の後に続いて指定します。ログ形式の指定をして起動することもできます。詳細はGoAccessの「Get Started」ページをご確認ください。 指定をしないか、指定したログ形式が間違っている場合は下記の画面になります。

GoAccess 設定画面

画像はデフォルトの設定です。上から一般的なログ形式になりますが問題ないと思います。
手元にある他のログでもいろいろと試してみましたが共有サーバのログはエラーでした。

GoAccess 解析失敗画面

で、例えば下記のように修正しました。

%v %h %^[%d:%t %^] “%r” %s %b “%R” “%u”

ログが読み込まれると下記の画像のようにデータが表示されます。
[q]キーで終了します。

GoAccess

設定

HTMLで書き出すためのコマンドは下記になります。

goaccess ログファイル名パス / ログファイル.log -o report.html --log-format=COMBINED

report.htmlはカレントディレクトリ(現在のディレクトリ)に書き出されますので、Webサーバになっていればサーバディレクトリパスを指定します。

goaccess ログファイル名パス / ログファイル.log -o /var/www/html/report.html --log-format=COMBINED

ただし、ログ形式が違う場合は設定ファイルに追記する必要があります。 Ubuntuでは goaccess.conf を編集します。 既存のフォーマットはコメントアウトされています。

time-format %H:%M:%S
date-format %d/%b/%Y
log-format %v %h %^[%d:%t %^] "%r" %s %b "%R" "%u"

ダッシュボード

GoAccess ダッシュボード画面 dark

メニューから表データの非表示やカラーテーマ・レイアウト変更ができます。

依存ファイル無しのHTMLが出力されますので、そのままサーバにアップロードできちゃいます。 というわけで、サーバにアップロードするためにログを整形する必要が出てきました。

ログ整形

ログなので当たり前なのですが、botや管理画面などのログ行をフィルタして削除する必要がありました。

そのためPythonでフィルタしてログを整形しました。何をするにもデータを扱う時にはデータ整形の必要性を改めて実感する。

いわゆるGoogleAnalyticsなどのアクセス解析は訪問者を知るため、ログ解析はbotやエラーを確認する。 用途が違うので比較するものではありません。

Google AnalyticsはAMPページのみにしてGoogle Search Consoleとログチェックで様子見します。

関連投稿

広告