我写的工具上阮一峰周刊了🥳
新成就解锁:前几天写的nginx 日志分析工具被阮一峰推荐了🤗

xiaohack博客专注前沿科技动态与实用技术干货分享,涵盖 AI 代理、大模型应用、编程工具、文档解析、SEO 实战、自动化部署等内容,提供开源项目教程、科技资讯日报、工具使用指南,助力开发者、AI 爱好者获取前沿技术与实战经验。
新成就解锁:前几天写的nginx 日志分析工具被阮一峰推荐了🤗

最近在优化网站访问链路的过程中,部署了一套 WAF 防火墙,它大部分功能都做的挺好,美中不足的地方就是针对于网站访客的相关功能需要付费( 3600 元/年)才能用。
付费是不可能付费的,找了一圈 nginx 日志分析的开源项目,大部分都做的挺简陋的,要么就是做的很重,需要部署其他服务。
既然找不到合适的,那就自己动手写一个吧!
如果看不到图片的话,直接访问我个人网站上发布的。https://www.kaisir.cn/post/186
做了 4 个模块对日志数据进行分析。

概况模块中,做了 8 个维度的数据分析。
在这个维度中,针对 http 状态码、浏览量、访客数、会话数做了更细致的划分。

每一个划分中,在详情面板里,都可以看到这个访客在什么时间做了什么事情。




这一部分可以看到每天的访问趋势以及当天与前一天的新老访客占比。

这部分可以看到访客的来源,以及每个路径的访问次数。

这部分可以看到每个省份的访问情况以及访问设备的分布情况。

在这个模块中,可以看到每天的浏览量、访客数、平均访问时长等信息。


在这个模块里,可以查看最近 5/15/30 分钟内的访问情况

这个模块就以表格的形式展示每一条日志。

为了方便使用,我已经将这个项目打包成镜像发布到 dockerhub 上了,镜像名为magiccoders/nginxpulse,可以通过 docker 的形式使用,也可以通过 docker compose 的形式使用。
需要传入的参数:
此处我以 docker compose 的形式举例:
version: "3"
services:
nginxpulse:
image: magiccoders/nginxpulse:latest
container_name: local_nginxpulse
ports:
- "9200:8088"
environment:
WEBSITES: '[{"name":"神奇的程序员","logPath":"/var/log/nginx/access.log","domains":["kaisir.cn","www.kaisir.cn"]}]' #domains 用于“来源( referer )统计”的站内/站外分类
PV_EXCLUDE_IPS: '["127.0.0.1", "::1", "10.10.0.1", "192.168.30.21"]' #pv 统计时需要排除的 ip
volumes:
- ./nginx_data/logs/all/access.log:/var/log/nginx/access.log
- ./nginxpulse_data:/app/nginxpulse_data
- /etc/localtime:/etc/localtime
restart: unless-stopped
至此,文章就分享完毕了。
我是神奇的程序员,一位前端开发工程师。
如果你对我感兴趣,请移步我的个人网站,进一步了解。