Compile Goaccess on Msys2

 2025/11/25, 2025/11/26 -  ~

この WEB サイトは AWS CloudFront+S3 を使ってホスティングしている。

CloudFront でログを ON にすると、指定した S3 バケットにアクセスログが保存される。

このアクセスログを解析するのに役立つのが goaccess だ。

ただ、msys2 のパッケージには無いようだ。Docker や WSL を使えばよいのではあるが・・・

msys2 では以下のようにすると goaccess をコンパイルできた。基本的には、 GoAccess Downloads   に書かれている内容と同様である。

  1. Download ページ https://goaccess.io/download   からソースコードをダウンロードする。(記事作成時は goaccess-1.9.4.tar.gz) ダウンロードした tar.gz を展開しておく。
  2. src/win/mmap.c 3行目の #ifdef _WIN32 と対応する 5 行目の #endif をコメントアウトするか、削除する。
  3. ./configure --enable-utf8
  4. make
  5. make install

これで /usr/bin に goaccess.exe がインストールされる。私は以下のようなスクリプトを作っている。

#!/bin/sh
tf=$(mktemp --suffix .html)
find . -name "$1" -type f -print0 | xargs -0 gunzip -c | env LANG=C goaccess --log-format=CLOUDFRONT -o $tf --ignore-crawlers
start $tf

このスクリプトを、

$ cflog.sh '*2025-11-*'

のように実行して表示させている。