Ctrl+D 收藏本站 再次访问不迷路 ~
NginxPulse
轻量级 Nginx 访问日志分析与可视化面板,提供实时统计、PV 过滤、IP 归属地与客户端解析。
项目功能
- 实时统计:对 Nginx 的访问日志进行实时统计分析,帮助用户快速了解当前网站的访问情况。
- PV 过滤:可以根据设定的规则对页面浏览量进行过滤,例如排除特定 IP 地址或用户代理的访问记录,从而更准确地统计有效流量。
- IP 归属地查询:通过本地数据库(ip2region)和远程 API(ip-api.com)相结合的方式,查询访问者的 IP 归属地信息,并在页面上显示,方便用户了解流量来源。
- 客户端解析:对访问者的客户端信息(如浏览器类型、操作系统等)进行解析,帮助用户了解不同客户端的访问情况。
快速开始
1. Docker 部署
- 单镜像部署:使用一个 Docker 镜像同时包含前端 Nginx 和后端服务。镜像内置 PostgreSQL 数据库,启动时会自动初始化数据库(如果未自备数据库)。必须挂载数据目录
/app/var/nginxpulse_data和/app/var/pgdata,否则容器会报错退出。 一键启动命令:
docker run -d --name nginxpulse \ -p 8088:8088 \ -v ./docker_local/logs:/share/logs:ro \ -v ./docker_local/nginxpulse_data:/app/var/nginxpulse_data \ -v ./docker_local/pgdata:/app/var/pgdata \ -v /etc/localtime:/etc/localtime:ro \ magiccoders/nginxpulse:latest- 注意事项:需要确保宿主机的
docker_local目录存在,并且文件权限设置正确,以便容器能够正常访问日志文件。如果使用配置文件方式,可以将configs/nginxpulse_config.json挂载到容器内的/app/configs/nginxpulse_config.json,若未提供配置文件或环境变量,首次启动会进入初始化配置向导。
2. Docker Compose 部署
使用远程镜像:通过 Docker Compose 文件配置服务,使用 Docker Hub 上的远程镜像。
services: nginxpulse: image: magiccoders/nginxpulse:latest container_name: local_nginxpulse ports: - "8088:8088" - "8089:8089" volumes: - ./docker_local/logs:/share/logs - ./docker_local/nginxpulse_data:/app/var/nginxpulse_data - ./docker_local/pgdata:/app/var/pgdata - /etc/localtime:/etc/localtime restart: unless-stopped启动命令:
docker compose up -d
时区设置
- 重要性:项目使用系统时区进行日志时间的解析与统计,因此需要确保运行环境的时区设置正确。
- Docker/Docker Compose 部署:
- 推荐挂载宿主机的时区文件到容器内,例如
-v /etc/localtime:/etc/localtime:ro(Linux 系统)。 - 如果宿主机提供
/etc/timezone文件,也可以额外挂载-v /etc/timezone:/etc/timezone:ro。 - 如果只想指定时区,可以通过设置环境变量
TZ=Asia/Shanghai,但需要确保容器内有时区数据(例如安装了tzdata包或挂载了/usr/share/zoneinfo)。 - 单体部署(单进程):
- 默认使用当前系统的时区。
- 可以通过环境变量临时指定时区,例如
TZ=Asia/Shanghai ./nginxpulse。
移动端访问
- 入口地址:
http://<host>:8088/m。 - 页面功能:移动端仅提供“概览”“日报”“实时”“日志”四个页面。
- 初始化要求:首次初始化必须在电脑端完成,移动端会提示用户在电脑上打开。
3. 手动构建(前端、后端)
前端构建:
cd webapp npm install npm run build移动端构建:
cd webapp_mobile npm install npm run build后端构建:
go mod download go build -o bin/nginxpulse ./cmd/nginxpulse/main.go- 本地开发:运行
./scripts/dev_local.sh脚本,启动本地开发环境,前端开发服务默认端口为 8088,并会将/api代理到http://127.0.0.1:8089。本地开发前需要准备好日志文件,放在var/log/目录下,或者确保configs/nginxpulse_config.json文件中的logPath配置指向正确的日志文件路径。
4. 单体部署(单进程)
- 重要提示:版本大于 1.5.3 后,已彻底弃用 SQLite,单体部署必须自备 PostgreSQL 数据库,并配置
DB_DSN(或在configs/nginxpulse_config.json文件中填写database.dsn)。 - 下载与执行:从项目的 releases 页面下载对应平台的二进制文件,执行后会生成单体可执行文件,该文件已内置前端静态资源,启动后即可同时提供前后端服务。
- 前端访问地址:
http://localhost:8088。 - 后端 API 访问地址:
http://localhost:8088/api/...。 - 配置方式:
- 方式 A:配置文件(默认):
方式 B:环境变量注入(无需文件):
CONFIG_JSON="$(cat /path/to/nginxpulse_config.json)" ./nginxpulse
- 在运行目录创建
configs/文件夹。 - 将
configs/nginxpulse_config.json文件放入该目录。 - 启动程序:
./nginxpulse。
- 注意事项:
- 配置文件路径为相对路径
./configs/nginxpulse_config.json,需要确保运行时的工作目录正确。
使用项目
©版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容