使用goaccess統計nginx日誌

zjhgx發表於2024-06-10

網站已經用了百度統計,但現在移動端的瀏覽器,如夸克,UC等預設都禁廣告,同時也會阻止統計的js執行,所以百度統計只能統計到一部分。

可以用指令碼來在nginx日誌中統計URL但比較麻煩,在網上搜了一下統計nginx的工具,發現有個goaccess還比較方便。

安裝依賴庫:

yum install -y GeoIP-devel ncurses-devel

安裝:

$ wget https://tar.goaccess.io/goaccess-1.9.3.tar.gz
$ tar -xzvf goaccess-1.9.3.tar.gz
$ cd goaccess-1.9.3/
$ ./configure --enable-utf8 --enable-geoip=mmdb
$ make
# make install

遇到的問題:

1.日誌格式的配置

由於我的nginx日誌格式不是預設的,當初是由於nginx要按天出日誌做過修改

    # 日誌按天分割
    log_format main '$remote_addr - $remote_user [$time_iso8601] "$request" '
      '$status $body_bytes_sent "$http_referer" '
      '"$http_user_agent" "$http_x_forwarded_for" "$request_body"';
114.119.141.127 - - [2024-06-09T00:00:12+08:00] "GET /d/184833 HTTP/1.1" 200 6857 "https://www.hjdang.com/d/184834" "Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; PetalBot;+https://webmaster.petalsearch.com/site/petalbot)" "-" "-"

看網上都是下面這種配置

配置檔案位於:/usr/local/etc/goaccess/goaccess.conf

1
2
3
time-format %H:%M:%S
date-format %d/%b/%Y
log-format %h - %^ [%d:%t %^]; "%r" %s %b "%R" - %^"%u" - %^ %T

搞了好久,還用了一個工具轉化(不行),終於配置好了。配置如下:

time-format %H:%M:%S
date-format %Y-%m-%d
log_format %h - %^ [%dT%t+%^] "%r" %s %b "%R" "%u" "%^""%^"

2. 實時html不重新整理

goaccess www.hjdang_2024-06-08.log  -o /data/file/goaccess/report.html --real-time-html

生成實時html發現重新整理不了,後來才知道是websocket的埠7890沒有開

3. --daemonize沒有用

後臺執行引數--daemonize不起作用,加上後命令無效。後來才知道要www.hjdang_2024-06-08.log 要用絕對路徑

goaccess -f /data/log/nginx/www.hjdang_2024-06-08.log  -o /data/file/goaccess/report.html --real-time-html --daemonize

相關文章