[开源]一款基于 Go 语言开发的、开源轻量级 Nginx 日志分析工具

开源系统流程管理
2026-06-28 06:34 0 次浏览 • 0 次下载 0KB
[开源]一款基于 Go 语言开发的、开源轻量级 Nginx 日志分析工具

一、开源项目简介

NixVis

NixVis 是一款基于 Go 语言开发的、开源轻量级 Nginx 日志分析工具,专为自部署场景设计。它提供直观的数据可视化和全面的统计分析功能,帮助您实时监控网站流量、访问来源和地理分布等关键指标,无需复杂配置即可快速部署使用。

二、开源协议

使用MIT开源协议

三、界面展示

图片
图片
图片

四、功能概述

功能特点

  • 全面访问指标
    实时统计独立访客数 (UV)、页面浏览量 (PV) 和流量数据
  • 地理位置分布
    展示国内和全球访问来源的可视化地图
  • 详细访问排名
    提供 URL、引荐来源、浏览器、操作系统和设备类型的访问排名
  • 时间序列分析
    支持按小时和按天查看访问趋势
  • 多站点支持
    可同时监控多个网站的访问数据
  • 增量日志解析
    自动扫描 Nginx 日志文件,解析并存储最新数据
  • 高性能查询
    存储使用轻量级 SQLite,结合多级缓存策略实现快速响应
  • 嵌入式资源
    前端资源和IP库内嵌于可执行文件中,无需额外部署静态文件

五、技术选型

快速开始

1、下载最新版本的 NixVis
wget nixvis
chmod +x nixvis
2、生成配置文件
./nixvis -gen-config
执行后将在当前目录生成 nixvis_config.json 配置文件。
3、编辑配置文件 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$"
    ]
  }
}

支持自动切割的日志路径(详见 说明)

4、启动 NixVis 服务
./nixvis
5、访问 Web 界面 http://localhost:8088

从源码编译

如果您想从源码编译 NixVis,请按照以下步骤操作:

# 克隆项目仓库
git clone nixvis
cd nixvis
# 编译项目
go mod tidy
go build -o nixvis ./cmd/nixvis/main.go
# 或使用编译脚本
# bash package.sh

docker部署

1、下载 docker-compose
wget /docker/docker-compose.yml
wget /docker/nixvis_config.json
2、修改 nixvis_config.json 添加您的网站信息和日志路径
3、修改 docker-compose.yml 添加文件挂载(nixvis_config.json、日志文件)

如需分析多个日志文件,可以考虑将日志目录整体挂载(如
/var/log/nginx:/var/log/nginx:ro)。

version: '3'
services:
  nixvis:
    image: ${{ secrets.DOCKERHUB_USERNAME }}/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
4、启动
docker compose up -d
5、访问 Web 界面 http://localhost:8088

技术栈

  • 后端
    :Go语言 (Gin框架、ip2region地理位置查询)
  • 前端
    :原生HTML5/CSS3/JavaScript (ECharts地图可视化、Chart.js图表)