使用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
喜欢艺术的码农
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2021-06-10 idea使用中的问题记录
2020-06-10 python首次使用generator时遇到的问题