136 lines
5.5 KiB
Markdown
136 lines
5.5 KiB
Markdown
# 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)
|