使用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
|
time-format %H:%M:%S
|
搞了好久,还用了一个工具转化(不行),终于配置好了。配置如下:
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
喜欢艺术的码农