NixVis 是一款专为自部署场景设计的轻量级 Nginx 日志分析工具,采用 Go 语言 开发并开源。它提供直观的数据可视化和全面的统计分析功能,帮助您实时监控网站流量、访问来源和地理分布等关键指标,无需复杂配置即可快速部署使用。
功能特点
- 全面的访问指标统计:实时统计独立访客数 (UV)、页面浏览量 (PV) 和流量数据。
- 地理位置分布展示:通过可视化地图清晰展示国内及全球的访问来源。
- 详细的访问排名:提供 URL、引荐来源、浏览器、操作系统和设备类型的详细访问排名。
- 灵活的时间序列分析:支持按小时和按天查看访问趋势变化。
- 多站点支持:可同时监控多个网站的访问数据。
- 增量日志解析:自动扫描 Nginx 日志文件,仅解析并存储最新数据。
- 高性能查询:采用轻量级 SQLite 数据库,结合多级缓存策略,实现快速响应。
- 嵌入式资源:前端资源和 IP 地理信息库内嵌于可执行文件中,无需额外部署静态文件,开箱即用。



快速开始
1. 二进制文件部署
下载并启动
# 下载最新版本的 NixVis (请替换为实际下载链接)
wget [NixVis下载链接]
chmod +x nixvis
# 生成配置文件
./nixvis -gen-config
执行后将在当前目录生成 nixvis_config.json 配置文件。
编辑配置文件
编辑 nixvis_config.json 文件,添加您的网站信息和日志路径。
{
"websites": [
{
"name": "示例网站1",
"logPath": "./weblog_eg/blog.beyondxin.top.log"
},
{
"name": "示例网站2",
"logPath": "/var/log/nginx/blog.log"
}
],
"system": {
"logDestination": "file",
"taskInterval": "5m"
},
"server": {
"Port": ":8088"
},
"pvFilter": {
"statusCodeInclude": [
200
],
"excludePatterns": [
"favicon.ico$",
"robots.txt$",
"sitemap.xml$",
"\\.(?:js|css|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|eot|ico)$",
"^/api/",
"^/ajax/",
"^/health$",
"^/_(?:nuxt|next)/",
"rss.xml$",
"feed.xml$",
"atom.xml$"
]
}
}
说明:配置文件支持通配符,可匹配自动切割的日志文件(如 access.log*)。
启动服务并访问
./nixvis
启动后,访问 Web 界面 http://localhost:8088 即可查看分析结果。
2. 从源码编译
如果您希望从源码编译,可以按照以下步骤操作:
# 克隆项目仓库
git clone [项目仓库地址]
cd nixvis
# 编译项目
go mod tidy
go build -o nixvis ./cmd/nixvis/main.go
# 也可使用项目提供的编译脚本
# bash package.sh
3. Docker部署
使用 Docker 可以更便捷地部署 NixVis。
下载编排文件
wget [Docker Compose文件地址]/docker/docker-compose.yml
wget [Docker Compose文件地址]/docker/nixvis_config.json
修改配置文件
修改下载的 nixvis_config.json,添加您的网站和日志路径。
修改 docker-compose.yml 文件,挂载配置文件和日志文件。
version: '3'
services:
nixvis:
image: nixvis:latest # 请使用正确的镜像名
ports:
- "8088:8088"
volumes:
- ./nixvis_config.json:/app/nixvis_config.json:ro
- /var/log/nginx/blog.log:/var/log/nginx/blog.log:ro
- /etc/localtime:/etc/localtime:ro
提示:如需分析同一目录下多个日志文件,可以考虑挂载整个日志目录(如 /var/log/nginx:/var/log/nginx:ro)。
启动服务
docker compose up -d
启动后,同样访问 http://localhost:8088 即可。
技术栈
- 后端:Go (Gin框架)、ip2region (IP地理位置查询)
- 前端:原生 HTML5/CSS3/JavaScript、ECharts (数据可视化)、Chart.js (图表绘制)