自部署服务 · 1.0.0-rc.1 · 2026-10-19

网站访问监测服务

从 Nginx 访问日志汇总流量、来源渠道与 IP 地区,在统计后台和地球大屏中查看访问动态。前端、API、日志采集与 IP 库更新由同一服务提供。

SHA256 校验值 · 版本说明与测试范围 · IP 数据格式及更新

当前为候选测试版本。SQLite、MySQL 集成与 IP 更新自动化测试已通过;Linux systemd 安装和 Docker 运行尚未完成端到端验证,建议先在测试环境验收。

访问分析与大屏

  • 访问趋势、页面排行、来源渠道与请求记录。
  • IP 地区展示、爬虫及异常访问特征分类。
  • 地球大屏显示有定位结果的访问 IP。
  • 认证保护,支持手机查看。

分类结果是规则判断,不能直接认定攻击者身份;无定位数据的 IP 保留在列表中。

轻量运行

  • 默认 SQLite;可配置 MySQL 8。
  • 分批导入、偏移续读、查询缓存及资源上限。
  • 日志保留策略、SQLite 备份和健康检查。
  • 地图资源本地加载,无需外部地图接口。

每个数据库运行一个采集服务。MySQL 模式需要单独安排数据库备份。

从访问记录,了解网站的实际表现

智叟云集网站访问监测服务面向企业官网、内容站点和自建业务网站。系统读取服务器上的 Nginx JSON 访问日志,将分散的请求记录整理成可查询的统计结果,让运营和技术人员围绕同一份访问数据开展分析。

企业官网与获客运营

查看产品介绍、API 文档、技术文章和下载入口的访问情况,识别用户常进入的页面,并结合来源渠道判断哪些内容更值得持续维护。已有咨询点击埋点接入后,可进一步观察咨询入口的点击次数。

内容发布与自然流量观察

按日期查看访问趋势、热门页面及搜索引擎来源,观察新文章发布后的访问变化。来源识别依赖请求携带的信息,不能据此保证获得搜索关键词,也不能直接推算搜索排名。

技术运维与异常排查

从 IP、请求路径、状态码、访问频率和客户端特征查看异常流量,辅助定位重复请求、扫描行为和高错误率访问,再结合服务器日志进一步核查。

团队展示与日常巡检

通过全球访问态势大屏展示地区分布与新增采集记录,通过运行状态查看采集进度、内存、磁盘和备份情况。桌面大屏用于集中观察,手机页面用于随时查阅。

每一类数据,都有明确的观察用途

流量与页面

页面浏览、独立 IP 和全部请求分别反映不同角度的访问情况。独立 IP 不等于独立用户:同一网络下可能有多位访客,一个访客也可能使用不同网络。热门页面帮助识别内容关注度,趋势图用于比较不同时段的变化。

来源与入口

区分直接访问、站内跳转、搜索引擎和外部网站,并查看具体来源及进入页面。没有来源字段的访问可能来自手动输入、收藏夹、二维码或应用内跳转,应按“来源未知或直接访问”理解。

IP 地区与访问特征

结合本地地区库展示国家或地区、城市等已有信息,并按规则识别爬虫、工具和疑似风险请求。地区结果是近似定位,无法表示个人的精确位置;分类也可能受到代理、共享出口和客户端标识变化影响。

服务运行与备份

运行状态用于查看服务是否持续采集、数据是否更新,以及当前资源使用情况。SQLite 模式提供本地备份,MySQL 模式由管理员安排数据库备份;本地备份仍需结合异机备份满足恢复需要。

从日志到统计的处理流程

  1. 接入日志:为 Nginx 配置文档提供的 JSON 日志格式,设置日志读取权限与站点域名。
  2. 增量采集:服务记录读取位置,分批处理新增日志,减少重复读取带来的开销。
  3. 整理入库:提取时间、IP、路径、来源和响应信息,写入 SQLite 或 MySQL。
  4. 查询汇总:后台按条件查询统计接口,结合缓存展示趋势、来源和明细。
  5. 可视化展示:地球大屏展示已有定位结果的 IP,闪烁对应新增采集记录,并可查阅访问明细。

