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 に書かれている内容と同様である。
- Download ページ https://goaccess.io/download からソースコードをダウンロードする。(記事作成時は goaccess-1.9.4.tar.gz) ダウンロードした tar.gz を展開しておく。
- src/win/mmap.c 3行目の #ifdef _WIN32 と対応する 5 行目の #endif をコメントアウトするか、削除する。
- ./configure --enable-utf8
- make
- 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-*'
のように実行して表示させている。