File size: 10,297 Bytes
d6f4b44 b42458c d6f4b44 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 |
---
title: MultiAgentLogsAnalyze
emoji: 🔥
colorFrom: gray
colorTo: indigo
sdk: gradio
sdk_version: "5.23.1"
app_file: app.py
pinned: false
---
# 🔍 Мультиагентная система анализа логов
Интерактивное веб-приложение для автоматизированного анализа лог-файлов с использованием трёх логически разделённых агентов.
## 📋 Описание
Система обеспечивает автоматизированный анализ логов с:
- Структурированием данных
- Выявлением аномалий
- Интерпретацией причин и выдачей рекомендаций
## 🏗️ Архитектура
Проект реализован как мультиагентная система с **строго 3 независимыми агентами**, каждый из которых выполняет определённую функцию в цепочке анализа.
### Агент 1: Log Parser Agent (`agents/parser_agent.py`)
**Назначение:** Преобразование сырых логов в структурированное представление.
**Функциональность:**
- Разбор строк логов
- Извлечение временных меток
- Определение уровней логирования (INFO, WARNING, ERROR, CRITICAL, DEBUG)
- Извлечение сообщений
- Группировка по типам событий (CONNECTION, HTTP_REQUEST, DATABASE, AUTHENTICATION, EXCEPTION, SYSTEM, GENERAL)
**Выход:** Структурированный JSON-объект с полями:
- `events` - список всех распарсенных событий
- `errors` - список ошибок
- `warnings` - список предупреждений
- `statistics` - статистика по логам
### Агент 2: Anomaly Detection Agent (`agents/anomaly_agent.py`)
**Назначение:** Выявление аномалий и подозрительных паттернов в структурированных логах.
**Функциональность:**
- Подсчёт частоты событий
- Поиск повторяющихся ошибок
- Обнаружение временных всплесков
- Эвристический анализ последовательностей событий
**Типы обнаруживаемых аномалий:**
- **BURST_ERRORS** - всплески ошибок (более 5 ошибок в короткий промежуток времени)
- **REPEATED_ERRORS** - повторяющиеся ошибки (одна и та же ошибка более 3 раз)
- **ERROR_BEFORE_CRASH** - паттерны "ошибка перед крашем"
- **TEMPORAL_SPIKE** - временные всплески событий (превышение среднего в 2 раза)
- **REPEATED_STACK_TRACES** - повторяющиеся stack traces
**Выход:** JSON-отчёт об аномалиях с описанием, метаданными и статистикой.
### Агент 3: Root Cause & Recommendation Agent (`agents/rca_agent.py`)
**Назначение:** Интерпретация аномалий и формирование рекомендаций.
**Функциональность:**
- Определение возможных первопричин на основе типа аномалий
- Формирование человеко-читаемого отчёта в формате Markdown
- Генерация рекомендаций по устранению проблем с приоритетами
- Предоставление конкретных действий для решения проблем
**Выход:** Markdown-текст с анализом первопричин и рекомендациями.
## 🔄 Процесс анализа
Анализ выполняется последовательно:
1. **Пользователь** загружает или вставляет логи в интерфейс
2. **Agent 1** (Log Parser) обрабатывает сырые логи → структурированный JSON
3. **Agent 2** (Anomaly Detection) анализирует структурированные данные → отчёт об аномалиях
4. **Agent 3** (Root Cause) интерпретирует аномалии → Markdown с рекомендациями
5. **Результаты** отображаются в интерфейсе в трёх вкладках
## 🚀 Использование
### Локальный запуск
1. Установите зависимости:
```bash
pip install -r requirements.txt
```
2. Запустите приложение:
```bash
python app.py
```
3. Откройте браузер по адресу `http://localhost:7860`
### Использование в Hugging Face Spaces
Приложение автоматически развернётся при загрузке на Hugging Face Spaces.
## 📁 Структура проекта
```
MultiAgentLogsAnalyze/
├── agents/
│ ├── __init__.py # Экспорт агентов
│ ├── parser_agent.py # Agent 1: Log Parser Agent
│ ├── anomaly_agent.py # Agent 2: Anomaly Detection Agent
│ └── rca_agent.py # Agent 3: Root Cause Agent
├── app.py # Gradio приложение и оркестрация
├── requirements.txt # Зависимости Python
├── README.md # Документация проекта
└── space_config.yaml # Конфигурация для Hugging Face Spaces
```
## 🔧 Технические детали
### Зависимости
- `gradio>=4.0.0,<5.0.0` - веб-интерфейс
Все агенты реализованы на чистом Python 3.10+ без использования LLM или трансформеров.
### Производительность
- Поддержка анализа до 10,000 строк логов
- Время обработки ≤ 10 секунд для типичных логов
### Обработка ошибок
- Валидация входных данных
- Обработка некорректных логов без падения приложения
- Информативные сообщения об ошибках
## 🎯 Пример использования
### Пример входных логов:
```
2024-01-15 10:00:00 INFO Application started
2024-01-15 10:00:05 INFO Database connection established
2024-01-15 10:01:00 ERROR Connection timeout to external API
2024-01-15 10:01:05 ERROR Connection timeout to external API
2024-01-15 10:01:10 ERROR Connection timeout to external API
2024-01-15 10:01:15 WARNING High memory usage detected: 85%
2024-01-15 10:02:00 CRITICAL System crash detected
2024-01-15 10:02:01 INFO Application shutdown
```
### Пример выхода Agent 1 (структурированные данные):
```json
{
"events": [
{
"line_number": 1,
"timestamp": "2024-01-15 10:00:00",
"level": "INFO",
"message": "Application started",
"type": "SYSTEM"
},
...
],
"errors": [...],
"warnings": [...],
"statistics": {
"total_lines": 8,
"parsed_events": 8,
"errors": 3,
"warnings": 1,
...
}
}
```
### Пример выхода Agent 2 (аномалии):
```json
{
"anomalies": [
{
"type": "BURST_ERRORS",
"severity": "HIGH",
"description": "Обнаружен всплеск из 3 последовательных ошибок",
"count": 3,
...
},
{
"type": "ERROR_BEFORE_CRASH",
"severity": "CRITICAL",
"description": "Обнаружен паттерн: ошибка перед возможным крашем системы",
...
}
],
...
}
```
### Пример выхода Agent 3 (рекомендации):
Markdown-отчёт с:
- Анализом первопричин
- Детальным описанием аномалий
- Приоритизированными рекомендациями
- Конкретными действиями для решения проблем
## 🔌 Расширяемость
Система разработана с учётом расширяемости:
- **Независимые агенты:** Каждый агент реализован как отдельный класс и может быть заменён без изменения остальных
- **Чёткий интерфейс:** Агенты взаимодействуют через стандартизированные форматы данных (JSON)
- **Добавление новых правил:** Легко добавить новые типы аномалий в `AnomalyDetectionAgent`
- **Кастомные парсеры:** Можно расширить `LogParserAgent` для поддержки новых форматов логов
## 📝 Лицензия
Этот проект создан в рамках технического задания для демонстрации мультиагентной архитектуры.
## 🤝 Вклад
Проект готов к расширению и улучшению. Возможные направления:
- Поддержка дополнительных форматов логов
- Интеграция с LLM для более глубокого анализа
- Поддержка потоковой обработки больших файлов
- Экспорт результатов в различные форматы
- Интеграция с системами мониторинга
|