更新日志
按版本记录流盾 WAF 的功能更新与修复。升级前建议对照本页与 升级与备份 核对变更。
完整源文件见主仓库 CHANGELOG.md。
[1.0.0] - 2026-08-11
新增
- 正式公开发布的第一版
- 统一一键安装/更新脚本
install.sh(官网静态资源 + GitHub 双链接) - 脚本支持 Linux / 宝塔 / macOS(Docker Desktop),自动处理依赖、80/443 与 Nginx listen、最少交互生成
.env - 侧栏底部增加版本号(链到更新日志)与教程文档入口
- 官网页脚增加 ICP 备案号;导航增加「讨论反馈」外链
变更
- 诸多 UI 细节优化
- 文档将原分步部署改为「手动安装」;快速开始改为推荐一键命令
- AI 悬浮助手仅在 AI 总开关与「显示悬浮 AI 助手」同时开启时显示
- 侧栏去掉折叠交互,结构与移动端抽屉统一
- 官网首页 Hero 卖点调整为「开源免费 / 超高性能 / AI 驱动」
[0.3.13] - 2026-08-09
新增
- 首次安装预制数据升级:内置 IP 组、黑白名单、防护例外、限速、自定义规则与更完整的 Bot 库/分类(
builtin_seed.json) - 引擎重载失败提示附带具体原因(证书异常 / nginx 原始错误);未捕获异常也会把错误信息返回给面板
- 日志观察采样率支持按百分比设置(后台仍存 0~1,兼容百分比入参)
变更
- IP 组编辑改为「手动编辑 / 导入文件」,保存时整表覆盖,可增删条目
- 证书到期通知支持绑定多个通知通道
- Nginx 重载失败区分证书问题与引擎问题;站点保存/配置导入提示更明确
- 规则等资源「生效站点」下拉仅显示站点名称(不再附带域名)
- 备注字段统一为自适应高度文本框
- 限速维度至少保留一项;仅剩一项时禁用删除
- 管理面板 viewport 锁定缩放,减轻移动端点击输入框自动放大
- 条件编辑器、拦截页配置、速率防护、Bot 库等表单交互与文案打磨
- 宝塔部署文档补充首次部署与端口检查说明
修复
- 站点保存后引擎重载失败时不再只显示笼统提示,便于定位证书或配置问题
[0.3.12] - 2026-08-07
新增
- 证书「到期前通知」:开启后选择通知通道,按系统时区每日本地 10:00 检测,到期前 7 天内每日提醒一次
- 源站不可达时自定义错误页(502 / 503 / 504):展示对应状态码与文案,页脚复用「全局验证页页脚」配置
- 站点域名支持通配符(如
*.example.com);引擎按父域回退匹配 - 站点编辑页可内联导入 SSL 证书;证书表单抽离为共用抽屉组件
- 配置导出/导入能力;总览增加依赖健康检查
- 规则备注字段;站点 Tag 操作;日志补充客户端识别相关字段
变更
- 站点监听端口与强制 HTTPS、证书选择等表单交互优化
- 条件等于/不等于/正则改用自适应高度文本框
- 观察采样空闲默认值调整为 1.0
- 站点增删改后刷新站点选项缓存,避免日志等页面站点列表滞后
- 列表/表格与防护日志相关界面体验打磨(列宽、分页、筛选等)
修复
- ClickHouse 查询客户端正确关闭连接
- 证书创建校验失败返回 400;公钥比对对 Ed25519 更稳健
- 引擎 GeoIP 启动失败相关修复
[0.3.11] - 2026-08-06
新增
- 品牌资源支持日/夜间横版与方形 logo;新增透明
icon.png用于侧栏收起与 AI 入口 - 登录页能力卖点文案更新:覆盖反向代理、热同步、多防护模式、CC 限速、日志预警与 AI 规则辅助
变更
- Ant Design 主题改为读取
--fs-*设计令牌,与日夜间 CSS 变量统一 - 应用根层增加氛围背景;布局卡片与表格等表面样式适配半透明令牌
- 侧栏展开显示横版 logo、收起与 AI 相关入口统一使用透明图标(不区分日夜)
- 统一全站表格分页:默认每页 20 条,数据总数大于 20 时显示每页条数选择(20/50/100)
- 下拉菜单箭头、AI 会话侧栏动效、全局滚动条与若干交互样式打磨
[0.3.10] - 2026-08-03
新增
- 总览新增「近 24 小时请求趋势」折线图:同图展示请求量与回源请求量,支持 1/5/10/30/60 分钟颗粒度与站点筛选
- 新增
GET /api/v1/traffic/timeline:从 Redis 分钟环读取近 24 小时时间序列 - 总览「近 24 小时安全态势」统一站点筛选:实时请求量、请求/命中趋势、防护分布与来源、拦截国家、命中规则、攻击 IP、最新动态等板块共用同一站点
- 总览「24H 命中趋势」支持时间颗粒度选择,与请求趋势共用颗粒度设置
变更
- Redis / SQLite 流量分钟环保留由 24 小时延长至 25 小时(为 24 小时图表预留冗余)
- 移除未使用的 ClickHouse 遗留能力:内置流量突增告警(
traffic_alerts)、/traffic/intel/alerts与/traffic/intel/series接口 - 仪表盘
/overview、/summary、/feed支持site_id与trend_granularity参数 - 移动端左侧导航抽屉宽度由 280px 调整为 200px
- 防护资源列表(黑名单、速率防护、规则等)移动端「更多」菜单补全命中日志/统计等快捷操作,并将按钮右对齐
- 总览图表布局:请求/命中趋势各占一整行;移除「日志类型」卡片;防护方式分布、防护来源、拦截来源国家 Top 三等分一行
- 总览安全态势站点筛选改为纯下拉选择,不可输入搜索
- 总览「24H 请求趋势」与「24H 命中趋势」支持 tooltip 联动,并补全无数据时间桶为 0、统一 24 小时时间轴刻度
- 修复总览命中趋势 UTC 时间解析错误导致 JS 挑战等防护方式不显示;TOP 命中规则排除观察模式
- 防护日志统计「命中时间趋势」颗粒度按钮适配夜间模式
- 防护日志筛选:移动端改用底部抽屉编辑,修复弹层内操作误关闭;清空/移除 Tag 时同步关闭并重置草稿
- 防护日志筛选移动端条件行布局优化(字段+运算符、值+删除横排,条件间分割线)
- 防护日志统计:移动端统计维度改为整卡点击选择;图表与表格 loading 分离,避免 skeleton 导致高度跳动
- 防护日志/明细表格操作菜单顶部展示完整字段名;下拉菜单背景适配设计令牌
- 所有 ECharts 图表 tooltip 适配日夜间模式(背景、边框、文字色)
- 移动端表格卡片与详情 KV 标签列宽优化;防护日志明细「请求 URI」列加宽
[0.3.9] - 2026-07-31
新增
- 预警通知与 AI 防护策略的「生效站点」支持「任意站点」:任一站点满足阈值即触发(区别于「全部站点合计」与「指定站点」)
- 总览「实时请求量」各时间窗口展示回源请求量与回源 QPS
- 回源请求量:WAF 放行后按与请求量相同的时间窗口(10s–24h)记录全站/分站点回源计数,同步至 Redis 快照
- 防护规则条件新增
traffic.origin_global/traffic.origin_site(回源请求量、回源 QPS) - 预警通知与 AI 防护策略新增「回源请求量」「回源 QPS」触发条件
- AI 防护「事件记录」「防护策略」移动端改为卡片列表;
FsDataTable支持移动端卡片模式 - AI 分析记录 PC 端「分析摘要」列限制宽度并省略过长文本
部署
- App 容器启动:entrypoint 集中等待 Redis(默认 120s,可用
WAIT_REDIS_MAX_SEC覆盖);panel 在 backend 就绪后再监听 :9000,避免重启时/health反代刷屏Connection refused - App 容器启动:增加分步流程日志与就绪后品牌展示(
[startup]前缀,5 步进度 + 流盾 WAF 标语) - 还原构建默认行为:不再强制国内 Alpine/npm 镜像;
ALPINE_MIRROR改为可选 build-arg - 前端构建恢复分层
npm ci+.dockerignore排除node_modules,避免上下文空目录覆盖依赖 docker-compose.yml注释说明:Linux 宿主机构建容器出网失败时可启用build.network: host
[0.3.8] - 2026-07-23
修复
- 日志采集:Redis 客户端对非 UTF-8 字段使用
encoding_errors=replace,避免 Stream 脏数据触发UnicodeDecodeError打挂整个 worker(此前会导致防护日志断流且 CPU 指标消失) - Worker 各后台循环改为独立监督重启;采集循环内异常只退避重试,不再拖垮同进程的流量/指标任务
- 反代上游改为传递 WAF 解析后的真实客户端 IP(
X-Real-IP/X-Forwarded-For←$waf_geoip_client),修复 XFF 模式下源站拿到边缘节点 IP 的问题
总览与防护日志
- 「命中趋势」按实际出现的防护方式动态分系列(含滑动验证等);全程为 0 的方式不展示;后续新增防护方式无需改前端硬编码
流量基线
- 取消内置基线突增自动告警(不再写
traffic_alerts、打 TRAFFIC_ALERT 日志);改由预警/AI 策略的「流量高于/低于基线」条件自行配置 - 移除 AI 防护触发类型
traffic_intel.anomaly;总览卡片改称「流量与基线」,不再标红异常状态 - 实时请求量:秒桶/分钟环同步 Redis,面板与告警判断只读 Redis;SQLite 仅存稀疏分钟环轻量备份(约 30s,不含 10s);全站/分站点含 24 小时窗口
- 实时计数与基线改为仅按站点存储;仪表盘/规则「全局」为各站点动态求和,未匹配站点的请求不计入
- 基线改从窗口快照学习(与面板滑动窗口同口径);读/发布在 15 分钟刻切换时回退最近可用值,避免整段暂用基线
- 基线对齐改为轻量「按天内钟点」:不再区分星期,短窗口用小时+15 分刻,长窗口只用小时;同钟点跨天样本可叠加,学得更快
- 流量历史 ClickHouse TTL 由 90 天改为 35 天(学习回看 28 天 + 约 7 天缓冲);MergeTree 到期自动淘汰,pipeline 启动时同步已有表 TTL
- 全部站点实时 QPS:对各站请求量求和后再 ÷ 窗口(即整体每秒请求量);10s/30s 进度条满分按视图缩放(单站 10 QPS,全部站点为 10×站点数)
部署
- Docker 命名卷收敛为 3 个:
app_data(SQLite + 引擎 conf/certs)、redis_data、clickhouse_data - Compose 中 Redis 默认走 TCP;镜像不再声明 engine 子路径
VOLUME,避免匿名卷盖住app_data
[0.3.7] - 2026-07-20
站点卡片
- 站点列表改为卡片指标布局:第一行展示 24 小时总请求、拦截数、独立 IP,并附带「较昨日」对比;点击跳转对应防护日志统计页
- 第二行展示 5 / 30 / 60 分钟实时流量(请求数 + QPS)及基线偏差,样式对齐总览流量异常检测;实时流量卡片不可点击
- 底部操作改为「查看 / 编辑 / 日志 / 统计 / 更多」(更多靠右);日志与统计默认近 24 小时;「更多」中移除重复的日志入口
- 源站、证书、客户端 IP 等元信息单行显示,超出省略
总览大屏
- 「安全总览」标题区改为透明背景:左侧圆角图标 + 同行副标题,下方展示 MySQL / Redis / ClickHouse 服务状态
- 右侧两行:更新时间精确到时分秒;「自动刷新」改为文案 + 开关(自顶栏移入)
- 「最新动态」改为时间线展示,并补充站点 / 规则元信息
AI 防护
- 防御分析支持多轮工具调用:首轮仅提供近 30 分钟、最多 200 条放行日志,AI 可继续查询日志后再提交结论
- 分析结束需调用
submit_analysis;可选择不创建规则(事件状态analyzed) - 防护策略支持自定义提示词,触发分析时一并传给 AI
- AI 配置新增「显示悬浮 AI 助手」开关,可按需隐藏悬浮入口
地理字段
- 移除无数据的
geo.ip_type/geo_ip_type(引擎、字段目录、ClickHouse、规则 DSL、前端统计维度)
界面与其他
- 总览大屏流量异常检测与站点卡片基线展示对齐
- 日志筛选条件字段选择器优化;地理标签展示增强
- 表格分页在移动端改为小号无边框样式
[0.3.6] - 2026-07-20
地理字段语义化
- 日志统计与详情:城市、省/州、ASN 常见值展示中文语义(如
北京 (Beijing)、广东 (GD)、亚马逊 AWS (16509)) - 补充中国省市、美国州、常见城市与主流 ASN 映射;未知值仍显示原文
规则条件编辑器
geo.region/geo.city/geo.asn提供常见可视化选项- 国家/地理等带选项字段支持「下拉选择 + 手动输入代码」
- 多选操作改为可搜索 tags,可点选也可回车添加自定义值
界面微调
- 条件编辑器与侧栏选中态样式微调
[0.3.5] - 2026-07-20
Bot 库
- 修复 Bot 库页 Tab 切换后内容空白(对齐
fs-tabs-animated外置内容渲染) - 取消内置/自定义类型限制:Bot 与分类均可编辑、删除;仅预留分类
other不可删除 - 移除 Bot 启用/关闭开关,库内条目一律参与识别
- 本地 Bot 表格增加 UA 匹配模式列(Tag 展示)
- Bot 支持多分类:同一 Bot 可同时属于多个分类,规则按任一分类即可命中
地理与条件字段
geo.country升级为枚举字段,条件编辑器提供国家选项geo.isp等地理字段补充选项提示与中文标签映射
AI 防护
- 增强 AI 助手上下文、工具与提示词,改进待确认动作卡片与对话面板交互
[0.3.4] - 2026-07-20
修复
- 修复日志国家/地区/运营商为空:OpenResty 镜像缺少 GeoIP2 动态模块导致 entrypoint 静默跳过
.mmdb配置 - 构建阶段编译并安装
ngx_http_geoip2_module.so,启动时启用 GeoLite2 Country/City/ASN - 修复 GeoIP2 构建:正确解析
openresty/x.y.z版本(此前误用nginx/导致下载失败);模块源码改为 vendored,避免依赖 GitHub clone - GeoIP 查询源改为站点解析后的真实客户端 IP(
waf_geoip_client),避免 CDN 场景下误查边缘节点 - 若检测到
.mmdb但模块缺失,启动日志输出明确 WARN,不再静默失败
[0.3.3] - 2026-07-20
界面与交互
- 顶栏控件统一为图标按钮:自动刷新、主题切换、用户菜单视觉风格一致
- 主题切换改为太阳/月亮图标,匹配日间/夜间模式认知
- 侧栏折叠触发器改为底部图标按钮,且侧栏固定在视口高度,长页面下始终可见
- Bot 库页面布局优化:远程库与本地库信息层级更清晰
邮件通知
- 统一引入流盾品牌化 HTML 邮件模板(含标题区、内容区、页脚)
- AI 防护触发、分析中、分析结果邮件全部支持 HTML 展示
- 预警策略通知与通知通道测试邮件改为纯文本 + HTML 双格式发送
- SMTP 发送逻辑升级为标准 multipart/alternative,提升主流邮箱客户端渲染兼容性
[0.3.2] - 2026-07-20
地理维度(GeoIP)
- 新增引擎模块
geo_lookup.lua:规则提取与日志写入共用同一套 Geo 字段解析 - 日志懒补全:凡写入日志的请求均补全
geo_country/geo_region/geo_city/geo_asn/geo_isp;规则已 trace 的字段直接复用,未 trace 的仅在日志路径批量读取ngx.var(不影响未写日志的请求与未引用geo.*的规则匹配) - 内网 IP 跳过 Geo:规则匹配与日志补全前均判断
util.is_private_ip(10/8、172.16/12、192.168/16、127/8),内网地址不进行任何地理查询 - 部署支持自动启用 GeoIP2:将 MaxMind
.mmdb放入deploy/geoip/后容器启动自动生成geoip2配置;未配置时国家可回退CF-IPCountry - 仓库已附带 GeoLite2-Country / City / ASN 三库(
deploy/geoip/),开箱即用;需更新时自行下载覆盖同名文件后重启app - 大屏「来源国家」统计改为仅统计已拦截请求(
blocked = 1)
站点与 CDN
- 站点新增 客户端 IP 获取方式:支持直连 IP、
X-Forwarded-For(首/末跳)、X-Real-IP、CF-Connecting-IP、True-Client-IP、X-Client-IP;影响规则ip.src、限速、挑战、日志与 GeoIP - 单值 CDN 头模式自动生成 Nginx
real_ip配置,使 GeoIP2 与真实客户端 IP 对齐
Bot 识别
- CrawlerDetect 改为 vendored 规则:从上游 JayBizzle/Crawler-Detect 拉取 JSON,本地编译后下发引擎;移除运行时
crawlerdetectPython 依赖 - Bot 管理页展示 vendored 版本信息,支持「立即更新 vendored」;系统每 30 天自动同步上游
- 引擎日志入库时直接写入
bot_name/bot_category/ua_family;识别顺序仍为 自建 Bot 库 → vendored 爬虫规则 → UA 启发式 - Python 日志 enrich 优先信任引擎已写入的 bot 维度,减少重复判断
- 修复引擎
sync.lua未加载bots/crawler_detect导致规则与日志侧 Bot 识别失效的问题 - 引擎
bot.lua合并resolve_dimensions并缓存 vendored 正则匹配结果,避免日志 enrich 重复跑大正则 bot.name/bot.category规则求值前先确认ua.family为 bot,浏览器流量直接短路,避免重复 Bot 名称/分类判断
URL 维度对齐
- 新增引擎共享模块
uri_parse.lua,规则提取与日志写入共用同一套路径/后缀/深度/查询串解析逻辑 - 修复日志
uri_depth与规则http.uri.depth算法不一致的问题(统一为路径段数量) - 统一
uri_ext与http.uri.ext的后缀正则(支持字母、数字与连字符) - 日志列
uri重命名为request_uri(对应http.request_uri);新增uri_query(http.uri.query)、referer(http.referer) - 引擎入库时直接写入
query_count,与http.query.count对齐 - 日志统计/筛选 UI 标注与规则字段的对应关系(如
http.uri.path、http.host)
字段目录 UI 对齐
- 规则条件字段选择器与日志统计/筛选维度采用统一分类(
网络与地理/URL 与路径/HTTP 请求/客户端识别/时间与流量;日志另含防护命中) - 日志统计/筛选支持
request_uri(原始请求行)、uri_query(原始查询串)维度,与规则字段http.request_uri/http.uri.query对齐
[0.3.1] - 2026-07-20
清理
- 移除 MySQL → SQLite 一次性迁移脚本与相关依赖(
migrate-to-sqlite.sh、migrate_mysql_to_sqlite.py、aiomysql/pymysql) - 移除
.env中 MySQL 迁移专用变量与健康检查mysql兼容字段 - 总览跳转防护日志时默认时间范围改为近 24 小时(与总览数据一致)
[0.3.0] - 2026-07-20
重大架构升级:自本版本起,Docker Compose 由四容器(含 MySQL)精简为三容器;业务配置迁入嵌入式 SQLite,流水类数据统一写入 ClickHouse。从 0.2.x(MySQL 版)升级请务必阅读下方「迁移指引」。
存储架构(核心)
- 业务配置库由 MySQL 改为嵌入式 SQLite(
DB_PATH,默认/data/waf.db),Docker Compose 移除mysql服务 - 流水数据迁移至 ClickHouse 三张表:
ai_guard_incidents、alert_notification_logs、traffic_alerts - AI 对话历史(
ai_guard_chat_*)仍保存在 SQLite - 废弃遗留
rule_suggestion表与/rule-suggestionsAPI - 新增
scripts/migrate_mysql_to_sqlite.py与scripts/migrate-to-sqlite.sh一键迁移(可选导入历史流水至 ClickHouse) - 仪表盘健康检查展示 SQLite 状态(保留
mysql字段名兼容旧前端)
分析与流水层
- 新增
backend/app/services/analytics/:incident_store、alert_log_store、traffic_alert_store - AI 防护流水线、预警评估、流量异常、仪表盘动态等改为读写 ClickHouse 流水表
- 修复 ClickHouse 24 下
argMax嵌套聚合报错(incident 列表查询) - 修复
LogSampler对named_results()生成器误用len()的问题
AI 防护增强
- AI 分析完成后发送 HTML 邮件通知,含建议规则摘要与「应用规则」「忽略」操作链接
- 新增 JWT 鉴权公开接口(10 分钟有效):
/api/v1/ai-guard/incidents/actions/apply|dismiss - 面板外网地址改为 系统设置 → 显示设置 配置(
panel_public_url),首次访问自动从请求推断(含端口) - 分析记录页状态文案中文化(pending / analyzing / suggested / applied / failed / dismissed)
规则与筛选
- 站点筛选改为仅匹配明确绑定站点的规则(不含全局规则),与列表语义一致
- 迁移遗留
site_ids='null'文本由 schema patch 自动清理
运维与部署
docker-compose.yml调整为 redis + clickhouse + app 三服务- 面板 Nginx 反代补充
Host $http_host与X-Forwarded-Port,修复自动推断面板地址丢端口 .env.example、docs/architecture.md、docs/upgrade.md、deploy/baota/README.md同步更新
迁移指引(0.2.x MySQL → 0.3.0)
在已运行旧版四容器的服务器上:
bash
git pull origin main
bash scripts/migrate-to-sqlite.sh # 备份 MySQL → 迁移 SQLite/ClickHouse → 重建三容器栈全新部署直接 docker compose up -d --build,无需迁移脚本。完整步骤见 scripts/migrate-to-sqlite.sh 头部注释与 README.md。
[0.2.14] - 2026-07-20
AI 智能助手
- 完整页
/ai-guard离开再进入时自动恢复最近会话,与悬浮窗共用会话记忆 - 悬浮按钮支持拖动并记忆位置;在 AI 智能助手完整页隐藏悬浮入口
- 小屏下完整页侧栏可折叠收起,主区域全宽显示对话
- 欢迎区快捷提示宽屏横排、间距优化;会话列表去除外框留白,选中项浅底高亮
- 悬浮窗使用
v-show保持状态,关闭后再次打开不丢失对话进度
[0.2.13] - 2026-07-20
AI 智能助手
- 悬浮窗关闭后重新打开时自动恢复上次会话,不再每次重置为新对话
- 输入框上方快捷提示仅在无消息的新会话中显示
- 修复历史消息加载时
steps未定义导致助手回复无法渲染的问题
[0.2.12] - 2026-07-19
AI 智能助手
- 新增全局悬浮窗入口,支持侧栏会话列表、新对话与一键清空全部会话
- 聊天改为 SSE 真流式输出,展示思考过程、工具调用与最终回复;支持 Markdown 渲染
- AI 可自主按条件查询 ClickHouse 拦截日志与统计
- 修复历史会话仅显示用户消息、流式超时后页面空白等问题;放宽 Nginx SSE 代理超时并增加保活
- 悬浮窗 compact 模式字号优化
防护资源
- 规则、限速、黑白名单支持自定义拦截页(状态码与 HTML 模板)
- 资源管理支持 JSON 批量导入
运维
- Docker 各服务日志轮转(单文件 50MB、保留 3 份);补充 ClickHouse 相关环境变量说明
- ClickHouse 默认关闭 query_log,降低磁盘占用
[0.2.11] - 2026-07-19
流量基线
- 基线学习支持冷启动与稳定两档样本门槛:先显示初步基线,样本充足后再参与异常告警
- 历史不足时自动放宽时间槽(同星期同时段 → 同小时 → 仅小时)以加快首次出数
- 基线重算间隔由 1 小时缩短为 15 分钟;修复 ClickHouse 查询时区边界
- 总览异常检测卡片在基线未稳定时显示「学习中」
Bot 识别
- 引擎集成 CrawlerDetect 规则库,与日志 enrich 对齐,识别常见爬虫 UA
- 规则同步下发
crawler_detect配置;bot_name优先 Bot 库命中,其次爬虫签名
[0.2.10] - 2026-07-19
规则匹配
- 新增
ua.family(UA 类型)、ua.os(操作系统)条件维度,与日志统计一致 - 「包含字符串 / 排除字符串」支持多值输入(回车添加)
- 字段选择改为自定义弹层:分类小标题 + 三列按钮网格,支持搜索
总览
- 流量异常检测仅展示基线窗口(1 分钟~60 分钟),实时流量保留 10 秒 / 30 秒计数
- 优化流量与异常检测卡片布局与字号
[0.2.8] - 2026-07-18
性能
- ClickHouse 日志写入:collector 批次默认 2000、支持积压连续 drain;ingest 线程复用连接并默认开启
async_insert;默认 detach 小时聚合物化视图以降低写入 CPU(可通过CLICKHOUSE_HOURLY_MV_ENABLED=true恢复) - Worker enrich:批量共享 bot 目录快照,减少每条日志重复加载
- 引擎日志路径:
capture_baseline单次采集;多条 observe 命中仅保留最后一条日志;全匹配 catch-all observe 规则自动置底;traffic 窗口聚合仅在 worker 0 执行
日志
- 明细列表域名、IP、方法、URL 等列支持与统计页一致的快捷筛选与资源下钻
界面
- 资源管理列表移动端卡片间距优化
[0.2.7] - 2026-07-18
日志
- 修复统计/明细页「查看当前规则」等资源详情因缺少 GET 接口返回 405 的问题
Bot 库
- 顶部分类筛选支持多选,并修复选项加载后下拉为空的问题
- 表格增加备注列,移除 UA 模式与生效站点列;新增/编辑表单不再配置站点
- 分类管理表格增加备注列
[0.2.6] - 2026-07-18
日志
- 统计页与明细页共用统一筛选栏:扩展时间维度,支持多条件组合(等于/包含/不等于/不包含/模糊匹配)
- 统计表格与明细「命中规则」等维度支持点击菜单:添加到筛选、查看资源管理、下钻日志明细
- 修复「已拦截」筛选导致统计接口 500 的 ClickHouse 列名冲突问题
- 修复 URL
dimension参数在统计页未自动选中的问题 - 窄屏下时间维度改为下拉选择;统计卡片移至结果列上方
[0.2.5] - 2026-07-18
仪表盘
- 修复自动刷新时顶部时间范围不同步的问题;时间显示精确到秒
- 自动刷新轮询间隔由 5 秒调整为 8 秒
[0.2.4] - 2026-07-18
仪表盘
- 顶部时间范围与图表轴时间按系统时区正确显示;刷新前先更新时间再发起请求
- 自动刷新默认开启;改为请求完成后延时 5 秒再轮询,避免网络阻塞时并发重复请求
- 实时刷新时图表与安全动态列表静默更新,不再反复出现加载动画
界面
- 侧边栏触发器与 Logo 区域背景样式微调
[0.2.3] - 2026-07-18
流量异常检测
- 基线计算改用系统时区、15 分钟时间槽、28 天回看、中位数 + 95 分位异常值剔除
- 支持全站与各启用站点分别计算基线;引擎快照新增
sites维度 - 告警规则条件扩展
traffic.global/traffic.site,支持多时间窗口与 QPS、基线百分比比较 - 修复
options_for_field()未包含TRAFFIC类型导致时间窗口下拉选项不全的问题 - 修复 Alpine 容器缺少
tzdata时流量智能接口 502 的问题
仪表盘
- 实时流量与流量异常检测卡片支持按站点筛选
- 顶栏新增「实时刷新」开关(默认关闭,5 秒轮询,偏好写入 localStorage)
- 实时刷新时图表静默更新数据,避免重复销毁重建与加载动画闪烁
列表与日志
- 资源列表支持站点筛选、名称悬停快捷操作、规则名称解析展示
- 日志详情与统计页增强;列表筛选栏与条件编辑器小幅优化
构建
- Docker 镜像补充
tzdata;宝塔部署文档更新
[0.2.2] - 2026-07-18
修复
- 移除
logging包__init__中的预加载导入,避免导入crawler_detect时触发 enrich 循环依赖
[0.2.1] - 2026-07-18
修复
- 修复
bot_identify↔crawler_detect循环导入导致后端/worker 无法启动、管理面板 API 全部 502 的问题
[0.2.0] - 2026-07-18
Bot 识别库
- Bot 管理改为纯识别库:维护 UA 模式与分类,不再内置拦截动作;拦截请用黑白名单 / 自定义规则 / 限速,配合
bot.name、bot.category、bot.is_known条件 - 新增可管理 Bot 分类(
/api/v1/bot-categories),内置other为系统预留兜底分类 - 未命中 Bot 库但判定为爬虫时,日志
bot_category统一写入other(含 CrawlerDetect 兜底)
日志与 UA 解析
- 入库时统一解析
ua_os、ua_browser、bot_name、bot_category等维度 - UA 库升级为
ua-parser+crawlerdetect,替代停更的user-agents
构建
- Docker 依赖分层安装(
requirements-base/requirements-extra),仅增量包触发重装 - 默认使用清华 PyPI 镜像,构建过程输出分步提示
迁移提示
- 原 Bot 条目上的
action已移除,请改为自定义规则 +bot.*字段实现放行或拦截