| ---
|
| 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 для более глубокого анализа
|
| - Поддержка потоковой обработки больших файлов
|
| - Экспорт результатов в различные форматы
|
| - Интеграция с системами мониторинга
|
|
|