New parsers: - NVIDIA Field Diagnostics parser with dmidecode output support - NVIDIA Bug Report parser with comprehensive hardware extraction - Supermicro crashdump (CDump.txt) parser - Generic fallback parser for unrecognized text files Enhanced GPU parsing (nvidia-bug-report): - Model and manufacturer detection (NVIDIA H100 80GB HBM3) - UUID, Video BIOS version, IRQ information - Bus location (BDF), DMA size/mask, device minor - PCIe bus type details New hardware detection (nvidia-bug-report): - System Information: server S/N, UUID, manufacturer, product name - CPU: model, S/N, cores, threads, frequencies from dmidecode - Memory: P/N, S/N, manufacturer, speed for all DIMMs - Power Supplies: manufacturer, model, S/N, wattage, status - Network Adapters: Ethernet/InfiniBand controllers with VPD data - Model, P/N, S/N from lspci Vital Product Data - Port count/type detection (QSFP56, OSFP, etc.) - Support for ConnectX-6/7 adapters Archive handling improvements: - Plain .gz file support (not just tar.gz) - Increased size limit for plain gzip files (50MB) - Better error handling for mixed archive formats Web interface enhancements: - Display parser name and filename badges - Improved file info section with visual indicators Co-Authored-By: Claude (qwen3-coder:480b) <noreply@anthropic.com>
134 lines
4.1 KiB
Markdown
134 lines
4.1 KiB
Markdown
# SMC Crash Dump Parser
|
||
|
||
Парсер для архивов Supermicro (SMC) BMC Crash Dump.
|
||
|
||
## Поддерживаемые серверы
|
||
|
||
- Supermicro SYS-821GE-TNHR
|
||
- Другие серверы Supermicro с BMC Crashdump функциональностью
|
||
|
||
## Формат архива
|
||
|
||
Парсер работает с архивами в формате:
|
||
- `.tgz` / `.tar.gz` (сжатый tar)
|
||
- `.tar` (несжатый tar)
|
||
|
||
## Распознаваемые файлы
|
||
|
||
### Основные файлы
|
||
|
||
1. **CDump.txt** - JSON файл с данными crashdump
|
||
- Metadata (BMC, BIOS, ME версии firmware)
|
||
- CPU информация (CPUID, количество ядер, microcode версия, PPIN)
|
||
- MCA (Machine Check Architecture) данные - ошибки процессоров
|
||
|
||
## Извлекаемые данные
|
||
|
||
### Hardware Configuration
|
||
|
||
#### CPUs
|
||
```json
|
||
{
|
||
"slot": "CPU0",
|
||
"model": "CPUID: 0xc06f2",
|
||
"cores": 56,
|
||
"manufacturer": "Intel",
|
||
"firmware": "Microcode: 0x210002b3"
|
||
}
|
||
```
|
||
|
||
### FRU Information
|
||
|
||
- BMC Firmware Version
|
||
- BIOS Version
|
||
- ME Firmware Version
|
||
- CPU PPIN (Protected Processor Inventory Number)
|
||
|
||
### Events
|
||
|
||
События создаются для:
|
||
- **Crashdump collection** - когда был собран crashdump
|
||
- **MCA Errors** - ошибки Machine Check Architecture
|
||
- Corrected errors (Warning severity)
|
||
- Uncorrected errors (Critical severity)
|
||
|
||
Уровни severity:
|
||
- `info` - информационные события (crashdump по запросу)
|
||
- `warning` - предупреждения (corrected MCA errors, reset detected)
|
||
- `critical` - критические ошибки (uncorrected MCA errors)
|
||
|
||
## Пример использования
|
||
|
||
```bash
|
||
# Запуск веб-интерфейса
|
||
./logpile --file /path/to/CDump_090859_01302026.tgz
|
||
|
||
# Веб-интерфейс будет доступен на http://localhost:8082
|
||
```
|
||
|
||
## Автоопределение
|
||
|
||
Парсер автоматически определяет архивы SMC Crash Dump по наличию:
|
||
- `CDump.txt` с маркерами "crash_data", "METADATA", "bmc_fw_ver"
|
||
|
||
Confidence score:
|
||
- `CDump.txt` с маркерами crashdump: +80
|
||
|
||
## Версионирование
|
||
|
||
**Текущая версия парсера:** 1.0.0
|
||
|
||
При модификации логики парсера необходимо увеличивать версию в константе `parserVersion` в файле `parser.go`.
|
||
|
||
## Примеры данных
|
||
|
||
### Пример CDump.txt (metadata)
|
||
```json
|
||
{
|
||
"crash_data": {
|
||
"METADATA": {
|
||
"cpu0": {
|
||
"cpuid": "0xc06f2",
|
||
"core_count": "0x38",
|
||
"ppin": "0xa3ccbe7d45026592",
|
||
"ucode_patch_ver": "0x210002b3"
|
||
},
|
||
"bmc_fw_ver": "01.03.18",
|
||
"bios_id": "BIOS Date: 08/04/2025 Rev 2.7",
|
||
"me_fw_ver": "6.1.4.204",
|
||
"timestamp": "2026-01-30T09:06:52Z",
|
||
"trigger_type": "On-Demand"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### MCA Error Detection
|
||
|
||
Парсер проверяет регистры MCA status на наличие ошибок:
|
||
- Bit 63 (Valid) - индикатор валидной ошибки
|
||
- Bit 61 (UC) - uncorrected error
|
||
- Bit 60 (EN) - error enabled
|
||
|
||
## Известные ограничения
|
||
|
||
1. Парсер фокусируется на данных из `CDump.txt`
|
||
2. Детальный анализ MCA errors пока упрощен (только проверка status регистров)
|
||
3. TOR dump и другие расширенные данные пока не парсятся
|
||
|
||
## Разработка
|
||
|
||
### Добавление новых полей
|
||
|
||
1. Изучите структуру JSON в CDump.txt
|
||
2. Добавьте поля в структуры `Metadata`, `CPUMetadata`, или `MCAData`
|
||
3. Обновите функции парсинга
|
||
4. Увеличьте версию парсера
|
||
|
||
### Расширение MCA анализа
|
||
|
||
Для более детального анализа MCA ошибок можно:
|
||
1. Добавить декодирование MCA error codes
|
||
2. Парсить MISC и ADDR регистры
|
||
3. Добавить корреляцию ошибок между банками
|