|
1 | | -项目仍在优化中,以下为预发布版 README 草案,您可以关注项目获取最新的体验资格。 |
2 | 1 | ## FastWLAT(Fast Web Log Analysis Tool) |
3 | 2 |
|
4 | | -基于 Electron + Vue 3 + TypeScript 的高性能 Web 日志分析工具。支持本地内存模式与 Redis 高性能模式,面向数十万级日志的导入、检索、分析与可视化。 |
| 3 | +基于 Electron + Vue 3 + TypeScript 的高性能 Web 日志分析工具。支持本地内存模式、Zinc(未开放)与 Redis 高性能模式(未开放)。 |
| 4 | +## 🏆 FastWLAT功能介绍 |
5 | 5 |
|
6 | | -- **跨平台桌面应用**:Windows/macOS/Linux |
7 | | -- **大数据优化**:虚拟滚动、聚合树、分批导入、增量分析 |
8 | | -- **智能分析**:威胁规则引擎、可视化图表、动态采样 |
9 | | -- **模式可切换**:本地内存模式(轻量、极速)/ Redis 模式(高性能) |
| 6 | +更详细的功能介绍,请访问 T00ls.net |
10 | 7 |
|
11 | | -## 预发布说明 |
| 8 | +### 📊 智能仪表盘 - 访问态势一目了然 |
12 | 9 |
|
13 | | -- 此 README 为预发布版,用于展示产品能力与操作指引。 |
14 | | -- 新版 Redis 模式正在持续优化:全量显示、服务器端聚合、搜索分页、导入加速方案已就绪;计划补充更高级的服务端过滤,进一步提升搜索性能。 |
| 10 | +<img width="1666" height="942" alt="image-20250901113222134" src="https://github.com/user-attachments/assets/0d74b55a-b27a-4ad9-9c79-389ba31bf932" /> |
15 | 11 |
|
16 | | -## 功能总览 |
17 | 12 |
|
18 | | -- **数据导入** |
19 | | - - 支持 Apache/Nginx/IIS/Tomcat/自定义 JSON 等格式 |
20 | | - - Web Workers 并行解析(UI 不阻塞) |
21 | | - - 超大文件自动分片、增量进度反馈 |
22 | | - - 本地模式存内存;Redis 模式入库流处理 |
23 | 13 |
|
24 | | -- **日志视图(Log View)** |
25 | | - - 列表/树状/分析三种视图模式 |
26 | | - - 高性能虚拟滚动 |
27 | | - - 过滤与搜索(状态码、IP、方法、路径、时间范围等) |
28 | | - - 树状视图(Redis 模式)采用服务器端聚合(Top URLs)秒级构建 |
29 | | - |
30 | | -<img width="554" height="294" alt="image" src="https://github.com/user-attachments/assets/d08ba216-d954-4a8b-b29e-8fe8a4707891" /> |
| 14 | +### 📥 强大导入系统 - 支持主流WEB日志格式 |
31 | 15 |
|
32 | | -<img width="554" height="294" alt="image" src="https://github.com/user-attachments/assets/0615edf1-8c74-43af-9541-3e34a91aa025" /> |
| 16 | +- **格式全覆盖**: Apache、Nginx、IIS、Tomcat等日志格式 |
33 | 17 |
|
34 | | -<img width="554" height="294" alt="image" src="https://github.com/user-attachments/assets/0794c448-aa18-401b-aa10-cb698a7588cd" /> |
35 | | -<img width="554" height="294" alt="image" src="https://github.com/user-attachments/assets/d2b75c85-f74d-4bf4-be66-33f6a8722ff0" /> |
36 | | -<img width="554" height="294" alt="image" src="https://github.com/user-attachments/assets/bede1ae9-87ef-4af3-8361-57d5a1dbcb8b" /> |
| 18 | +- **智能识别**: 自动格式检测 |
37 | 19 |
|
| 20 | +- **大文件处理**: 百万级日志处理优化 |
38 | 21 |
|
| 22 | +- **三种方式**: 文件上传、文本粘贴、示例数据快速体验 |
39 | 23 |
|
| 24 | +- 格式不兼容欢迎提供示例格式仅适配 |
40 | 25 |
|
| 26 | +<img width="1657" height="942" alt="image-20250901111015860" src="https://github.com/user-attachments/assets/bb15021a-fbfd-44a6-95e5-f0dd10f66be4" /> |
41 | 27 |
|
42 | 28 |
|
| 29 | +### 🔍 高性能日志视图 - 百万条日志秒级响应 |
43 | 30 |
|
| 31 | +- **虚拟滚动**: 支持百万级日志流畅浏览 |
44 | 32 |
|
| 33 | +- **多视图模式**: 表格、树状、聚合三种视图 |
45 | 34 |
|
| 35 | +- **毫秒级搜索**: 全文搜索、正则匹配、条件过滤 |
46 | 36 |
|
| 37 | +- **智能分页**: 动态加载,内存自动回收 |
47 | 38 |
|
| 39 | +- **快速过滤功能**: 一键剔除静态文件,一键排除404、30X等状态码日志,留下清爽的日志浏览视图,即可节省渲染性能,也可以排除分析干扰和误报 |
48 | 40 |
|
49 | 41 |
|
| 42 | +<img width="1650" height="889" alt="image-20250901111302683" src="https://github.com/user-attachments/assets/85327756-f27f-4147-9e07-f2f2c00ced24" /> |
50 | 43 |
|
51 | 44 |
|
| 45 | +**上图:** 日志列表视图,可以快速过滤、搜索和分析 |
52 | 46 |
|
| 47 | +<img width="1656" height="937" alt="image-20250901111437398" src="https://github.com/user-attachments/assets/6b259c74-f468-4123-a5d1-59391a2cfda2" /> |
53 | 48 |
|
54 | 49 |
|
| 50 | +**上图:** 树目录视图,通过日志还原出网站原本的目录结构,可以折叠、展开,支持搜索、过滤、仅显示某个路径等多种功能,出现告警日志会显示分析按钮 |
55 | 51 |
|
| 52 | +<img width="1264" height="779" alt="image-20250901111528374" src="https://github.com/user-attachments/assets/7b3566d7-33d1-4f71-8e21-e8e8274742ac" /> |
56 | 53 |
|
57 | 54 |
|
| 55 | +**上图:** 出现告警的文件会由分析按钮,点击分析按钮进行高级分析视图(仅针对当前选择的路径) |
| 56 | +<img width="1149" height="800" alt="image-20250901111625012" src="https://github.com/user-attachments/assets/601aaafc-55b9-42f7-85fd-5e09893f72a0" /> |
58 | 57 |
|
59 | 58 |
|
| 59 | +**上图:** 选择对应的文件会出现详情按钮,点击详情按钮进行详情视图(包含当前路径的所有日志进行展示) |
| 60 | +<img width="1645" height="899" alt="image-20250901111701236" src="https://github.com/user-attachments/assets/cef5584a-b86a-47f0-ba5f-17e6232c3911" /> |
60 | 61 |
|
| 62 | +**上图:** 高级分析视图,可以快速排序、搜索和分析,点击分析按钮可以针对当前路径、IP、地区、状态码等数据进行汇聚分析 |
61 | 63 |
|
62 | 64 |
|
63 | | -- **仪表盘(Dashboard)** |
64 | | - - 总量、独立 IP、带宽、响应时间等关键 KPI |
65 | | - - TOP IP、TOP 页面、错误分布 |
66 | | - - 轻量读取 Redis 统计,避免全量抓取 |
67 | | -<img width="554" height="294" alt="image" src="https://github.com/user-attachments/assets/35c122a3-c9b3-4ff3-af01-f10e80248880" /> |
| 65 | +### 📈 专业分析引擎 - 数据洞察一步到位 |
68 | 66 |
|
69 | | -- **威胁分析(Threat Analysis)** |
70 | | - - 规则引擎(可启用/禁用) |
71 | | - - 大数据优化:5 万以下全量分析,以上自动采样(可强制全量) |
72 | | - - 可视化图表:威胁等级分布、分类统计、时间线、IP 与方法画像 |
73 | | -<img width="554" height="294" alt="image" src="https://github.com/user-attachments/assets/a7f31e9d-7e53-45de-ae50-da3fbf5c6903" /> |
74 | | -<img width="554" height="294" alt="image" src="https://github.com/user-attachments/assets/2309f23e-faff-4af7-aed2-9a574a7b0eaa" /> |
| 67 | +- **多维分析**: 时间、状态码、用户代理、地理位置 |
75 | 68 |
|
| 69 | +- **趋势识别**: 24小时访问模式、异常时段检测 |
76 | 70 |
|
77 | | -- **规则管理(Rules)** |
78 | | - - 自定义规则(名称、正则、等级、分类、启停) |
79 | | - - 一键重新分析 |
80 | | -<img width="554" height="294" alt="image" src="https://github.com/user-attachments/assets/cf4896c6-ebc0-4720-b50b-af72ef34e8bb" /> |
| 71 | +- **性能分析**: 响应时间分布、错误率统计 |
81 | 72 |
|
82 | | -- **设置(Settings)** |
83 | | - - Redis 连接配置(Host/Port/Password/DB) |
84 | | - - 模式切换(local/redis) |
85 | | - - 数据与缓存管理 |
86 | | -<img width="554" height="294" alt="image" src="https://github.com/user-attachments/assets/d6d6e252-d3fd-4eb2-8454-dd7d70fc9f5d" /> |
| 73 | +  |
87 | 74 |
|
88 | 75 |
|
89 | | -## 界面导航简介 |
| 76 | +### 🛡️ 智能威胁检测 - 企业级安全防护 |
90 | 77 |
|
91 | | -- **导入页面(Import)**:选择文件/示例/粘贴文本,查看格式检测、解析进度、分批存储进度;支持超大数据自动分片与进度条反馈。 |
92 | | -- **日志页面(Log View)**: |
93 | | - - 列表:分页与虚拟滚动 |
94 | | - - 树状:本地模式使用全量构建;Redis 模式使用 Top URLs 聚合秒级生成 |
95 | | - - 分析:大数据下自动采样(可切换强制全量) |
96 | | -- **仪表盘(Dashboard)**:总览统计图与 TOP 榜单,实时指标(模拟或来源统计)。 |
97 | | -- **威胁分析(Threat Analysis)**:规则引擎、图表视图、分类/规则筛选、动态加载日志。 |
98 | | -- **规则管理(Rules)**:新增/编辑/启用/禁用规则。 |
99 | | -- **设置(Settings)**:Redis 连接、数据模式、清理数据、调试信息。 |
| 78 | +- **威胁类型**: 内置多种威胁检测规则,分析页面支持分类、筛选 |
| 79 | +- **条件引擎**: 状态码、IP、时间、返回数据包大小等多维度精准匹配 |
100 | 80 |
|
| 81 | +<img width="1646" height="898" alt="image-20250901111855549" src="https://github.com/user-attachments/assets/bb70ad6e-5223-419b-b034-0c723dc77fd1" /> |
101 | 82 |
|
102 | | -## 数据模式 |
103 | 83 |
|
104 | | -- **本地内存模式(local)** |
105 | | - - 适合小中等数据量(<40 万) |
106 | | - - 解析后直接写入内存 store |
107 | | - - 所有分析在本地完成 |
108 | 84 |
|
109 | | -- **Redis 模式(redis)** |
110 | | - - 适合大数据量(数十万至上百万) |
111 | | - - 解析后分批写入 Redis(默认每批 10000) |
112 | | - - 树视图使用服务端聚合(Top URLs)秒开 |
113 | | - - 仪表盘/分析页优先读取统计,避免全量拉取 |
114 | 85 |
|
115 | | -在设置页面可切换模式;应用在启动时会自动检测 Redis 连接(断网/不可用时回退到本地模式)。 |
| 86 | +- **二次过滤**: 告警页面支持正则表达式二次匹配,高亮显示定位匹配规则快速优化 |
116 | 87 |
|
117 | | -## 使用流程 |
| 88 | +<img width="1665" height="690" alt="image-20250901165129877" src="https://github.com/user-attachments/assets/0ba2ca85-19e0-42e3-ad71-9d82af5a7f11" /> |
118 | 89 |
|
119 | | -- **导入日志** |
120 | | - - 从文件/示例/粘贴导入 |
121 | | - - 自动格式检测(或手动指定) |
122 | | - - 并行解析 + 分片入库(Redis) |
123 | | - - 进度实时显示(解析 0-80%;存储 80%-100%) |
124 | 90 |
|
125 | | -- **浏览与过滤** |
126 | | - - 日志页面切换列表/树/分析 |
127 | | - - 按 IP/方法/状态码/路径/时间范围过滤 |
128 | | - - Redis 模式下搜索:优先聚合辅助 + 分段回填(计划增强为服务器端分页过滤) |
| 91 | +### 🗺️ 威胁地图可视化 - 全球威胁态势感知 |
129 | 92 |
|
130 | | -- **威胁分析** |
131 | | - - 加载规则 → 采样/全量分析 |
132 | | - - 查看图表、分类、TOP IP/方法、时间线 |
133 | | - - 可启用/禁用规则并重新分析 |
| 93 | +- **地理定位**: 基于MaxMind数据库的精准定位,通过优秀的前端库和地图数据进行可视化展示,将访问和攻击来源渲染到地图 |
134 | 94 |
|
135 | | -## 性能优化(已内置) |
| 95 | +<img width="1605" height="763" alt="image-20250901112155492" src="https://github.com/user-attachments/assets/955a3911-c99e-4845-a527-6bf9ebd307cd" /> |
136 | 96 |
|
137 | | -- 并行解析:Web Workers,避免 UI 阻塞 |
138 | | -- 分批入库:默认 10000/批,聚合统计合并一次性提交 |
139 | | -- 树状聚合:Redis 模式使用 `Top URLs` 聚合构建树 |
140 | | -- 虚拟滚动:大列表渲染优化 |
141 | | -- 分析采样:>5 万自动采样(可强制全量) |
142 | | -- 轻量统计:仪表盘与分析先读 Redis 统计,再补全明细 |
143 | 97 |
|
144 | | -## 已知问题与说明(预发布) |
| 98 | +- **实时动画**: 支持世界地图和中国地图进行动态展示,威胁来源一目了然 |
145 | 99 |
|
146 | | -- **Redis 搜索过滤在极大数据集下仍可能偏慢**:短期通过“聚合辅助 + 分段回填”已优化;后续将增补主进程 `queryLogs` 的 path/method/status 基础过滤与分页游标,彻底后端化。 |
147 | | -- **导入时控制台可能出现少量 URL 解码告警**:已加严格判断(仅在合法 `%xx` 时解码),不会中断导入。 |
148 | | -- **首次切换到 Redis 模式后建议重启应用**:确保预加载 API(如 `getTopUrls`)完成注入,避免 “not a function”。 |
| 100 | +<img width="1628" height="930" alt="image-20250901112300487" src="https://github.com/user-attachments/assets/6957e5ce-b1bb-4360-9728-4b34e6de5c39" /> |
149 | 101 |
|
150 | 102 |
|
151 | | -## 路线图(Roadmap) |
| 103 | +- **双模式**: 流量地图模式 ↔ 攻击地图模式无缝切换,攻击地图可以渲染出现告警的攻击数据,基于源IP和自定义防护地标进行攻击路径绘制 |
152 | 104 |
|
153 | | -- 服务器端分页过滤:`queryLogs` 支持 path/method/status + offset/limit |
154 | | -- 更丰富的图表与报表导出 |
155 | | -- 更强规则引擎(分组、权重、动作、告警) |
156 | | -- 多源采集与实时流(WebSocket/Stream) |
157 | | -- 国际化(i18n)与更多主题 |
| 105 | +<img width="1549" height="703" alt="image-20250901112325678" src="https://github.com/user-attachments/assets/54811a24-3a55-4c24-be15-1ec078da5620" /> |
| 106 | + |
| 107 | + |
| 108 | +- **交互探索**: 缩放、筛选、详情查看,点击对应的地区节点出现详情卡片 |
| 109 | + |
| 110 | +<img width="1599" height="937" alt="image-20250901112405723" src="https://github.com/user-attachments/assets/f3abfda3-8fb8-485e-86a6-de743b112667" /> |
| 111 | + |
| 112 | + |
| 113 | +### ⚙️ 灵活规则管理 - 自定义安全策略 |
| 114 | + |
| 115 | +<img width="1664" height="947" alt="image-20250901112433656" src="https://github.com/user-attachments/assets/fc04478a-08b0-4fa4-a417-3f9d7d8734db" /> |
| 116 | + |
| 117 | + |
| 118 | +- **可视化配置**: 图形界面,无需编程基础 |
| 119 | + |
| 120 | +- **条件组合**: HTTP方法、状态码、IP、时间范围、返回长度等 |
| 121 | + |
| 122 | +- **实时生效**: 规则修改即时应用,无需重启 |
| 123 | + |
| 124 | +- **高度自定义**: 可以添加删除优化告警规则,不加密,无任何限制 |
| 125 | + |
| 126 | +<img width="1310" height="712" alt="image-20250901112457905" src="https://github.com/user-attachments/assets/ac8331d7-eff0-41a8-a4cc-d2652480806b" /> |
| 127 | + |
| 128 | + |
| 129 | +### 🎨 个性化主题 - 适合每个团队的风格 |
| 130 | + |
| 131 | +- **三种精美主题**: 天空蓝、简约灰、经典蓝紫 |
| 132 | +- **一键切换**: 实时预览,用户偏好自动保存 |
| 133 | +- **现代设计**: 现代化的UI/UX设计 |
| 134 | + |
| 135 | +<img width="1791" height="989" alt="image-20250901112800633" src="https://github.com/user-attachments/assets/8892712e-834f-4496-b7f3-a4153153ada7" /> |
| 136 | + |
| 137 | + |
| 138 | +### ⚙️ 智能设置中心 - 系统优化一站式 |
| 139 | + |
| 140 | +- **三模式存储**: 本地内存、zinc(ES兼容)、Redis高性能无缝切换。目前仅开放内存模式 |
| 141 | + |
| 142 | +- **性能监控**: 实时内存使用、缓存状态监控 |
| 143 | + |
| 144 | +- **连接管理**: Redis自动重连和状态检测 |
| 145 | + |
| 146 | +- **配置持久**: 用户设置自动保存和恢复 |
| 147 | + |
| 148 | +<img width="1614" height="929" alt="image-20250901112826862" src="https://github.com/user-attachments/assets/d7394d36-56d7-4291-95b9-ed949f856862" /> |
| 149 | + |
| 150 | + |
| 151 | +## 🎉 结语 |
| 152 | + |
| 153 | +FastWLAT不仅仅是一个日志分析工具,更是我们对Web日志分析工具的方法和技巧的思考和实践结果。通过创新、高度自定义的功能实现和友好的用户界面,希望能够真正解决一部分WEB日志分析的痛点,进一步降低WEB日志分析的门槛。 |
| 154 | + |
| 155 | +相信,好的工具应该是简单易用的,强大的功能应该是开放透明的。FastWLAT的代码99%由于AI生成,后续优化完成后会进行完全开源。 |
| 156 | + |
| 157 | +程序还在不断完善中,目前版本可能存在较多的BUG,欢迎各位贡献告警规则和提出贴合实战改进建议,在程序开源前都会进行持续的优化。由于图形界面和Tree视图的影响,目前在处理大日志文件时存在一些问题,后续版本会开放Redis和Zinc模式,支持更大体量的日志导入分析。 |
0 commit comments