NginxPulse---为你的网站配置日志监控

一直想给我的网站加个日志监控工具,自己写的话发现远比想象中复杂。试过宝塔面板自带的日志分析功能,结果居然要付费才能用,果断放弃。

屏幕截图 2026-04-12 155303.png

后来在 GitHub 上挖到了 NginxPulse 这个开源项目,专门用来分析 Nginx 网站日志,能清晰展示访问量、IP 分布、流量统计等数据,而且配置非常简单。

它的原理很直白:直接读取 Nginx 生成的日志文件,通过解析日志内容来生成可视化的统计报表。所以最麻烦的地方其实是让 NginxPulse 获取到你的网站日志。官方文档里提供了多种日志接入方式:本地文件、SFTP、HTTP、S3 和 Agent。如果是局域网内使用,SMB 协议兼容性最好,操作体验接近本地;如果需要跨公网远程挂载,WebDAV 是更好的选择,它基于 HTTP/HTTPS,穿透性强,还支持加密传输。

我自己也踩过 WebDAV 和 SFTP 的坑,各种权限问题折腾了半天,最终还是选择了最简单的本地部署方式,直接把 NginxPulse 和网站都部署在同一台宝塔服务器上。一来不用配置复杂的远程协议,避免了可能出现的安全问题;二来宝塔默认的日志目录是固定的,直接让 Docker 挂载这个目录最省事。而且我的网站日志本身也没有什么敏感内容,本地读取完全不用担心安全风险。

部署过程非常简单,用 Docker 一键启动就行。这里有个小坑要注意:一定要在创建容器的时候就把日志目录挂载进去,不要等容器启动后再修改,否则 Docker 可能会因为权限问题无法访问目录。

修改后的 Docker 启动命令如下:

docker run -d --name nginxpulse \
  -p 8088:8088 \
  -v /www/wwwlogs:/share/logs:ro \
  -v ./docker_local/nginxpulse_data:/app/var/nginxpulse_data \
  -v ./docker_local/pgdata:/app/var/pgdata \
  -v ./docker_local/configs:/app/configs \
  -v /etc/localtime:/etc/localtime:ro \
  magiccoders/nginxpulse:latest

关键就是这一行 -v /www/wwwlogs:/share/logs:ro​,它把宝塔默认的日志目录 /www/wwwlogs​ 以只读方式挂载到了容器内的 /share/logs​ 目录。这样 NginxPulse 就能直接读取服务器上的所有 Nginx 日志了,而且只读模式也保证了日志文件的安全,不会被意外修改。

配置完挂载后,还有一个非常重要的步骤:设置日志目录的权限。如果权限不够,NginxPulse 会无法读取日志文件。确保 /www/wwwlogs​ 目录的权限至少是 755,里面的日志文件权限至少是 644。

一切准备就绪后,打开 NginxPulse 的 Web 界面(默认端口 8088),在数据源配置中把日志路径指向 /share/logs/你的网站域名.log​,稍等片刻就能看到精美的日志统计报表了。

现在你就可以让工具读取你本地的目录,就可以监控你的网站日志,来更好的管理的网站了。

https://github.com/likaia/nginxpulse

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


NginxPulse---为你的网站配置日志监控
https://blog.shany.cc/archives/nginxpulse
作者
Shany Jin
更新于
2026年04月12日
许可协议