InfraGuard

Как читать стартовый экран Обзор

Единая домашняя консоль, которая на одном экране сводит вместе составные оценки доступности и безопасности, KPI-карточки, кольцо обнаружений и живые полосы серверов во всю ширину.

Обзор — что делает этот экран

Обзор — первый экран после входа в систему (/). Он проводит доступность и безопасность через единую панель: верхняя полоса показывает составные индикаторы состояния, KPI-карточки и кольцо обнаружений, нижняя — временные ряды нагрузки / памяти / сети / хранилища всего парка серверов.

Ключевые особенности:

Все числа — это реальные данные, которые загружают в базу коллекторы, работающие вне Laravel. Если унаследованная база недоступна или пуста, контроллер аккуратно переключается на структурно идентичный макет (демонстрацию); в этом случае source равно mockup, а rev равно 0, поэтому фронтенд пропускает повторную отрисовку.

Когда использовать

Компоновка

Верхний блок

Заголовок и слоган («Мгновенная реакция · Готовность по умолчанию · Всегда восстановимо»), а справа — метка времени сбора (stamp) и количество узлов, переключатель LIVE/PAUSED и кнопка полного экрана.

Оценка состояния (слева)

Два кольцевых индикатора (доступность, безопасность) и двухколоночная панель свидетельств под ними:

Колонка 6 символов (подсказка при наведении) Источник оценки
Основа доступности живучесть · нагрузка · память · диск · RAID · резервное копирование avail_parts из aggregate() (композиция с учётом длительности, 0–100)
Основа безопасности IDS · ИИ · веб · межсетевой экран · репутация · TLS PostureService (доли необработанного остатка за 24 ч, нормализованные в оценки состояния)

Цвет каждого символа задаётся через metric_cls: ≥90 good · ≥70 warn · ниже crit · при отсутствии данных отображается — (na).

KPI-карточки (в центре 3×2 + 2 условные)

Карточка Значение Подстрока
Серверы в сети/всего количество не в сети или «все в сети»
Пик нагрузки максимальная нагрузка в видимом наборе узел · «N мин назад»
Пик памяти максимальный % памяти в видимом наборе узел · «N мин назад»
Пик сети максимум пакетов (больший из входящих/исходящих) узел · «N мин назад»
Угрозы открытые (= блокировки Kitsune) заблокировано сегодня
Резервное копирование % успешных за 14 дней количество запусков за 24 ч · длительность последнего · преобладающий тип
Веб-сервис (условная) up/всего самый медленный узел · ms
База данных (условная) up/всего самая загруженная БД · медленные за 24 ч · в очереди

Пики нагрузки/памяти/сети вычисляются на фронтенде как «максимум ряда по текущим видимым серверам (current_servers)». Это значит, что смена разделения или страницы меняет и набор серверов, который учитывают карточки пиков. Подпись «N мин назад» выводится из позиции seq (times[idx]), в которой этот пик был замечен впервые.

Панель производительности сервисов (справа)

Показывает один веб-сервис и одну БД компактными индикаторами — по отдельности, без суммирования, чтобы один вышедший из-под контроля сервис не растворился в среднем значении. Меняйте объект через выпадающий список («Выбрать другой сервис»):

Кольцо обнаружений (справа)

Обнаружения за 24 часа в четырёх категориях (IDS/ИИ/веб/сканирование). Кольцо ECharts + HTML-легенда (название · сокращённое количество · полоса доли).

Внизу — полосы серверов во всю ширину

Под панелью инструментов Server stats (чип RAID · чип «свободно <1G» · ползунок высоты · подпись диапазона · переключатель временного диапазона · кнопки разделения) расположены четыре полосы:

Как пользоваться

  1. Сначала индикаторы — прочитайте цвет двух оценок. Если он низкий, наведите указатель на красные (crit) или янтарные (warn) ячейки среди 6 символов свидетельств ниже, чтобы увидеть, по какой оси снимаются баллы.
  2. KPI-карточки — просмотрите их в поисках отклонений (серверы не в сети, угрозы, доля успешных резервных копий). По подписи «N мин назад» на карточках пиков определите время события.
  3. Смена временного окна — кнопки 6h · 24h · 3d в правом нижнем углу меняют окно полос. Выбор сохраняется в localStorage (infr:range:overview) и повторно запрашивается у сервера через параметр range. KPI-карточки и индикаторы состояния остаются привязанными к понятию 24 ч (окно меняется только у полос).
  4. Разделение экрана — кнопки All · 2 · 3 разбивают парк серверов на страницы (◀▶). Удобно для распределения по мониторам.
  5. Высота и шкала — ползунок задаёт высоту полос (80–360px); переключатель Lin/Log каждой полосы задаёт шкалу оси y (помогает при узлах с резкими всплесками).
  6. Живой режим / полный экран — переключатель LIVE в верхнем блоке включает и выключает опрос; full screen скрывает верхнюю панель навигации для режима стены мониторинга.

Диапазон → количество точек

Окно нижних полос пересчитывается в количество точек seq исходя из периодичности сбора server_status (примерно 5 мин).

range точек seq
6h 72
24h 288 (по умолчанию)
3d 864

Поведение живого обновления (опроса)

every 30s  ──▶  GET /overview/rev   (cheap latest seq)
                   │  rev changed?
                   ├─ no  → skip (0 bandwidth)
                   └─ yes → GET /overview/live?range=<window>  → swap data + re-render charts

