From 241e4e3605750630458d86410996ee39c0df26b1 Mon Sep 17 00:00:00 2001 From: Michael Chus Date: Sat, 31 Jan 2026 00:35:10 +0300 Subject: [PATCH] Update README.md with comprehensive documentation --- README.md | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 115 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b487135..ea61a79 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,49 @@ -# logpile +# LOGPile -BMC Log analyzer +**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 @@ -21,4 +57,79 @@ open http://localhost:8080 ./bin/logpile serve --file /path/to/bmc-archive.tar.gz ``` -Требования: Go 1.22+ \ No newline at end of file +## Функционал + +### 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)