Kuldeep-Singhh/Log-Anomaly-detection-AiOps-Project
GitHub: Kuldeep-Singhh/Log-Anomaly-detection-AiOps-Project
一款基于无监督机器学习和统计学的离线日志异常检测工具,能从非结构化服务器日志中自动发现隐性性能瓶颈并关联运维排查指南。
Stars: 0 | Forks: 0
# Log-Anomaly-detection-AiOps-项目
一款智能 DevOps 可观测性工具,它应用无监督机器学习和统计分析技术来实现服务器日志分析的自动化。该应用程序可摄取上传的日志文件,分离出异常的执行模式,标记隐性的性能瓶颈,并将检测到的问题直接映射到运维手册(Runbook)的排查指南中。
## 📌 项目概述
在企业级生产环境中,系统每天都会产生数百万行非结构化日志数据。传统的日志管理严重依赖手动关键词搜索(`Ctrl+F` 或基础的 grep 规则),这无法捕捉复杂的、非线性的错误模式。此外,基于规则的系统完全无法检测到**隐性性能下降**——即应用服务器继续返回成功的 `200 OK` 状态码,但由于资源死锁或线程争用导致响应时间长得令人无法接受的事故。
本项目实现了一个离线的、自包含的分析引擎,弥合了原始数据科学与系统运维之间的鸿沟。通过将非结构化文本流解析为结构化表格,该系统无需预先标注的训练数据集或活跃的外部云连接即可分离出系统异常。
## 🚀 核心功能
* **文件摄取层:** 具有交互式拖拽文件上传器,支持标准的 `.log`、`.txt` 和 `.csv` 服务器日志格式。
* **灵活的正则表达式驱动解析:** 自动将原始日志字符串组织成结构化、标记化的指标(时间戳、日志级别、消息、状态码和延迟)。
* **无监督文本聚类:** 使用 **TF-IDF Vectorization** 将非结构化日志消息转换为高维数值矩阵,并应用 **K-Means Clustering (`n_clusters=2`)**。该 pipeline 以编程方式将基数较低的簇隔离为异常文本特征组。
* **统计性能分析(3-Sigma 规则):** 在服务器响应时间上实施高斯分布边界计算 ($\mu \pm 3\sigma$)。任何超过此动态阈值的日志行都会被标记为统计延迟离群值,从而无论文本中是否包含错误关键词,都能捕获隐性的应用程序挂起。
* **交互式运维手册查看器:** 显示一个经过筛选的仪表板表格,其中**仅**包含隔离出的异常。选中被标记的行,界面正下方会动态呈现针对性的排查指南和缓解措施。
## 🛠️ 技术栈
* **编程语言:** Python
* **仪表板界面:** Streamlit
* **机器学习 Pipelines:** Scikit-Learn (TF-IDF, K-Means Clustering)
* **数学运算:** NumPy
* **数据处理与分析:** Pandas
## ⚙️ 本地安装与设置
按照以下步骤配置环境并在您的本地计算机上运行该应用程序。
### 1. 初始化隔离的虚拟环境
创建一个本地化的环境实例,以锁定依赖项并防止系统级解释器冲突:
```
python -m venv env
```
### 2. 激活环境
--在 Windows 上:
```
.\env\Scripts\activate
```
--在 macOS/Linux 上:
```
source env/bin/activate
```
### 3. 安装依赖项
在您当前活跃的容器环境中编译所需的核心计算和可视化库:
```
pip install streamlit pandas numpy scikit-learn
```
### 4. 启动仪表板
运行 Streamlit 服务器,以便在您的默认 Web 浏览器中自动启动应用程序界面:
```
streamlit run app.py
```
标签:AIOps, Apex, API集成, Kubernetes, 可观测性, 异常检测, 机器学习, 运维监控, 逆向工具