GoAccessを使ってWebサイトのアクセスログを解析する
作成日: 2020年06月27日, 更新日:
アクセス解析といえばGoogle アナリティクスやYandexのMetarica、オープンソースではOpenWebAnalyticsやPiwik。トラッキングに特化したサービスなどは多数あり、これらのアクセス解析は発行されたタグを各ページに埋め込むビーコン型のアクセス解析です。
このサイトではAMPのページのみアクセス解析してます。
ログ解析アプリ
macではコンソールでも確認できますが、Logseenを使えばセットしたキーワードからログを抽出することができます。
- macOS アプリ
- Windows
- 今でも使えるのかわかりませんが ApacheLogViewer
RやJupyterを使ってグラフ化したりもしてみましたが、こっちが意図して抽出するのはイイのですがもうちょっとラクしてかっこよくしたいのでGoAccessを使ってみます。
GoAccess
GoAccess は、オープンソースのリアルタイム Web ログ解析ツールです。
- GoAccess - Visual Web Log Analyzer https://goaccess.io/
インストール
GoAccessのダウンロードページからインストール方法を確認します。
macOSのCatalinaに brew install goaccess
でインストールしてみましたがログの解析が失敗します。[c] キーでログフォーマットを変更してみるのですがダメなので違う環境で試してみます。
Ubuntu18にインストールしました。
ターミナル出力
ターミナルから起動します。
goaccess ログファイル名パス / ログファイル.log
ログを goaccess
の後に続いて指定します。ログ形式の指定をして起動することもできます。詳細はGoAccessの「Get Started」ページをご確認ください。
指定をしないか、指定したログ形式が間違っている場合は下記の画面になります。
画像はデフォルトの設定です。上から一般的なログ形式になりますが問題ないと思います。
手元にある他のログでもいろいろと試してみましたが共有サーバのログはエラーでした。
で、例えば下記のように修正しました。
%v %h %^[%d:%t %^] “%r” %s %b “%R” “%u”
ログが読み込まれると下記の画像のようにデータが表示されます。
[q]キーで終了します。
設定
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"
ダッシュボード
メニューから表データの非表示やカラーテーマ・レイアウト変更ができます。
依存ファイル無しのHTMLが出力されますので、そのままサーバにアップロードできちゃいます。 というわけで、サーバにアップロードするためにログを整形する必要が出てきました。
ログ整形
ログなので当たり前なのですが、botや管理画面などのログ行をフィルタして削除する必要がありました。
そのためPythonでフィルタしてログを整形しました。何をするにもデータを扱う時にはデータ整形の必要性を改めて実感する。
いわゆるGoogleAnalyticsなどのアクセス解析は訪問者を知るため、ログ解析はbotやエラーを確認する。 用途が違うので比較するものではありません。
Google AnalyticsはAMPページのみにしてGoogle Search Consoleとログチェックで様子見します。
関連投稿
- 2022年03月09日[ミニ] Google Search Consoleのアドレス変更
以前に比べるとアドレス移行は早くなってるようだ。 およそ一週間でアクセスは1