# LOGPile **LOGPile** - это инструмент для анализа диагностической информации с BMC серверов (IPMI). Представляет собой standalone Go-бинарник со встроенным веб-интерфейсом, который позволяет анализировать и визуализировать данные из архивов BMC. ## Особенности - **Поддержка различных производителей**: Supermicro, Inspur/Kaytus, Nvidia и другие - **Анализ различных типов данных**: - System Event Log (SEL) - журнал событий IPMI - Field Replaceable Unit (FRU) - серийные номера компонентов - Конфигурация сервера (CPU, RAM, диски, и т.д.) - **Встроенный веб-интерфейс**: Человекочитаемая визуализация данных - **Экспорт данных**: Поддержка экспорта в CSV, JSON и TXT форматы - **Автоматическое определение формата**: Поддержка различных форматов архивов (tar.gz, zip) ## Требования - Go 1.22+ ## Установка ### Сборка из исходников ```bash # Клонирование репозитория git clone https://git.mchus.pro/mchus/logpile.git cd logpile # Сборка make build ``` ### Быстрая установка (Linux) ```bash # Скачать последнюю версию curl -L https://git.mchus.pro/mchus/logpile/-/releases/latest/download/logpile-linux-amd64.tar.gz | tar xz # Запуск ./logpile serve ``` ## Быстрый старт ```bash # Запуск веб-сервера ./bin/logpile serve # Открыть в браузере open http://localhost:8080 # С указанием порта ./bin/logpile serve --port 9000 # С предзагрузкой файла ./bin/logpile serve --file /path/to/bmc-archive.tar.gz ``` ## Функционал ### 1. Анализ архивов - Поддержка форматов: tar.gz, zip - Автоматическое определение производителя - Извлечение всех доступных данных из архива ### 2. Парсинг данных IPMI - **System Event Log (SEL)**: Анализ событий системы - **Field Replaceable Unit (FRU)**: Сбор серийных номеров компонентов - **Конфигурация сервера**: CPU, RAM, диски, PCIe устройства, сетевые карты и т.д. ### 3. Визуализация данных - Интерактивный веб-интерфейс - Отображение событий в хронологическом порядке - Таблицы с конфигурацией сервера - Списки серийных номеров - Показания сенсоров ### 4. Экспорт данных - **CSV**: Экспорт серийных номеров в формате CSV - **JSON**: Экспорт конфигурации и событий в формате JSON - **TXT**: Экспорт текстового отчета ## Поддерживаемые производители - **Supermicro** - **Inspur/Kaytus** - **Nvidia** - **Generic** (fallback для неизвестных форматов) ## API Endpoints ``` POST /api/upload # Загрузить архив GET /api/status # Получить статус парсинга GET /api/parsers # Получить список доступных парсеров GET /api/events # Получить список событий GET /api/sensors # Получить показания сенсоров GET /api/config # Получить конфигурацию GET /api/serials # Получить серийные номера GET /api/firmware # Получить версии прошивок GET /api/export/csv # Экспорт в CSV GET /api/export/json # Экспорт в JSON GET /api/export/txt # Экспорт текстового отчета DELETE /api/clear # Очистить загруженные данные POST /api/shutdown # Завершить работу приложения ``` ## Структура проекта ``` logpile/ ├── cmd/logpile/main.go # Точка входа ├── internal/ │ ├── parser/ # Парсинг архивов и IPMI данных │ ├── models/ # Модели данных │ ├── analyzer/ # Логика анализа │ ├── exporter/ # Экспорт данных │ └── server/ # HTTP сервер и handlers ├── web/ # Embedded веб-интерфейс │ ├── static/ # CSS, JS, изображения │ └── templates/ # HTML шаблоны ├── testdata/ # Примеры архивов для тестов ├── go.mod ├── Makefile └── README.md ``` ## Лицензия Этот проект лицензирован под MIT License - смотрите файл [LICENSE](LICENSE) для получения подробной информации. ## Автор [https://mchus.pro](https://mchus.pro)