Обзор — что делает этот экран
Обзор — первый экран после входа в систему (/). Он проводит доступность и безопасность через единую панель: верхняя полоса показывает составные индикаторы состояния, KPI-карточки и кольцо обнаружений, нижняя — временные ряды нагрузки / памяти / сети / хранилища всего парка серверов.
Ключевые особенности:
- Две сведённые вместе составные оценки — индикатор доступности (взвешенная композиция всей телеметрии, не относящейся к безопасности) рядом с индикатором безопасности (взвешенная композиция свидетельств обнаружения за 24 ч).
- 8 KPI-карточек — серверы, пик нагрузки, пик памяти, пик сети, угрозы, резервное копирование и (если есть данные) веб-сервис и база данных.
- Кольцо обнаружений (24 ч) — оповещения IDS / аномалии ИИ / веб-атаки / сканирование и блокировка, четыре категории.
- Панель производительности сервисов — выберите по одному «отдельному сервису» веб и БД и покажите их компактными индикаторами (никогда не суммируются).
- Полосы серверов во всю ширину — нагрузка / память / сеть / хранилище, переключатель диапазона 6h · 24h · 3d, разделение экрана (1 · 2 · 3), ползунок высоты и линейная/логарифмическая шкала.
- Живой опрос — дешёвая проверка
rev(последний seq) загружает тяжёлую полезную нагрузку только при её изменении, после чего данные подменяются на месте.
Все числа — это реальные данные, которые загружают в базу коллекторы, работающие вне Laravel. Если унаследованная база недоступна или пуста, контроллер аккуратно переключается на структурно идентичный макет (демонстрацию); в этом случае
sourceравноmockup, аrevравно0, поэтому фронтенд пропускает повторную отрисовку.
Когда использовать
- В начале рабочего дня, когда за 30 секунд нужно понять, «что болит прямо сейчас» — цвет индикатора вместе с символами свидетельств сразу показывает, по какой оси (живучесть · нагрузка · память · диск · RAID · резервное копирование / IDS · ИИ · веб · межсетевой экран · репутация · TLS) снимаются баллы.
- При построении стены мониторинга — распределить экран по нескольким мониторам с помощью разделения и постраничного показа (полноэкранный режим).
- Чтобы отследить, когда произошёл всплеск нагрузки или диска на сервере («N минут назад»).
- Как точка входа перед переходом к подробным экранам вроде Инфраструктура ▸ Серверы или Безопасность ▸ Обзор.
Компоновка
Верхний блок
Заголовок и слоган («Мгновенная реакция · Готовность по умолчанию · Всегда восстановимо»), а справа — метка времени сбора (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]), в которой этот пик был замечен впервые.
Панель производительности сервисов (справа)
Показывает один веб-сервис и одну БД компактными индикаторами — по отдельности, без суммирования, чтобы один вышедший из-под контроля сервис не растворился в среднем значении. Меняйте объект через выпадающий список («Выбрать другой сервис»):
- Веб — кольцо кодов ответа из четырёх полос (2xx good · 3xx info · 4xx warn · 5xx crit) с числом запросов в секунду в центре, а также доля ошибок и задержка. По умолчанию выбирается сервис с наибольшим числом запросов в секунду.
- БД — дуга насыщения подключений (мест) с QPS в центре, а также выполняется/в очереди. По умолчанию выбирается наиболее насыщенная. Пороги оттенка 70/90 % (соглашение из Сервисы ▸ База данных).
Кольцо обнаружений (справа)
Обнаружения за 24 часа в четырёх категориях (IDS/ИИ/веб/сканирование). Кольцо ECharts + HTML-легенда (название · сокращённое количество · полоса доли).
Внизу — полосы серверов во всю ширину
Под панелью инструментов Server stats (чип RAID · чип «свободно <1G» · ползунок высоты · подпись диапазона · переключатель временного диапазона · кнопки разделения) расположены четыре полосы:
- Средняя нагрузка — три сервера с наибольшими последними значениями, закреплённые в виде алиас·значение, линейная/логарифмическая шкала.
- Память — % использования, линейная/логарифмическая шкала.
- Сетевой трафик — область с накоплением: входящий (снизу) + исходящий (сверху).
- Хранилище — нелинейный индикатор корня (/) + использование раздела
/data.
Как пользоваться
- Сначала индикаторы — прочитайте цвет двух оценок. Если он низкий, наведите указатель на красные (crit) или янтарные (warn) ячейки среди 6 символов свидетельств ниже, чтобы увидеть, по какой оси снимаются баллы.
- KPI-карточки — просмотрите их в поисках отклонений (серверы не в сети, угрозы, доля успешных резервных копий). По подписи «N мин назад» на карточках пиков определите время события.
- Смена временного окна — кнопки
6h · 24h · 3dв правом нижнем углу меняют окно полос. Выбор сохраняется вlocalStorage(infr:range:overview) и повторно запрашивается у сервера через параметрrange. KPI-карточки и индикаторы состояния остаются привязанными к понятию 24 ч (окно меняется только у полос). - Разделение экрана — кнопки
All · 2 · 3разбивают парк серверов на страницы (◀▶). Удобно для распределения по мониторам. - Высота и шкала — ползунок задаёт высоту полос (80–360px); переключатель
Lin/Logкаждой полосы задаёт шкалу оси y (помогает при узлах с резкими всплесками). - Живой режим / полный экран — переключатель
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
- Когда вкладка скрыта (
document.hidden), опрос приостанавливается и возобновляется одной немедленной проверкой. - Тик
clockраз в 30 секунд пересчитывает подписи «N мин назад», даже если данные не менялись. - Если подключён Reverb (
window.Echo), событие.tickв каналеinfr.overviewможет перевести то же обновление на push (сейчас это заглушка — см. Реальное время (Reverb)).
Источники данных
Все только для чтения. Приложение читает унаследованные таблицы ресурсов как есть.
| Ось | Таблица / сервис | Соединение | Назначение |
|---|---|---|---|
| Парк серверов / ряды | 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> |
Доступ
- Экран только для чтения. К стартовой странице (
/) применяется лишь посредникinfr.auth— её может просматривать любой аутентифицированный уровень (demo=1 и выше). Действий записи здесь нет, поэтому нет и проверки уровня. - Свидетельства безопасности и числа обнаружений видны здесь даже для demo (1), но отдельная ролевая область безопасности (
/security/*) закрыта собственной проверкойinfr.level:2. - Об общей схеме уровней см. Уровни RBAC.
Устранение неполадок и частые вопросы
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 ч.
Связанные материалы
- Инфраструктура ▸ Серверы — подробные временные ряды нагрузки и памяти по каждому серверу
- Инфраструктура ▸ Состояние — живые пробы карточек узлов
- Безопасность ▸ Обзор — оборонительная воронка угроза→обнаружение→реагирование
- Сервисы ▸ Веб · Сервисы ▸ База данных — экраны-источники панели производительности
- Инфраструктура ▸ Оповещения — политики оповещений при превышении порогов
- Реальное время (Reverb) — предыстория перехода от опроса к push
