源码:https://github.com/likaia/nginxpulse

开源协议

NginxPulse 项目,遵循 MIT 协议。这意味着你可以自由使用、修改、分发,甚至用于商业产品,只需保留原始版权声明即可。

对大多数开发者和企业来说,MIT 是最友好的开源协议之一,几乎无限制。

即刻体验一波

第一种方式:拷贝nginx日志到程序下解析

假设你有一台运行 Nginx 的服务器,日志路径为 /var/log/nginx/access.log。只需三步:

  1. 1. 在本地创建目录:

cd /mnt
mkdir -p ./logs ./nginxpulse_data ./pgdata

###拷贝远程的nginx日志到当前目录下
cp /var/log/nginx/access.log ./logs/
  1. 2. 启动容器:

docker run -d --name nginxpulse \
  -p 8088:8088 \
  -v $(pwd)/logs:/share/logs:rw \
  -v $(pwd)/nginxpulse_data:/app/var/nginxpulse_data \
  -v $(pwd)/pgdata:/app/var/pgdata \
  -v /etc/localtime:/etc/localtime:ro \
  magiccoders/nginxpulse:latest
  1. 3. 浏览器打开 http://localhost:8088,按提示完成初始化。

     1.4  因为是拷贝过来的日志文件,会导致文件属组不一样,无法解析日志文件

###进入容器授权
docker exec -it f79b1f8 /bin/sh
chown -R nginxpulse:nginxpulse /share/logs/

几秒后,你就能看到:

  • • 实时 PV/UV 曲线

  • • 访问来源地图(国家/城市)

  • • 客户端分布(Chrome、Safari、爬虫等)

  • • 热门页面、404 列表、Referer 分析

  • • 日志明细(支持按 IP、状态码、时间筛选)

如果日志中有内网 IP(如 192.168.x.x),默认会被排除在 PV 统计外。但你可以在配置中将 PV_EXCLUDE_IPS 设为空数组,立即纳入统计。

此外,它还能自动识别 Caddy 的 JSON 日志格式,支持自定义 Nginx log_format,甚至能解析带 $http_x_forwarded_for 的代理日志——灵活性远超普通日志分析工具。

第二种方式:程序主动去读取远程服务器的nginx日志,生产适合用

在站点与日志配置:高级来源 (sources JSON)

[
  {
    "id": "sftp-jfj",
    "type": "sftp",
    "path": "/var/log/nginx/access.log",
    "compression": "auto",
    "host": "192.168.10.1",
    "port": 22,
    "user": "root",
    "auth": {
      "password": "123456"
    }
  }
]

查看程序日志输出:cat /mnt/nginxpulse_data/nginxpulse.log;如下输出,说明配置成功

网站 75e7 的远端目标 /var/log/nginx/access.log 扫描完成,解析了 6 条记录

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