使用goaccess统计nginx日志

网站已经用了百度统计,但现在移动端的浏览器,如夸克,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
posted @ 2024-06-10 00:47  zjhgx  阅读(45)  评论(0编辑  收藏  举报