一款轻量级 Nginx 访问日志分析与可视化面板,支持实时统计、IP 归属地解析与客户端识别
源码:https://github.com/likaia/nginxpulse
开源协议
NginxPulse 项目,遵循 MIT 协议。这意味着你可以自由使用、修改、分发,甚至用于商业产品,只需保留原始版权声明即可。
对大多数开发者和企业来说,MIT 是最友好的开源协议之一,几乎无限制。
即刻体验一波
第一种方式:拷贝nginx日志到程序下解析
假设你有一台运行 Nginx 的服务器,日志路径为 /var/log/nginx/access.log。只需三步:
-
1. 在本地创建目录:
cd /mnt
mkdir -p ./logs ./nginxpulse_data ./pgdata
###拷贝远程的nginx日志到当前目录下
cp /var/log/nginx/access.log ./logs/
-
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
-
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 条记录
更多推荐

所有评论(0)