Источники данных

Все только для чтения. Приложение читает унаследованные таблицы ресурсов как есть.

Ось Таблица / сервис Соединение Назначение
Парк серверов / ряды server_status (loadavg·free·df-*·traffic-out) legacy (MAIN) полосы нагрузки/памяти/диска/сети, живучесть
RAID storage_status (status_summary) legacy свидетельство Optimal/Degraded/Failed
Резервное копирование backup_history legacy доля успешных за 14 дней · последнее · тип
IDS suricata_alert_ct legacy_glory кольцо обнаружений · основа безопасности (sev 1·2)
Аномалия ИИ kitsune_detail_log (is_blocked) legacy_glory обнаружения · угрозы · основа безопасности
Веб-атака nginx_meta_ct (is_suspicious) legacy_glory обнаружения · доля подозрительных запросов
Репутация / блокировка blacklist_info legacy_glory заблокировано сегодня · давление новых блокировок
Гигиена TLS suricata_tls_ct (version) legacy_glory доля слабого TLS (<1.2)
Производительность веб-сервиса WebMetricService::dashboard() (infr_web_metric) central KPI веб · панель производительности
Производительность БД DbCollectorService::latest() · infr_db_metric · infr_collector (access=database) central KPI БД · панель производительности
Открытость межсетевого экрана FirewallService::dashboard() (infr_instance_firewall) central основа безопасности fw

Формулы составных оценок

Доступность = взвешенное среднее осей, по которым есть данные (веса нормируются заново). Каждая ось смотрит на всё отображаемое окно и снимает баллы по принципу «как долго (длительность) и насколько тяжело (пик)» был превышен порог.

Ось Вес Основа снятия баллов
живучесть 0.30 доля циклов без ответа после первого отчёта
нагрузка 0.15 превышение средней нагрузки ≥ 8 (≥16 = полная перегрузка)
память 0.15 использование > 99% (100% = полное давление)
диск 0.15 свободное место в корне < 1G (только измеренные разделы, 0G = полный риск)
RAID 0.15 узел со статусом Degraded/Failed получает 0
резервное копирование 0.10 доля успешных за 14 дней

Безопасность = взвешенное среднее 6 показателей-свидетельств (только имеющихся). Каждый из них нормализует измерение glory за 24 ч в оценку состояния (0–100): чем больше объём или доля, тем больше снимается баллов (максимальное снятие 45 → нижняя граница 55). Только когда недоступны все показатели, происходит откат к эвристическому скаляру detections().

Показатель Вес Источник (24 ч) Полное снятие при
ids 0.22 количество оповещений IDS высокой критичности (sev 1·2) 200
ai 0.22 количество блокировок Kitsune 500
web 0.20 доля % подозрительных запросов nginx 8%
rep 0.14 количество новых заблокированных IP за сегодня 400
tls 0.12 доля % слабого TLS (<1.2) 5%
fw 0.10 критичные порты на публичном IP ×2 + критичные + неуправляемая открытость 200

TTL кэша

Объект TTL Ключ
Реальные данные обзора (build) 30s infr:overview:data:v1:{points}
Панель производительности сервисов (web/db) 15s infr:ov:perf
Основа безопасности (PostureService) 300s infr:sec:posture:v1:<range>

Доступ

Устранение неполадок и частые вопросы

Q. Индикаторы и карточки показывают значения, похожие на демонстрационные. Это откат к макету, который срабатывает, когда соединение с унаследованной базой (legacy/legacy_glory) не устанавливается или данных нет. Если в полезной нагрузке source равно mockup, а rev равно 0, реальная база недоступна. Проверьте связь с базой данных и загрузку данных коллекторами (Администрирование ▸ Коллекторы).

Q. Символ свидетельства показывает —. По этой оси нет данных (она исключается из взвешивания). Например, если CMDB межсетевого экрана (infr_instance_firewall) пуста, fw показывает — — нужны активы межсетевого экрана, а не старая таблица firewall_status. RAID исключается, когда нет соответствующего storage_status.host.

Q. Данные не обновляются. Проверьте: (1) не показывает ли переключатель в верхнем блоке PAUSED и (2) не находится ли вкладка в фоне (пока она скрыта, опрос приостановлен). Коллекторы загружают данные вне Laravel примерно с пятиминутной периодичностью, поэтому даже при опросе раз в 30 с фактическое значение может отставать на несколько минут. Если rev не изменилось, тяжёлая полезная нагрузка не запрашивается.

Q. Сервер с пиком нагрузки отличается в разных представлениях. Пик вычисляется по набору серверов текущего представления (разделение/страница). Чтобы рассуждать обо всех серверах, установите разделение в All.

Q. Входящий сетевой трафик всегда равен 0. В server_status нет источника входящего трафика в разрезе алиасов, поэтому net_in заполняется нулями и измеряется только traffic-out (пакеты). Подробную полосу пропускания см. в Трафик (сетевой ввод-вывод).

Q. Смена диапазона не двигает KPI и индикаторы. Так и задумано. Параметр range (6h/24h/3d) применяется только к нижним полосам; KPI-карточки и индикаторы состояния соответствуют фиксированному понятию 24 ч.

Связанные материалы

개요 — 헬스 스코어·근거 심볼·서버 통계
개요 — 헬스 스코어·근거 심볼·서버 통계