news 2026/7/22 6:54:07

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
终于找到一个好用的Nginx日志分析工具了

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

之前试过 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:latest container_name:nginxpulse ports: -"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_data restart: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,这个算是个不错的中间选择。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/22 20:51:13

Spring+asyncTool:实现复杂任务的优雅编排与高效执行

一、集成到 Spring Boot 1. 添加依赖 在项目的 pom.xml 文件中添加 asyncTool 的依赖&#xff1a; <dependency><groupId>com.jd.platform</groupId><artifactId>asyncTool</artifactId><version>版本号</version> </dependency…

作者头像 李华
网站建设 2026/7/19 11:41:57

限时抢购-服务器服务器-云服务器

限时抢购云服务器的优势 限时抢购云服务器通常伴随着大幅度的价格折扣&#xff0c;用户可以在特定时间段内以远低于常规价格的成本获取高性能计算资源。这种促销模式适合预算有限但需要快速部署业务的中小企业和个人开发者。 云服务提供商通过限时抢购清理闲置资源或推广新产…

作者头像 李华
网站建设 2026/7/23 2:24:31

使用 Certbot 在腾讯云生成 Let’s Encrypt 通配符证书完整教程

本文详细记录了在腾讯云环境下&#xff0c;通过 Certbot 获取和续期 Let’s Encrypt 通配符证书的完整流程&#xff0c;包括 DNS API 配置、通配符证书申请、常见错误及解决方案。 1️⃣ 安装 Certbot 在 Ubuntu 系统中&#xff0c;推荐使用官方 PPA&#xff1a; sudo apt up…

作者头像 李华
网站建设 2026/7/14 21:54:44

兰亭妙微实战:B 端数据可视化设计,让枯燥数据变身业务决策支撑

B端产品多涉及大量业务数据&#xff0c;如销售数据、运维数据、财务报表等&#xff0c;数据可视化设计的核心是将枯燥、复杂的数据转化为直观、易懂的图形&#xff0c;助力用户快速捕捉关键信息、做出业务决策&#xff0c;而非追求视觉炫酷。 设计前需明确数据可视化的核心目标…

作者头像 李华
网站建设 2026/7/21 19:51:46

智慧供餐冷链车辆物联网解决方案

某食品中央工厂主要面向学校、医院、企业等用户提供标准化食材&#xff0c;包括蔬菜、水产、肉禽、调味料等产品&#xff0c;通过加工后再冷链运输到目的地&#xff0c;从而确保各个食堂菜品的快速供应。现要求将冷链车辆接入工厂供应链管理平台中&#xff0c;实现冷链车辆的温…

作者头像 李华
网站建设 2026/7/22 0:21:42

paperzz 毕业论文:拯救本科毕业生的学术通关利器

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿 paperzz - 毕业论文-AIGC论文检测-AI智能降重-ai智能写作https://www.paperzz.cc/dissertationhttps://www.paperzz.cc/dissertation 当毕业季的钟声敲响&#xff0c;本科毕业生们一边忙着拍毕业照、参加散…

作者头像 李华