大屏展示的是日志采集后的访问态势,并非当前在线人数。网站通过 CDN 或前置代理提供服务时,需要先正确配置可信代理和真实客户端 IP,才能避免将代理节点误当成访客。

系统界面展示

访问分析、全球访问态势与系统运行状态。以下为界面截图,统计数值对应截图时刻。

网站访问分析后台:浏览量、独立IP、访问趋势、热门页面和来源渠道

访问分析与来源统计

查看原图
全球访问态势大屏:地球IP分布、访问来源和最新采集记录

全球访问态势与 IP 地球大屏

查看原图
IP访问明细和系统运行状态:地区、风险特征、内存、磁盘和备份信息

IP 明细与系统运行状态

查看原图

选择部署方式

安装包提供代码、前端资源、配置示例和部署文档。默认使用 SQLite,适合希望减少独立组件的部署;已有 MySQL 运维体系的团队可选择 MySQL 8。两种模式切换不会自动迁移历史数据,迁移前需安排备份和数据核验。

Linux 原生服务

适合已有 Nginx、Python 3.11+ 的服务器。安装脚本建立 systemd 服务,配置管理员账号、日志路径和站点域名后启动。

sudo bash deploy/install.sh
sudoedit /etc/zhisou-monitor.env
sudo systemctl restart zhisou-monitor

Docker Compose

适合已安装 Docker Compose 的环境。提供 SQLite 默认配置和独立 MySQL 组合配置,端口仅映射到本机。

cp .env.example .env
# 编辑账号、密码、域名和日志目录
docker compose up -d --build

前端与接口通过 Nginx 的 /monitor/ 路径代理至本机 4188 端口;部署文档包含日志格式、权限、HTTPS、备份及回滚步骤。CentOS 7 / Python 3.6 不在支持范围内。

每周更新 IP 地区库

配置授权的 HTTPS 数据源后,服务按七天间隔更新。下载经过格式、范围及可选 SHA256 校验,校验通过后原子替换,并保留上一版。失败时继续使用现有数据库并记录状态,支持离线导入。

安装包不包含生产访问记录、账号密钥或第三方 IP 数据库。当前地区导入支持 IPv4;IPv6 请求可记录。应用授权与商业使用条款请联系发布方确认。

技术说明

以下说明对应安装包 1.0.0-rc.1。服务采用 Python 3.11+,同一进程提供管理页面、JSON 查询接口、日志采集和地区库更新调度;前端采用 HTML、CSS、JavaScript,地球展示使用随包提供的 Three.js 资源。运行时无需 Node.js 或 Redis。

服务架构与访问路径

网站请求 → Nginx → JSON 访问日志
                       ↓ 增量读取
                 Python 监测服务
                 ├─ SQLite / MySQL:访问记录与采集位置
                 ├─ 本地 IP 地区库:地区查询
                 └─ JSON API + 管理页面 + 地球大屏
                       ↑
管理员浏览器 → HTTPS Nginx /monitor/ → 127.0.0.1:4188

Nginx 处理公网 HTTPS,服务默认仅监听本机。代理剥离 /monitor/ 前缀后转发到应用。页面和统计接口使用应用内 Basic 认证,公网访问必须通过 HTTPS;/healthz 为不含详细统计的免认证存活检查。

采集、存储与资源控制

统计接口

以下为默认 Nginx 代理后的访问路径,返回 JSON,并要求管理员认证。这些是网站访问监测服务的接口,与 GEO AI 监测业务接口分别使用。

GET /monitor/api/summary?date=YYYY-MM-DD
指定日期的访问汇总。
GET /monitor/api/trend?days=14
按天统计的访问趋势。
GET /monitor/api/sources?date=YYYY-MM-DD
访问来源与渠道统计。
GET /monitor/api/requests?date=YYYY-MM-DD&limit=100&offset=0
分页查询请求记录,可附加 q 搜索和 status 状态筛选。
GET /monitor/api/ips?date=YYYY-MM-DD&limit=200
IP 统计与分类结果。
GET /monitor/api/globe
地球大屏数据。
GET /monitor/api/operations
服务资源、采集及备份状态。
GET /monitor/api/health
受认证保护的数据库与采集健康信息。

