-
logpile v1.31 Stable
released this
2026-09-01 12:11:42 +03:00 | 23 commits to main since this releaseПарсеры
nvidia_bug_report: извлечение ошибок GPU Xid/SXid (ADL-055)
Парсер теперь сканирует
nvidia-bug-report-*.log.gzна строкиNVRM: Xid/
NVRM: SXidи выдаёт события с эвристической классификацией «железо против
нагрузки» по каталогу Xid-кодов. Лавинообразный поток одного NVLink-сообщения
(наблюдалось 114 440 строк за раз) сворачивается в одно суммарное событие.Одиночные .gz больше не обрезаются фиксированным лимитом (ADL-054)
Распаковка одиночного gzip-файла ограничивается не жёстким потолком в 50 МБ, а
защитой по коэффициенту сжатия (300:1) и абсолютным потолком 1 ГБ. Большие
bug-report-логи (пример: 53 МБ в распакованном виде) проходят целиком.Inspur: часовые пояса, PPIN, активные отказы NVMe
- Уровень события берётся из RFC 5424 PRI; SEL-записи без смещения времени
разрешаются по временной шкале из IDL-записей с явным смещением; убраны
фиктивные записи 1970 года (ADL-056). - PPIN процессора экспортируется как серийный номер CPU; активные отказы
NVMe-накопителей (dev_status.log, IDL Assert/Deassert) проецируются на статус
hardware.storage(ADL-057).
Inspur: комбинированный component.log без devicefrusdr.log / asset.json (ADL-064)
- Блок
RESTful FRU info:теперь разбирается — из него берутся производитель,
модель, партномер и системный UUID платы (раньшеboardсодержал только
серийный номер,stats.fruбыл 0). - Поле
fans_powerприходит как float (12.000000) — из-за типаint
json.Unmarshalвсего блока падал и терял все датчики вентиляторов. - Из версий прошивок (
RESTful version info) срезается суффикс со временем
сборки (08.05.01 (02/21/2024 16:51:27)), иначе он вызывает событие
FIRMWARE_CHANGEDпри каждом импорте. - Разбор строк SOL smartd в формате SCSI/SAS.
xFusion: согласование выгрузок BMC и live-CD одного сервера (ADL-061, ADL-062)
- Общая нормализация в экспортёре: метки слотов памяти, модели дата-центровых
GPU, тип и интерфейс накопителей, фильтрация onboard-контроллеров и служебных
USB-флешек. - OCP NIC выдаётся по одной записи на PCI-функцию без серийного номера, чтобы обе
выгрузки ключевали порты по MAC и не порождали ложные install/remove. - Строки
mem_infoвосстанавливаются при попадании байта0x0Aв SPD-поле BOM
(исчез фантомный DIMM «slot s»).
xFusion: размер накопителей из disk_info (ADL-063)
Capacity : 6.986 TBтеперь разбирается (единицы TB/бинарные) вsize_gb.
РаньшеSscanf("%f GB")не совпадал иsize_gbоставался 0 для всех NVMe.HPE iLO AHS: дедуп DIMM по слоту (ADL-060)
Инвентарь памяти сворачивается по одной записи на слот, выигрывает самый свежий
POST-снимок. Замена модуля в слоте больше не даёт лишний модуль (было 26 на
24-слотовой плате).easy_bee: поддержка bee-support v12+
bee-audit.jsonиruntime-health.jsonищутся не только вexport/
(в v12+ они лежат вtasks/_state/иstatus/).models: PPIN как общий фолбэк серийного номера CPU (ADL-058)
models.ResolveCPUSerialNumberцентрализует правило: явный серийник в приоритете,
иначе валидный PPIN. Применяется в Dell, H3C, Inspur, Redfish и на границе
API/экспорта. Идентификатор никогда не выводится из сокета, модели или чужого
компонента.Redfish-коллектор
- Восстановление GPU и NIC, терявшихся на Redfish-выгрузках xFusion G5500.
- Дедуп GPU и разрешение модели по тексту на платах xFusion без PCI-идентити.
- RAID/HBA-контроллеры поднимаются из
Storage.StorageControllers[]. - Адрес preflight-ping собирается через
net.JoinHostPortдля IPv6-хостов.
Экспорт в Reanimator
- Сбор и экспорт
storage.vendor_id/device_id(контракт ingest v2.13, ADL-053). - Дедуп NIC по нормализованному MAC; убран мусорный фолбэк серийника из redis.
- Устройства PCIe/GPU/NIC с шириной линии ниже согласованной помечаются
Warning. - Удалено мёртвое поле
bmc_event_summary; исправлена потеря статуса для CPU/GPU Inspur. - Канонический дедуп PCIe ключуется по BDF раньше серийника.
- Дизамбигуация коллизий слотов PSU и памяти; слоты PSU назначаются по порядку
серийников; исправлен дедуп памяти, схлопывавший разные DIMM. - Исправлены обрезание больших tar.gz и подстановка пустого
device_class.
Инструменты
- Новый офлайн-CLI
logpile-cpu-auditдля аудита идентити процессоров, с режимом
-reanimatorдля готовых ingest-пейлоадов (ADL-059). - Пакетная конвертация выполняется на пуле воркеров.
Документация
bible-local: ADL-054 … ADL-064.
Запуск на macOS
Снимите карантинный атрибут через терминал:
xattr -d com.apple.quarantine /path/to/logpile-darwin-arm64
После этого бинарник запустится без предупреждения Gatekeeper.Downloads
- Уровень события берётся из RFC 5424 PRI; SEL-записи без смещения времени
-
logpile v1.26 Stable
released this
2026-08-11 12:12:51 +03:00 | 50 commits to main since this releaseЧто нового
Исправление: Dell TSR с iDRAC10 показывал только логи, без аппаратного инвентаря
Новое поколение прошивки iDRAC10 больше не кладёт в TSR-архив
sysinfo_dcim_view.xml/sysinfo_dcim_softwareidentity.xml/
sysinfo_cim_sensor.xml, на которых был основан весь разборhardwareу
парсераdell. Вместо них архив содержитredfishidracwalk.tar.gz— снятый
дамп собственного Redfish-дерева iDRAC (по одному JSON-документу на ресурс).
Из-за этого CPU/память/диски/PCIe/GPU/NIC/БП оставались пустыми, хотя
события Lifecycle Controller (curr_lclog.xml) парсились нормально — отсюда
и впечатление «видны только логи».Добавлен общий пакет
redfishtree, который распознаёт такой дамп
(по имени файла + структурной проверке содержимого — сервисный корень
/redfish/v1и коллекцияSystems/Chassis) и прогоняет его через уже
существующий Redfish-replay движок. Парсерdellтеперь дополняет данные
из DCIM-XML этим источником, когда DCIM-файлов нет. Заодно зарегистрирован
низкоприоритетный резервный парсерredfish_walk— на случай, если такой
же формат дампа начнут отдавать и другие вендоры.Исправление: повторная загрузка выгруженного
reanimator.jsonтеряла память и блоки питанияПри экспорте в формат Reanimator поля
presentдля памяти и БП никогда не
проставлялись в выгружаемый JSON (в отличие от накопителей, где это работало
верно). При повторной загрузке ранее экспортированногоreanimator.json
обратно в LOGPile (например, через вкладку Reanimator) это приводило к тому,
что вся память и блоки питания пропадали из отчёта — при том, что после
первичного разбора архива они отображались верно.Новое: сбор и выгрузка лицензий (
hardware.licenses[], контракт Reanimator v2.12)LOGPile теперь собирает лицензии/активации функционала по подписке
(feature-on-demand, advanced-лицензии BMC и т.п.) из стандартной
Redfish-коллекцииLicenseService/Licensesи выгружает их по новой секции
контрактаhardware.licenses[]. Пока источник данных — только
Redfish-дамп iDRAC10 (см. выше); для других вендоров такого источника ещё
нет. Лицензии видны и в веб-отчёте (/chart/current).Запуск на macOS
Снимите карантинный атрибут через терминал:
xattr -d com.apple.quarantine /path/to/logpile-darwin-arm64
После этого бинарник запустится без предупреждения Gatekeeper.Downloads
-
logpile v1.25 Stable
released this
2026-07-29 10:32:52 +03:00 | 55 commits to main since this releaseЧто нового
Новое: раздельная идентичность NVIDIA HGX tray/baseboard (Inspur/Kaytus)
Для onekeylog-дампов Inspur/Kaytus (HGX B200, KR9288-X3) парсер раньше отдавал
в качестве идентичности «GPU-платы» только механический FRU-серийник вендора
(component/fru.txt,Board Product : CA) — это серийник карриера/трея,
привязанный к шасси, который не меняется при замене самой NVIDIA
HGX-платы (SXM+NVSwitch, «delta board»). Из-за этого анализ замены платы по
серийнику давал ложный вывод «плату не меняли».Теперь парсер читает настоящую аппаратную идентичность (Model/PartNumber/
SerialNumber для HGX tray и HGX baseboard) из
log/bmc/oem-commer-log/HGX_HWInfo_FWVersion.logи отдаёт её отдельной
сущностью инвентаря (HardwareConfig.HGX), не смешивая с общим FRU. Заодно
значения-заглушки Redfish (NA/N/A) для отключённых GPU больше не
просачиваются в серийник/модель/партномер.Исправление: HGX-парсер больше не терял повторяющиеся алармы
ParseIDLLogдедуплицировал события поeventID|eventType|description—
для повторяющегося аларма (например, флапающая проверка присутствия PCIe
на HGX-платах Inspur) это одинаково для каждого повторения, и все повторные
occurrences схлопывались в первое. В результатеapplyGPUStatusFromEvents
считал состояние GPU по устаревшему, урезанному списку событий и мог
пометить сбойный GPU как исправный. Дедупликация теперь учитывает и
временную метку, так что повторяющиеся алармы больше не теряются.Новое: поддержка ещё одного варианта onekeylog-раскладки Inspur HGX
Дампы вида
dump_<serial>_<timestamp>/(проверено на HGX B200, KR9288-X3)
используют раскладку безdevicefrusdr.log:- FRU и sensors парсятся из сырого текстового вывода
ipmitool
(component/fru.txt,component/sensor.txt/sdr.txt). - PCIe/GPU presence и link state читаются из структурного снапшота
log/bmc/diagnose/OtrdDiagnoseComponent.json, независимо от истории
алармов SEL/IDL; устройства ниже согласованной max link speed/width
помечаются как degraded. - SEL при отсутствии
selelist.csvберётся изlog/sel.csv. - Сбои BMC-компонентов (
log/bmc/commer-comp/*, включая ротированные
*.tar.gz.N) парсятся в события отдельно от SEL/IDL. - Дубликаты SEL-событий из разных источников схлопываются по
(timestamp, event_type, description). - Если после всех fallback'ов FRU/sensors всё ещё пусты, это теперь видно
какCollectionError, а не тихо пустой инвентарь.
На проверочном дампе: fru 0→21, sensors 0→303, 8 GPU видны на Gen5 x16 в
слотах 100-107.Запуск на macOS
Снимите карантинный атрибут через терминал:
xattr -d com.apple.quarantine /path/to/logpile-darwin-arm64
После этого бинарник запустится без предупреждения Gatekeeper.Downloads
- FRU и sensors парсятся из сырого текстового вывода
-
logpile v1.24 Stable
released this
2026-07-23 12:26:11 +03:00 | 59 commits to main since this releaseЧто нового
Исправление: не разбирались блоки питания и вентиляторы в некоторых onekeylog-дампах Inspur/Kaytus
Часть прошивок BMC Inspur/Kaytus выгружает onekeylog-дамп без единого
component/component.log: вместо этого каждый компонент лежит в отдельном
файлеcomponent/*.txtв виде сырого D-Bus GetAll-транскрипта
(GETALL <object> OBJectс табличными триплетами"field" "type":"x" "data":value, не валидный JSON). Парсерinspurчитал только
component.log, поэтому на таких дампах блоки питания и вентиляторы
всегда оказывались пустыми, хотя исходные данные присутствовали.Добавлен построчный разбор этого формата: PSU — из
PowerSupplyInfo.txt,
телеметрия вентиляторов (RPM и PWM %) — изFanInfo.txt. Заодно исправлена
дедупликация повторяющихся D-Bus объектов внутри одного файла (например,
Pwm_Nвстречается в двух разных секциях команд с разным набором полей) —
раньше более поздняя секция без показаний могла затирать уже прочитанное
значение.Запуск на macOS
Снимите карантинный атрибут через терминал:
xattr -d com.apple.quarantine /path/to/logpile-darwin-arm64
После этого бинарник запустится без предупреждения Gatekeeper.Downloads
-
released this
2026-06-19 15:20:57 +03:00 | 64 commits to main since this releaselogpile v1.23
Дата релиза: 2026-06-19
Тег:v1.23Что нового
Исправление: HPE iLO AHS файлы больше 10 МБ не обрезаются
AHS-файлы могут весить сотни мегабайт (типичный пример — 104 МБ). Универсальный
лимит в 10 МБ молча обрезал их, из-за чего парсер видел лишь начало файла и
извлекал неполный список событий.Теперь лимит зависит от расширения:
.ahs— до 1 ГБ, прочие
одиночные файлы (.txt,.log) — прежние 10 МБ.Для AHS-файла размером 104 МБ количество распознанных событий увеличивается
с ~529 до ~12 600.Запуск на macOS
Снимите карантинный атрибут через терминал:
xattr -d com.apple.quarantine /path/to/logpile-darwin-arm64
После этого бинарник запустится без предупреждения Gatekeeper.Downloads
-
released this
2026-06-19 15:11:46 +03:00 | 66 commits to main since this releaselogpile v1.22
Дата релиза: 2026-06-19
Тег:v1.22Что нового
HPE iLO AHS — новый парсер
Добавлена поддержка файлов
*.ahs(Active Health System), экспортируемых
из веб-интерфейса iLO. Парсер извлекает:- Инвентарь оборудования: плата, процессоры, память, диски, сетевые
адаптеры, блоки питания, backplane, RAID-контроллеры. - Прошивки: iLO, System ROM, SPS, TPM, SPLD, контроллеры, NIC, backplane —
из основного бинарного контейнера и XML-сертификатаbcert.pkg. - События: разбор
.zbb-файлов с журналом iLO; определение типа и
серьёзности по тексту сообщения; очистка однобайтовых frame-сепараторов
из концов строк. - Устойчивость к битым файлам: если последняя запись в AHS-контейнере
обрезана (объявленный размер выходит за границу файла), парсер обрабатывает
данные частично вместо возврата ошибки. - Добавлено распознавание модельного ряда Alletra Storage Server (ранее
ProductNameоставался пустым).
Экспорт логов в CSV («Logs Export»)
Новая кнопка «Logs Export» в шапке интерфейса выгружает все
распознанные события (без какой-либо фильтрации) в CSV-файл:- Разделитель — точка с запятой (
;), кодировка — UTF-8 с BOM. - Файл открывается в Excel без дополнительных настроек импорта.
- Колонки:
timestamp,source,severity,sensor_type,sensor_name,
event_type,id,description,raw_data.
Кнопка «PDF» удалена.
Исправления в Reanimator-экспорте
event_logsв JSON-экспорте Reanimator больше не оказывается пустым для
HPE iLO AHS: источник"HPE iLO"теперь корректно нормализуется в"bmc".
Исправления chart viewer
- JavaScript
view.jsне загружался в LOGPile из-за отсутствия перезаписи
пути/static/view.js→/chart/static/view.js. Исправлено; фильтры
по колонкам в таблицах теперь работают. - Субмодуль chart обновлён до v2.7: фильтры вынесены в отдельную строку
под заголовком, исправлена минимальная ширина колонок.
Обновления зависимостей
- pci.ids (база PCI-устройств) обновлена. Коллектор скорректирован под
переименование0x8086:0x28c0:"Volume Management Device NVMe RAID Controller"→"Volume Management Device (VMD)".
Запуск на macOS
Снимите карантинный атрибут через терминал:
xattr -d com.apple.quarantine /path/to/logpile-darwin-arm64
После этого бинарник запустится без предупреждения Gatekeeper.Downloads
- Инвентарь оборудования: плата, процессоры, память, диски, сетевые
-
# logpile v1.21 Stable
released this
2026-06-15 17:56:17 +03:00 | 67 commits to main since this releaseЧто нового
Inspur/Kaytus (onekeylog) — серийные номера дисков из SOLHostCapture.log
Когда RAID-контроллер (например, Microchip PM8204-2GB) подключён напрямую через PCIe,
BMC возвращает пустой массив в секцииRESTful HDD info. Серийники дисков теперь
восстанавливаются из вывода smartd вSOLHostCapture.log:- Обрабатываются оба экземпляра файла (
log/sollog/иrunningdata/var/sollog/),
серийники дедуплицируются по обоим источникам. - Три прохода обогащения: совпадение по модели → позиционное заполнение пустых
backplane-слотов → добавление новых записей. - Определяется тип (SSD/HDD), производитель, прошивка и ёмкость.
Inspur/Kaytus — корректное определение live-сбора на NF-серверах
NF-серверы хранения (например, NF5280M6) не имеют GPU-топологии, из-за чего
Redfish-коллектор раньше не мог идентифицировать их как Inspur и переходил в
режим fallback с AMI-профилем, пробуя несуществующие пути/Oem/Ami.Добавлено определение по
SystemManufacturer/ChassisManufacturer: значение
"Inspur"теперь даёт 60 очков — достаточно для входа в matched-режим без
GPU-сигналов.Inspur/Kaytus — исправление IDL-событий GPU (Assert/Deassert)
- Deassert-события больше не отбрасываются как дубликаты Assert — в ключ дедупликации
добавленEventType. - Deassert корректно снимает критический статус GPU: раньше GPUы оставались в Critical
даже после сброса аварии. - В экспорт Reanimator добавлена секция
bmc_event_summary— дедуплицированная таблица
критических и предупреждающих событий со статусом Active/Resolved на основе пар
Assert/Deassert.
UI — кнопка PDF
Добавлена кнопка «PDF» в шапку отчёта. При нажатии отчёт открывается в новой
вкладке, откуда можно сохранить в PDF через системный диалог печати браузера.Внутренние изменения (bible-контракты)
- Идентификаторы нормализованы через
strings.EqualFold(H3C-парсер). - CSV-экспорт: UTF-8 BOM + разделитель
;. - Все русскоязычные строки в исходниках переведены на английский (ADL-007).
Jobрасширен полямиType,Message,Result.- List-эндпоинты обёрнуты в конверт
{items, total_count, page, per_page, total_pages}. - Страницы ошибок рендерят footer с версией.
- Логирование переведено на
log/slogсо структурированными атрибутами.
pci.ids обновлён
База идентификаторов PCI-устройств обновлена до актуальной версии от 2026-06-15.
Запуск на macOS
Снимите карантинный атрибут через терминал:
xattr -d com.apple.quarantine /path/to/logpile-darwin-arm64
После этого бинарник запустится без предупреждения Gatekeeper.Downloads
- Обрабатываются оба экземпляра файла (
-
released this
2026-06-12 03:58:55 +03:00 | 73 commits to main since this releaseNF-series storage servers (e.g. NF5280M6) have no GPU/outboard-PCIe
topology, so the previous score gate (topologyScore==0 || boardScore==0
→ return 0) always produced score=0 despite SystemManufacturer="Inspur"
being available. These servers fell into mode=fallback, activating the
AMI profile and probing /Oem/Ami paths that don't exist on the BMC.Add manufacturer-based detection: SystemManufacturer or
ChassisManufacturer containing "inspur" contributes 60 points —
enough to enter matched mode on its own. GPU servers with full
topology+board signals still score higher as before.Downloads
-
released this
2026-05-28 03:38:04 +03:00 | 76 commits to main since this releaseThree related fixes for IDL event processing:
-
idl.go: include EventType in dedup key so Deassert events are no
longer silently dropped as duplicates of their Assert counterparts. -
gpu_status.go: treat Deassert events as clearing all GPU faults —
previously the code re-applied the same faulty GPU set from the
description, leaving GPUs stuck in Critical even after alarm cleared. -
reanimator_models/converter: add bmc_event_summary section to the
Reanimator export — a deduplicated Critical/Warning event table with
Active/Resolved status derived from Assert/Deassert pairs.
Downloads
-
-
logpile v1.17 Stable
released this
2026-05-21 14:37:26 +03:00 | 77 commits to main since this releaseЧто нового
Inspur/Kaytus (onekeylog) — исправления парсера
-
CPU не парсились из
component.log— в архивах безasset.jsonколичество процессоров всегда было 0. Добавлен парсинг секцииRESTful CPU infoвcomponent.logкак fallback. Заодно устранена коллизия при десериализации JSON: поле"PROC_ID"(строка с CPUID) и"proc_id"(int) совпадали по имени в case-insensitive режиме Go и вызывали ошибку при разборе. -
DIMM показывался как отсутствующий при
size=0— часть прошивок BMC не возвращает ёмкость для установленного модуля, оставляяmem_mod_size=0. Раньше такой модуль помечался какPresent=falseи не отображался. Теперь DIMM считается установленным, еслиstatus=1и заполнен хотя бы один из атрибутов: размер, серийный номер, парт-номер. -
Ёмкость DIMM восстанавливается по парт-номеру — если несколько модулей одного парт-номера в одном архиве, и у части из них
size=0, — пустые значения заполняются по аналогии с остальными модулями той же партии. -
Версия микрокода не показывалась у второго процессора — дедупликация по значению версии удаляла запись
CPU1 Microcode, когда оба сокета работают на одной версии. Теперь каждый CPU получает собственную запись в таблице прошивок. -
Потеря данных по PSU при наличии ошибки PCIE-секции — регулярное выражение для парсинга блока питания использовало
RESTful Networkкак правый якорь. В стандартном layoutscomponent.logмежду секцией PSU и Network Adapters располагается секция PCIE Devices, которая в этом архиве возвращала JSON с ошибкой. Ленивый[\s\S]*?захватывал содержимое через ошибочный блок, формируя невалидный JSON и теряя все данные PSU. Якорь изменён наRESTful (?:PCIE|Network).
Новая возможность: отображение ошибок сбора BMC
Когда секции
component.log(HDD, PCIe Devices, Network Adapters, Disk Backplane) возвращают{"error":"...","code":N}вместо данных, парсер теперь:- сохраняет ошибки в
AnalysisResult.CollectionErrors(новое поле модели); - зеркалирует каждую в поток
EventsсSource=BMC/<section>, чтобы они были видны в таблице событий; - передаёт их в
/api/parse-errors.
В UI под iframe добавлена сворачиваемая панель «Collection diagnostics», которая появляется при наличии предупреждений от
/api/parse-errors.Chart viewer — фильтры по столбцам
Обновлён субмодуль chart до v2.0: в таблицах событий заменён общий dropdown на фильтры в заголовке каждого столбца.
pci.ids обновлён
База идентификаторов PCI-устройств обновлена с 2026-02-17 до 2026-05-21.
Запуск на macOS
Снимите карантинный атрибут через терминал:
xattr -d com.apple.quarantine /path/to/logpile-darwin-arm64
После этого бинарник запустится без предупреждения Gatekeeper.Downloads
-