• v1.23 e2c81758b5

    mchus released this 2026-06-19 15:20:57 +03:00 | 3 commits to main since this release

    logpile 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
  • v1.22 3e3c48bc08

    mchus released this 2026-06-19 15:11:46 +03:00 | 5 commits to main since this release

    logpile 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
  • v1.21 cd864c3d6c

    mchus released this 2026-06-15 17:56:17 +03:00 | 6 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
  • v1.19 47ff1c3796

    mchus released this 2026-06-12 03:58:55 +03:00 | 12 commits to main since this release

    NF-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
  • v1.18 440959483e

    mchus released this 2026-05-28 03:38:04 +03:00 | 15 commits to main since this release

    Three related fixes for IDL event processing:

    1. idl.go: include EventType in dedup key so Deassert events are no
      longer silently dropped as duplicates of their Assert counterparts.

    2. 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.

    3. 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
  • v1.17 f3836a34cc

    logpile v1.17 Stable

    mchus released this 2026-05-21 14:37:26 +03:00 | 16 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 как правый якорь. В стандартном layouts component.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
  • v1.16 ca457ac72b

    mchus released this 2026-04-30 16:05:30 +03:00 | 23 commits to main since this release

    IOMMUGroup was added to models.PCIeDevice but never wired into the
    converter — missing from Details in buildDevicesFromLegacy, no field
    in ReanimatorPCIe, and convertPCIeFromDevices never read it.

    Add IOMMUGroup *int to ReanimatorPCIe, propagate through Details,
    add intPtrFromDetailMap helper.

    Downloads
  • v1.12 c9969fc3da

    Release v1.12 Stable

    mchus released this 2026-04-13 20:36:03 +03:00 | 31 commits to main since this release

    • added Lenovo XCC mini-log archive parser with board, firmware, CPU, memory, storage, PCIe, PSU, FRU, sensor, and event extraction
    • mapped Lenovo XCC Unqualified DIMM conditions to warning severity from both archive events and DIMM inventory status
    • improved Lenovo XCC Redfish handling by collecting System LogServices entries and keeping Lenovo OEM log entries
    • mapped Unqualified DIMM in Redfish log entries to warning even when the BMC reports a generic OK severity
    • kept Lenovo XCC live collection faster by excluding noisy OEM and sensor snapshot branches
    • fixed Reanimator exporter to preserve all HGX GPUs when PCIe slot names are generic
    Downloads
  • mchus released this 2026-04-13 14:48:09 +03:00 | 35 commits to main since this release

    Небольшой фикс по мертвым веткам SMC B200.

    Downloads
  • mchus released this 2026-04-12 15:57:17 +03:00 | 36 commits to main since this release

    • parse GPU link width and speed directly from PCIeInterface when device records expose LanesInUse, Maxlanes/MaxLanes, PCIeType and MaxPCIeType

    • apply the xFusion OEM function-level fallback for GPU function docs, aligning GPU enrichment with NIC and generic PCIe device parsing

    • add coverage for xFusion GPU PCIeInterface payloads where Maxlanes uses a lowercase l

    Downloads