命令行示例使用占位域名,执行时输入自己的管理员密码:

curl --fail --user YOUR_ADMIN_USER \
  'https://YOUR_DOMAIN/monitor/api/trend?days=14'

关键配置示例

原生服务由 systemd 读取环境文件,Docker 由 Compose 加载配置。应用不会自动读取任意工作目录下的 .env。以下为部分配置,完整字段见安装包中的 .env.example:

YMING_BIND=127.0.0.1
YMING_PORT=4188
YMING_BASE_PATH=/monitor/
YMING_SITE_HOSTS=example.com,www.example.com
YMING_LOG_PATTERN=/var/log/nginx/access.json*
YMING_DB_BACKEND=sqlite
YMING_RETENTION_DAYS=30
YMING_WORKERS=4
YMING_CACHE_SECONDS=30
YMING_TIMEZONE=Asia/Shanghai

另需填写管理员账号和独立强密码。选择 MySQL 时配置 MYSQL_HOST、MYSQL_PORT、MYSQL_USER、MYSQL_PASSWORD 和 MYSQL_DATABASE;数据库账户、备份与连接权限由部署方管理。

地区库更新与故障恢复

服务内部调度地区库更新,成功更新后间隔七天再次执行,失败后间隔一天重试。下载设置大小和超时限制,验证数据范围及格式后构建临时库,再原子替换并保留旧版。未配置数据源时不发起网络更新,也无需额外安装 cron 定时任务。

SQLite 本地备份、systemd 或容器重启策略用于日常恢复,不等同于跨服务器容灾。升级前需备份配置、数据库和地区库;涉及数据库结构变化时,回滚代码还需核对并恢复匹配的数据版本。

技术资料与验证范围

当前通过 22 项 SQLite 与地区库自动化测试,以及 6 项隔离 MySQL 集成测试;安装脚本和前端脚本通过语法检查。Linux 整机安装、Docker 运行及 ARM64 尚未完成端到端验证,部署方应在实际环境验证日志接入、认证、查询和备份恢复。

完整部署、Nginx 配置及备份说明 · IP 地区数据格式 · 版本记录与已知限制

接入前常见问题

需要在每个页面安装统计代码吗?

基础访问统计来自 Nginx 日志,不要求每个页面嵌入脚本。按钮点击等页面内交互需要单独接入埋点,日志本身无法判断用户点击了哪个按钮。

能查到访客搜索了什么词吗?

只有请求实际携带相关信息时才有分析依据。搜索引擎或浏览器可能不提供完整来源及关键词,系统不会将推测词作为真实搜索词展示。

系统会自动封禁疑似攻击 IP 吗?

当前服务用于统计和排查,风险标签为规则初筛结果,不提供自动封禁。是否限制访问应结合实际请求、业务需求与已有安全措施判断。

数据保存在哪里?

访问数据保存在自行部署的 SQLite 或配置的 MySQL 数据库中,IP 地区查询使用本地数据库。管理员可按业务需要配置保留周期,并安排备份、权限管理和磁盘容量检查。

轻量化是否意味着任何流量都能处理?

系统通过增量读取、批量写入、缓存和资源限制控制开销,实际承载能力仍受日志规模、查询范围和服务器配置影响。上线前应使用自身日志验证采集延迟、查询速度和资源占用。

下载后如何开始?

先阅读安装文档,选择部署方式,配置管理员账号、日志路径和站点域名,再配置 HTTPS 代理。生成一次测试访问,确认统计记录、来源及 IP 正确后,按需启用地区库更新和备份。

获取部署与接入支持

准备好服务器系统版本、Nginx 日志格式、是否经过 CDN、预计日志量及数据库选择,便于沟通部署方案。可围绕访问分析、渠道统计、IP 地区库与大屏展示确认接入需求。