इस प्रोजेक्ट के बारे में

BitCurrents Log Analyzer 是一款实时 Nginx 日志分析工具,构建为单页 Web 用,后端采用 Python/Flask,前端使用动态 JavaScript。它将原始 Nginx 访问与错误日志转化为聚焦安全智能、性能监控和数据可视化的交互式仪表板。 该应用提供三种独立分析模式: **通用模式** —— 提供一目了然的流量概览,包含关键指标卡片(总访问量、独立 IP 数、伪装者与可疑访问数),图表展示流量构成(人类 vs 机器人 vs 爬虫)、设备类型、操作系统与浏览器分布、HTTP 状态码、热门国家及最常访问页面。支持过滤噪声 IP 并切换“独立 IP”与“全部访问”视图。 **安全模式** —— 支持主动威胁狩猎,通过可配置的 `security_patterns.json` 实现动态威胁分类(如配置泄露、Webshell、WordPress 探测)。提供针对主要攻击类别与攻击 IP 的可视化图表,并自动检测伪装机器人——标记声称是合法爬虫但源自未验证 IP 范围的流量。 **错误模式** —— 通过智能解析常见 Nginx `error.log` 消息(如“后端不可达”、“索引禁止”)诊断服务器问题。可视化错误类型与严重等级,并内置常见错误的故障排除指南。 项目利用 IP2Location.io API 实现高精度地理定位(国家、城市、ISP 数据)及超越简单用户代理字符串匹配的高级机器人检测。同时维护 IP 缓存文件以节省 API 配额。 ### 安装与使用 前提条件包括 pyenv 和 Python 3.13.0。克隆仓库,设置虚拟环境并从 `requirements.txt` 安装依赖。需通过 `.env` 文件配置免费的 IP2Location API 密钥。后端运行命令为 `python app.py`,前端直接在浏览器中作为本地文件打开。用户指定日志目录,列出可用文件,可选指定追踪路径,点击“分析”即可。 ### Nginx 配置 为获得最佳效果,Nginx 访问日志格式应包含 `$http_referer` 和 `$http_user_agent` 变量。README 中提供了示例配置。 概念设计者:Ray Kooyenga (@deadflowers @rkooyenga)。专为 IP2Location 2025 黑客松编程竞赛创建。