GoAccess の使い方
WEB サイトの構築に AWS CloudFront を使っている場合、アクセスログを有効にしておくと、指定した S3 バケットにアクセスログが保存されます。
このアクセスログを簡単に解析するために、GoAccess というソフトがあることを知りました。
以下の記事が参考になると思います。
- GoAccess(本家)
- AWS Cloudfront のアクセスログ解析に goaccess.io がつよつよだった
- コマンド一発でウェブサイトのアクセスログをターミナルやウェブブラウザで可視化できる「GoAccess」レビュー
CloudFront のアクセスログですが、こんなに大量の数のアクセスログができるん?と思うほど、S3 にファイルができます。 1 年ほど運用して、そのまま放置していたのですが、12 万個ほどファイルができていました。(放置しすぎ)
そんな大量の数のログファイルにもかかわらず、以下のようにして解析することができます。 linux、mac、cygwin(windows) などの unix like な環境が必要です。また、aws cli もインストール、設定しておいてください。
mkdir logs
cd logs
aws s3 sync s3://ログバケット名 .
find . -name \*.gz | xargs gzcat | goaccess --log-format=CLOUDFRONT # ターミナルに表示する場合
find . -name \*.gz | xargs gzcat | goaccess --log-format=CLOUDFRONT -o レポートファイル.html # html で出力する場合
今の場合、ファイルが多すぎるので、gzcat *.gz すると、シェルが *.gz を展開して、コマンドラインに収まりません。そこで、xargs を使っています。
レポートは html のほうが見やすいかもしれません。
2023-08 分だけ表示したければ、次のようにすれば良いと思います。
find . -name \*.gz | grep 2023-08 | xargs gzcat | oaccess --log-format=CLOUDFRONT -o レポートファイル.html # html で出力する場合
Google Analytics を使わないで WEB のアクセス解析をする理由
この WEB サイトでは、しばらく、Google Analytics を使わないことにしました。 Google Analytics では Cookie を使って利用者の色々な属性を追跡しています。 年齢や性別まで表示されているとすれば、Gmail などを経由して、Google のアカウント情報を連携しているのでしょうか。
確かに、広告表示などをするのであれば、年齢、性別、興味など、知りたいかもしれません。 このサイトは、せいぜい、1000PV/月もいかないぐらいの WEB サイトなので、Google 広告を貼っても収益には寄与しませんし、 そこまでして利用者の属性を追跡する必要があるのかな?という疑問があったためです。
それにトラッキングコードを読み込むので、ページ表示が遅くなります。Cookie 使用の同意ポップアップもうっとおしいです。 そんなわけで、Google Analytics を外してしまいました。
Search Console については Cookie を使わない仕組みですし、検索ニーズを把握する必要もあるので、設定しています。設定してもプライバシーは保たれると思います。
しかし、そのような構成にすると、検索結果からの流入はかろうじて把握できますが、検索以外からの流入がいまひとつ見えません。 そこで、アクセスログを解析したいと思い調べてみたところ、GoAccess というツールに辿りつきました。
CloudFront のアクセスログを解析したい場合は、GoAccess を使ってみてはどうでしょうか。