Files
logpile/README.md

136 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)