1b1bc74fc70ce0a428be88cf4dfc38520521fba5
Implement export to Reanimator format for asset tracking integration. Features: - New API endpoint: GET /api/export/reanimator - Web UI button "Экспорт Reanimator" in Configuration tab - Auto-detect CPU manufacturer (Intel/AMD/ARM/Ampere) - Generate PCIe serial numbers if missing - Merge GPUs and NetworkAdapters into pcie_devices - Filter components without serial numbers - RFC3339 timestamp format - Full compliance with Reanimator specification Changes: - Add reanimator_models.go: data models for Reanimator format - Add reanimator_converter.go: conversion functions - Add reanimator_converter_test.go: unit tests - Add reanimator_integration_test.go: integration tests - Update handlers.go: add handleExportReanimator - Update server.go: register /api/export/reanimator route - Update index.html: add export button - Update CLAUDE.md: document export behavior - Add REANIMATOR_EXPORT.md: implementation summary Tests: All tests passing (15+ new tests) Format spec: example/docs/INTEGRATION_GUIDE.md Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
LOGPile
LOGPile — standalone Go-приложение для анализа диагностических данных BMC.
Поддерживает два сценария:
- Загрузка архивов/снапшотов и оффлайн-анализ в веб-интерфейсе.
- Live-сбор через Redfish API с последующим экспортом и повторной загрузкой оффлайн.
Что умеет
- Standalone бинарник с embedded UI (без внешних статических файлов).
- Парсинг vendor-архивов (Supermicro, Inspur/Kaytus, NVIDIA, fallback generic).
- Live-сбор по Redfish (
/api/collect) с прогрессом и журналом шагов. - Расширенный Redfish snapshot:
- нормализованные данные (CPU/RAM/Storage/GPU/PSU/NIC/PCIe/Firmware),
- сырой
redfish_treeдля будущего анализа.
- Загрузка JSON snapshot обратно через
/api/uploadдля оффлайн-работы. - Экспорт в CSV / JSON / TXT.
Требования
- Go 1.22+
Сборка
make build
Бинарник будет в bin/logpile.
Для кросс-сборки:
make build-all
Артефакты:
bin/logpile-linux-amd64bin/logpile-linux-arm64bin/logpile-darwin-amd64bin/logpile-darwin-arm64bin/logpile-windows-amd64.exe
Запуск
./bin/logpile
./bin/logpile --port 8082
./bin/logpile --no-browser
./bin/logpile --version
Отладка падений (чтобы консоль не закрывалась):
./bin/logpile --hold-on-crash
На Windows
--hold-on-crashвключён по умолчанию.
Форматы загрузки
POST /api/upload принимает:
- архивы:
.tar,.tar.gz,.tgz - JSON snapshot (
AnalysisResult)
Live Redfish
Запуск live-сбора:
POST /api/collect
Пример body:
{
"host": "bmc01.example.local",
"protocol": "redfish",
"port": 443,
"username": "admin",
"auth_type": "password",
"password": "secret",
"tls_mode": "insecure"
}
Жизненный цикл задачи:
queued -> running -> success|failed|canceled
Статус и прогресс:
GET /api/collect/{id}POST /api/collect/{id}/cancel
Экспорт
GET /api/export/csv— серийные номераGET /api/export/json— полныйAnalysisResult(включаяraw_payloads)GET /api/export/txt— табличный отчёт по разделам UI
Имена экспортируемых файлов:
YYYY-MM-DD (SERVER MODEL) - SERVER SN.<ext>
Пример:
2026-02-04 (SYS-421GE-TNHR2) - C8X123456789.json
API
POST /api/upload
POST /api/collect
GET /api/collect/{id}
POST /api/collect/{id}/cancel
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
GET /api/export/json
GET /api/export/txt
DELETE /api/clear
POST /api/shutdown
/api/status и /api/config содержат метаданные источника:
source_type:archive|apiprotocol:redfish|ipmi(для архивов может быть пустым)target_hostcollected_at
Структура
cmd/logpile/main.go # entrypoint
internal/collector/ # live collectors (redfish, ipmi mock)
internal/parser/ # archive parsers
internal/server/ # HTTP handlers
internal/exporter/ # CSV/JSON/TXT export
internal/models/ # data contracts
web/ # embedded templates/static
Лицензия
MIT — см. LICENSE.
Description