Files
logpile/web/templates/index.html
Michael Chus 512957545a Add LOGPile BMC diagnostic log analyzer
Features:
- Modular parser architecture for vendor-specific formats
- Inspur/Kaytus parser supporting asset.json, devicefrusdr.log,
  component.log, idl.log, and syslog files
- PCI Vendor/Device ID lookup for hardware identification
- Web interface with tabs: Events, Sensors, Config, Serials, Firmware
- Server specification summary with component grouping
- Export to CSV, JSON, TXT formats
- BMC alarm parsing from IDL logs (memory errors, PSU events, etc.)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 04:11:23 +03:00

132 lines
5.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LOGPile - BMC Log Analyzer</title>
<link rel="stylesheet" href="/static/css/style.css">
</head>
<body>
<header>
<h1>LOGPile</h1>
<p>Анализатор диагностических данных BMC/IPMI</p>
</header>
<main>
<section id="upload-section">
<div class="upload-area" id="drop-zone">
<p>Перетащите архив сюда или</p>
<input type="file" id="file-input" accept="application/gzip,application/x-gzip,application/x-tar,application/zip" hidden>
<button type="button" onclick="document.getElementById('file-input').click()">Выберите файл</button>
<p class="hint">Поддерживаемые форматы: tar.gz, zip</p>
</div>
<div id="upload-status"></div>
</section>
<section id="data-section" class="hidden">
<nav class="tabs">
<button class="tab active" data-tab="config">Конфигурация</button>
<button class="tab" data-tab="firmware">Прошивки</button>
<button class="tab" data-tab="sensors">Сенсоры</button>
<button class="tab" data-tab="serials">Серийные номера</button>
<button class="tab" data-tab="events">События</button>
</nav>
<div class="tab-content active" id="config">
<div class="toolbar">
<button onclick="exportData('json')">Экспорт JSON</button>
<button onclick="exportData('txt')">Экспорт TXT</button>
</div>
<div id="config-content"></div>
</div>
<div class="tab-content" id="firmware">
<div class="toolbar">
<span class="toolbar-label">Версии прошивок компонентов</span>
</div>
<table id="firmware-table">
<thead>
<tr>
<th>Компонент</th>
<th>Версия</th>
<th>Дата сборки</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
<div class="tab-content" id="sensors">
<div class="toolbar">
<select id="sensor-filter">
<option value="">Все сенсоры</option>
<option value="temperature">Температура</option>
<option value="voltage">Напряжение</option>
<option value="power">Мощность</option>
<option value="fan_speed">Вентиляторы</option>
</select>
</div>
<div id="sensors-content"></div>
</div>
<div class="tab-content" id="serials">
<div class="toolbar">
<select id="serial-filter">
<option value="">Все компоненты</option>
<option value="Board">Материнская плата</option>
<option value="CPU">Процессоры</option>
<option value="Memory">Память</option>
<option value="Storage">Накопители</option>
<option value="PCIe">PCIe устройства</option>
<option value="Network">Сетевые адаптеры</option>
<option value="PSU">Блоки питания</option>
<option value="FRU">FRU</option>
</select>
<button onclick="exportData('csv')">Экспорт CSV</button>
</div>
<table id="serials-table">
<thead>
<tr>
<th>Категория</th>
<th>Компонент</th>
<th>Серийный номер</th>
<th>Производитель</th>
<th>Part Number</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
<div class="tab-content" id="events">
<div class="toolbar">
<select id="severity-filter">
<option value="">Все события</option>
<option value="critical">Критические</option>
<option value="warning">Предупреждения</option>
<option value="info">Информационные</option>
</select>
</div>
<table id="events-table">
<thead>
<tr>
<th>Время</th>
<th>Источник</th>
<th>Описание</th>
<th>Важность</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</section>
</main>
<footer>
<button id="clear-btn" class="hidden" onclick="clearData()">Очистить данные</button>
</footer>
<script src="/static/js/app.js"></script>
</body>
</html>