GoAccess - Visual Web Log Analyzer
- 這是一個支援各種 Web Service Log 的分析程式,內建了 Apache & Nginx 的 Log 格式設定
- 也可以支援 自訂 Log 格式
- Geo Location 需要搭配 MAXMind GeoLite2 Database,才會有訪客地域分析
- 手動自行編譯,才能使用完整的功能
安裝方式介紹
下載原始碼,自行編譯
- 這裡並沒有補上相依的函式庫,請自行編譯時,查看錯誤訊息,下載相關函式庫工具一起編譯
wget https://tar.goaccess.io/goaccess-1.9.3.tar.gztar -xzvf goaccess-1.9.3.tar.gzcd goaccess-1.9.3/./configure --enable-utf8 --enable-geoip=mmdb --enable-geomapmakemake install
透過 apt 安裝
- 沒有 Geo Location World Map
wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg >/dev/nullecho "deb [signed-by=/usr/share/keyrings/goaccess.gpg arch=$(dpkg --print-architecture)] https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/goaccess.listsudo apt-get updatesudo apt-get install goaccess
- 用程式及設定檔路徑:/etc/goaccess/goaccess.conf/usr/bin/goaccess
使用 GitHub 版本編譯安裝
# 從 GitHub 下載原始碼(這裡環境使用 Ubuntu)
git clone https://github.com/allinurl/goaccess.gitcd goaccess
# 安裝相依的套件
sudo apt install autopoint build-essential gettext libmaxminddb-dev libncursesw5-dev -yautoreconf -fi
# 啟用 GeoLite2 資料庫,並啟用 Geo Location Map
./configure --enable-utf8 --enable-geoip=mmdb --enable-geomap
# 進行編譯
make
# 進行安裝
make install
- 應用程式及設定檔路徑
- /usr/local/etc/goaccess/goaccess.conf/usr/local/bin/goaccess
設定
Log 時間、日期與欄位格式
- 不管是 apt 套件版,或是 GitHub 編譯版,預設設定檔都一樣,
time-format
,date-format
,log-format
, 都沒有設定,所以不能直接使用 (當然也可以在命令列使用參數指定這些格式) - 以下為 nginx 的設定格式
time-format %H:%M:%Sdate-format %d/%b/%Ylog-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
指定 Geo IP 地理資料庫
- geoip-database 的設定如下
geoip-database /usr/share/GeoIP/GeoLite2-ASN.mmdbgeoip-database /usr/share/GeoIP/GeoLite2-Country.mmdbgeoip-database /usr/share/GeoIP/GeoLite2-City.mmdb
命令行直接使用參數指定格式
goaccess ~/tmp/access_portal.log.2 --log-format='%h %^ %e [%d:%t %^] "%r" %s %b "%R" "%u"' --date-format=%d/%b/%Y --time-format=%T -o /var/www/Subs/stats/index.html
範例
處理 AD 所有相關紀錄
zcat -f /var/log/nginx/access_AD.log* | /usr/local/bin/goaccess \--enable-panel=GEO_LOCATION \--enable-panel=MIME_TYPE \--enable-panel=CACHE_STATUS \--enable-panel=VISIT_TIMES \--enable-panel=VISITORS \--enable-panel=REFERRERS \--enable-panel=KEYPHRASES \--enable-panel=CACHE_STATUS \--enable-panel=REQUESTS \--enable-panel=REQUESTS_STATIC \> /home/tom/ad.html
- zcat 會自動處理 .gz 檔案的解壓縮
- 如果 Log 檔案很大,又經過多日的 Log Rotate, goaccess 一次處理起來,會很耗用系統資源