乐于分享
好东西不私藏

终于找到一个好用的Nginx日志分析工具了

终于找到一个好用的Nginx日志分析工具了

👇推荐大家关注一个公众号👇
点击上方 “编程技术圈“关注, 星标或置顶一起成长
后台回复“大礼包”有惊喜礼包!

日英文

What is adhere to? Is day, and one day, you tell yourself, insist again one day.

什么是坚持?就是一天,又一天,你告诉自己,再坚持一天。

每日掏心话

不要沉迷过去,不要害怕未来,过去。得失也好,成败也罢,无论快乐,还是痛苦,都过去了,你只能回忆,而无法回去。

责编:乐乐 | 来自:Java1234

链接:juejin.cn/post/7597080391880343562

编程技术圈(ID:study_tech)第 4143 期推文

往日回顾:上线了,我连夜开发充值 ChatGPT Plus 会员神器

      正文     

大家好,我是小乐

搞运维或者自己折腾服务器的朋友应该都有这个需求:想看看自己网站的访问情况。

之前试过 GoAccess、ELK 那一套,要么配置麻烦,要么太重量级。最近发现了一个叫 NginxPulse 的项目,用下来感觉还不错,分享给大家。

这是啥?

一句话:轻量级的 Nginx 日志分析面板

能干啥:

  • 实时看 PV/UV 数据
  • IP 归属地查询(国内用 ip2region 本地库,国外走 ip-api)
  • 客户端/浏览器解析
  • 支持多站点
  • 支持自定义日志格式

看下效果图:

技术栈

后端是 Go + Gin,前端是 Vue3 + Vite + PrimeVue,数据库就一个 SQLite,够轻量。

IP 归属地这块挺聪明的:先查内存缓存,然后走远程 API 批量查,失败了再用本地 ip2region 兜底。既保证速度又保证准确率。

怎么跑起来

Docker 一把梭

最简单的方式,一行命令搞定:

docker run -d --name nginxpulse \  -p 8088:8088 \  -p 8089:8089 \  -e WEBSITES='[{"name":"主站","logPath":"/share/log/nginx/access.log","domains":["example.com"]}]' \  -v /your/nginx/logs/access.log:/share/log/nginx/access.log:ro \  -v $(pwd)/var/nginxpulse_data:/app/var/nginxpulse_data \  magiccoders/nginxpulse:latest

把 /your/nginx/logs/access.log 换成你自己的日志路径就行。

Docker Compose

如果喜欢 compose,也行:

version:"3.8"services:nginxpulse:image:magiccoders/nginxpulse:latestcontainer_name:nginxpulseports:-"8088:8088"-"8089:8089"environment:WEBSITES:'[{"name":"主站","logPath":"/share/log/nginx/access.log","domains":["example.com"]}]'volumes:-./nginx_logs/access.log:/share/log/nginx/access.log:ro-./var/nginxpulse_data:/app/var/nginxpulse_datarestart:unless-stopped

跑起来之后:

  • 前端面板:http://localhost:8088
  • 后端 API:http://localhost:8089

多网站怎么配?

如果你有多个站点,WEBSITES 传数组就行:

WEBSITES='[  {"name":"主站","logPath":"/logs/main.log","domains":["www.example.com"]},  {"name":"博客","logPath":"/logs/blog.log","domains":["blog.example.com"]}]'

日志按天切割的话,支持通配符:

{"logPath""/logs/access-*.log"}

.gz 压缩日志也能直接解析,不用手动解压。

几个实用功能

1. 远端日志拉取

日志不在本机?没关系,支持 SFTP、HTTP、S3/OSS 三种方式拉取远端日志。

比如 SFTP:

{"id""sftp-main","type""sftp","host""1.2.3.4","port"22,"user""nginx","auth": { "keyFile""/secrets/id_rsa" },"path""/var/log/nginx/access.log"}

2. Push Agent

如果服务器在内网或者边缘节点,可以用 Agent 主动推送日志。在日志服务器上跑一个轻量 agent,实时把日志推到 NginxPulse 主服务。

3. 自定义日志格式

不是默认的 combined 格式?可以自定义。支持两种方式:

方式一:直接写 log_format 语法

{"logFormat""$remote_addr - $remote_user [$time_local] \"$request\" $status$body_bytes_sent"}

方式二:正则(命名分组)

{"logRegex""^(?P<ip>\\S+) - (?P<user>\\S+) \\[(?P<time>[^\\]]+)\\]..."}

4. Caddy 也支持

用 Caddy 的朋友也能用,配置 logType: "caddy" 就行,会按 JSON 格式解析。

5. 访问控制

生产环境可以加个密钥:

ACCESS_KEYS='["your-secret-key"]'

访问时需要带上 X-NginxPulse-Key 请求头,前端会自动弹窗让你输入。

常见问题

Q:跑起来后日志明细是空的?

A:多半是权限问题。给日志目录和数据目录加个权限:

chmod -R 777 /path/to/logs /path/to/nginxpulse_data

Q:有访问但是 PV/UV 都是 0?

A:默认排除内网 IP。如果想统计内网流量,把 PV_EXCLUDE_IPS 设成空数组:

PV_EXCLUDE_IPS='[]'

单体部署

如果不想用 Docker,可以构建成单个可执行文件:

./scripts/build_single.sh

会生成一个内置前端的二进制文件,直接运行就能同时提供前后端服务。支持 amd64 和 arm64。

最后

GitHub 地址:

https://github.com/likaia/nginxpulse

在线演示:

https://nginx-pulse.kaisir.cn/

目前 1.4k star,MIT 协议,可以放心用。

如果你也在找 Nginx 日志分析工具,可以试试这个。比起重量级的 ELK 或者纯命令行的 GoAccess,这个算是个不错的中间选择。

为了跟上AI时代我干了一件事儿,我创建了一个知识星球社群:ChartGPT与副业。想带着大家一起探索ChatGPT和新的AI时代

很多小伙伴搞不定ChatGPT账号,于是我们决定,凡是这三天之内加入ChatPGT的小伙伴,我们直接送一个正常可用的永久ChatGPT独立账户。

不光是增长速度最快,我们的星球品质也绝对经得起考验,短短一个月时间,我们的课程团队发布了8个专栏、12个副业项目

欢迎有需要的同学试试,如果本文对您有帮助,也请帮忙点个 赞 + 在看 啦!❤️
你还有什么想要补充的吗?


PS:欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,欢迎转发分享给更多人。

版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!

欢迎加入后端架构师交流群,在后台回复“学习”即可。

最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。在这里,我为大家准备了一份2021年最新最全BAT等大厂Java面试经验总结。

别找了,想获取史上最简单的Java大厂面试题学习资料

扫下方二维码回复面试就好了

猜你还想看

阿里、腾讯、百度、华为、京东最新面试题汇集

看看人家那权限管理系统,那叫一个优雅(附源码)!

牛逼啊!接私活必备的 400 个开源项目!赶快收藏吧(附源码合集)!

分享一个基于 Vue3.x 的数据可视化大屏项目

Element Plus二次开发而成后台管理系统,简洁实用美观大方!

本地缓存之王,Caffeine保姆级教程

使用 VPN ,一定要知道的几个真相!

亿级别大表拆分 —— 记一次分表工作的心路历程

适合个人用户使用的 6 款最佳虚拟化软件!

上周,又劝退十几个了。。。

弃用 Docker 后!哪几种超好用的容器工具能替代?

老牌知名解压缩软件 7-Zip,时隔近一年更新,仅1.5MB

,你在看吗?

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 终于找到一个好用的Nginx日志分析工具了

猜你喜欢

  • 暂无文章