- Раздел 22: Балансировщик: мониторинг и диагностика - Раздел 23: Распознавание протоколов (DPI Engine) - Раздел 24: Траблшутинг Каждый раздел включает команды, описания и практические примеры для диагностики и мониторинга работы балансировщика и системы фильтрации.
327 lines
28 KiB
Markdown
327 lines
28 KiB
Markdown
# 18. Фильтр: мониторинг и диагностика
|
||
|
||
[← Оглавление](../README.md) · [← Раздел 17: Фильтр: настройка DPI](17.md)
|
||
|
||
---
|
||
|
||
Фильтр предоставляет обширный набор команд мониторинга и диагностики, позволяющих оценить состояние аппаратной части, загрузку ресурсов, статистику обработки трафика и работу модуля DPI. Все команды мониторинга выполняются в **операционном режиме** (приглашение `>`), за исключением ping и traceroute, которые доступны из **конфигурационного режима**.
|
||
|
||
## 18.1. `show version` — версия ПО, серийный номер (= MAC management)
|
||
|
||
Команда `show version` отображает информацию о текущей версии программного обеспечения фильтра:
|
||
|
||
| Параметр | Описание |
|
||
| --------------------- | ----------------------------------------------------------- |
|
||
| **Версия ПО** | Основной номер версии (например, `3.14.040 BP`) |
|
||
| **Серийный номер** | Серийный номер платформы — необходим при обращении в техподдержку |
|
||
|
||
Команда `show version detail` дополнительно выводит хэши сборки, указывающие на конкретный коммит в сборочной системе (полезно для разработчиков).
|
||
|
||
> **Важно:** серийный номер платформы **совпадает** с MAC-адресом management-интерфейса. Это можно проверить через команду `show ip if`.
|
||
|
||
## 18.2. `show ip if` — параметры management-интерфейса
|
||
|
||
Команда отображает параметры management-интерфейса:
|
||
|
||
- **MAC-адрес** (совпадает с серийным номером);
|
||
- **IP-адрес**;
|
||
- **Маска подсети**;
|
||
- **Default gateway**.
|
||
|
||
## 18.3. `show time` — текущее время (UTC / local)
|
||
|
||
Команда выводит текущее время в двух форматах:
|
||
|
||
- **UTC** — всемирное координированное время;
|
||
- **Local** — локальное время (с учётом настроенного сдвига).
|
||
|
||
Оба значения отображаются всегда, даже если они совпадают.
|
||
|
||
## 18.4. `show uptime` — время работы платформы и процесса EcoNAT
|
||
|
||
Команда показывает **два значения** времени работы:
|
||
|
||
| Параметр | Описание |
|
||
| ----------------------- | --------------------------------------------------------- |
|
||
| **Uptime платформы** | Время с момента включения/перезагрузки аппаратной платформы |
|
||
| **Uptime EcoNAT** | Время с момента запуска процесса обработки трафика |
|
||
|
||
Эти два значения могут отличаться на **небольшую величину** (обычно до 1 минуты): сначала стартует платформа, затем — процесс EcoNAT, который инициализирует интерфейсы и начинает обработку трафика.
|
||
|
||
> **Примечание:** после старта EcoNAT обновляет время по NTP. В некоторых случаях это приводит к тому, что в выводе `show uptime` отображаются **некорректные значения**. Например, если в BIOS было установлено неверное время, после синхронизации по NTP вывод uptime может показывать аномальные цифры. Это нормальная ситуация — значения восстановятся после следующей перезагрузки. Тем не менее, подобные аномалии следует исследовать.
|
||
|
||
## 18.5. Аппаратная часть: `show power`, `show fan`, `show temperature`
|
||
|
||
### show power
|
||
|
||
Отображает состояние **источников питания**: `OK` или `FAIL`. В будущих версиях прошивки планируется более подробный вывод — напряжение на входе, мощность блоков питания, внутренние параметры (вольты, ватты, амперы).
|
||
|
||
### show fan
|
||
|
||
Отображает **скорость вращения вентиляторов**:
|
||
|
||
- **Системные вентиляторы** — обычно 4 штуки, каждый с двумя датчиками;
|
||
- **Вентиляторы на сетевых картах** — отдельные показания.
|
||
|
||
### show temperature
|
||
|
||
Отображает **температуру ядер процессора** (не крышки и не внешнего сенсора):
|
||
|
||
| Диапазон | Оценка |
|
||
| ------------- | --------------------------------------------------------- |
|
||
| **40–50 °C** | Нормальные значения |
|
||
| **~70 °C** | Платформа начинает перегреваться — необходимо проверить условия охлаждения на площадке |
|
||
|
||
При обнаружении повышенной температуры следует запросить у оператора информацию о состоянии окружающей среды на площадке (кондиционирование, вентиляция).
|
||
|
||
## 18.6. Интерфейсы: `show interface brief`, traffic monitor, трансиверы (DDM)
|
||
|
||
### show interface brief
|
||
|
||
Выводит **краткую информацию** по всем интерфейсам:
|
||
|
||
| Поле | Описание |
|
||
| --------------- | ----------------------------------------------- |
|
||
| **Состояние** | Up / Down |
|
||
| **MTU** | Текущее значение MTU на интерфейсе |
|
||
| **MAC** | MAC-адрес интерфейса |
|
||
| **Скорость** | Скорость линка |
|
||
| **Loading** | Условная загрузка интерфейса в процентах |
|
||
| **Description** | Описание интерфейса (если задано) |
|
||
|
||
### Traffic monitor
|
||
|
||
Команда `show interface <имя|all> traffic monitor` выводит **ежесекундно обновляемую таблицу** с текущей нагрузкой на интерфейсы:
|
||
|
||
- Количество **байт** — принятых и переданных за последнюю секунду;
|
||
- Количество **пакетов** — на вход и на выход;
|
||
- **Ошибки** — всегда должны быть нулевыми.
|
||
|
||
Для выхода из режима мониторинга — `Ctrl+C`.
|
||
|
||
Команда `show interface all traffic` (без слова `monitor`) показывает **суммарные счётчики** в байтах и пакетах с момента последней очистки или перезагрузки.
|
||
|
||
### Трансиверы (DDM)
|
||
|
||
Фильтр позволяет просмотреть информацию о подключённых **трансиверах** и уровни оптических сигналов (**DDM** — Digital Diagnostic Monitoring):
|
||
|
||
- Информация доступна для **оптических модулей**;
|
||
- Для **медных модулей** и **direct-attach кабелей** DDM не поддерживается;
|
||
- Поддерживаются трансиверы **любых производителей**, совместимых с чипами Intel на сетевых картах фильтра. Программных ограничений на вендора нет, однако совместимость может быть ограничена самим чипом Intel.
|
||
|
||
## 18.7. Ресурсы: `show resources`
|
||
|
||
Команда `show resources` — **основная команда** для оценки загрузки фильтра. Выводит загрузку процессора, ресурсных таблиц и DPI.
|
||
|
||
### 18.7.1. Таблицы сессий/трансляций: не более 20% загрузки
|
||
|
||
Загрузка ресурсных таблиц (сессий, трансляций, IPv6-сессий) отображается в **процентах** от максимального объёма. Критический порог — **20%**.
|
||
|
||
| Загрузка | Оценка |
|
||
| ------------ | ----------------------------------------------------------- |
|
||
| **< 20%** | Нормальная работа |
|
||
| **> 20%** | Превышена оптимальная загрузка — поиск по таблице замедляется |
|
||
|
||
Превышение порога в 20% приводит к **существенному росту задержек** при обработке трафика. Это связано с внутренней архитектурой хэш-таблиц: при высокой заполненности поиск по ним становится значительно дольше, и часть трафика может не успевать обрабатываться.
|
||
|
||
**Что делать при превышении 20%:**
|
||
|
||
- Обратиться в техподдержку;
|
||
- Вероятная причина — на фильтр попало **больше трафика**, чем планировалось (таблицы рассчитаны на определённую полосу пропускания);
|
||
- Возможная причина — **DDoS-атака**: маленькие пакеты генерируют огромное количество сессий при небольшом объёме трафика;
|
||
- Запросить у оператора информацию о состоянии трафика.
|
||
|
||
> **Примечание:** таблица абонентов (subscribers) также отображается в `show resources`, но в проекте ТСПУ **не используется** — это функционал BRAS.
|
||
|
||
### 18.7.2. Свободные буферы: не должны уходить в ноль
|
||
|
||
Значение **свободных буферов** не имеет конкретного «правильного» числа. Важно следить за **динамикой**:
|
||
|
||
- Буферы могут увеличиваться и уменьшаться в зависимости от нагрузки;
|
||
- На графике они должны **колебаться** вокруг средней линии;
|
||
- Если в течение **недели и более** буферы постепенно **уменьшаются** — это признак **утечки памяти**, и необходимо открывать кейс в техподдержке;
|
||
- Буферы **не должны уходить в ноль**.
|
||
|
||
### 18.7.3. DPI-ресурсы: не более 100%
|
||
|
||
Загрузка DPI-ресурсов отображается отдельно. Порог — **100%**:
|
||
|
||
| Загрузка | Оценка |
|
||
| -------------- | -------------------------- |
|
||
| **< 100%** | Нормальная работа |
|
||
| **≥ 100%** | Ресурсы DPI исчерпаны |
|
||
|
||
### 18.7.4. CPU Load — условный параметр обработки трафика
|
||
|
||
Параметр **CPU Load** в `show resources` — это **не** стандартная загрузка CPU в понимании Linux. Это **условный параметр**, рассчитываемый процессом EcoFilter, отражающий долю времени, затрачиваемую на обработку трафика.
|
||
|
||
| Загрузка | Оценка |
|
||
| -------------- | -------------------------------------------------------- |
|
||
| **< 80%** | Нормальная работа |
|
||
| **80–90%** | Повод для анализа — выяснить причину высокой загрузки |
|
||
| **~100%** | Критическая ситуация — фильтр не справляется |
|
||
|
||
Значения 80–90% и выше — повод обратиться в техподдержку или провести собственное расследование причин.
|
||
|
||
## 18.8. Память: Control Plane vs Data Plane
|
||
|
||
Память фильтра условно разделена на **две области**:
|
||
|
||
| Область | Назначение |
|
||
| -------------------- | ------------------------------------------------------------- |
|
||
| **Control Plane** | ОС Linux, CLI, сервисные функции (syslog, управление и т.д.) |
|
||
| **Data Plane** | Процесс EcoNAT — обработка трафика, ресурсные таблицы |
|
||
|
||
### 18.8.1. Data Plane выделяется при старте, не должна расти
|
||
|
||
Память Data Plane выделяется **один раз при старте** процесса EcoNAT. В ней создаются ресурсные таблицы (сессии, трансляции и пр.).
|
||
|
||
После старта объём занятой Data Plane памяти **не должен расти**. На графике мониторинга это должна быть **ровная линия** с незначительными отклонениями. Если наблюдается постоянный рост — это признак утечки памяти.
|
||
|
||
### 18.8.2. Пороги: 5–10% свободной памяти — повод для тревоги
|
||
|
||
| Свободная память | Оценка |
|
||
| ---------------- | --------------------------------------------------------- |
|
||
| **> 10%** | Нормально |
|
||
| **5–10%** | Повод для тревоги — рекомендуется настроить алерт в системе мониторинга |
|
||
| **< 5%** | Критическая ситуация |
|
||
|
||
Если свободная память составляет 5%, но **не уменьшается** со временем — это нормальная ситуация. На современных платформах памяти достаточно, и свободной памяти обычно остаётся много.
|
||
|
||
> **Примечание:** на некоторых площадках (например, МТС) используется другой принцип расчёта свободной памяти, и в мониторинге могут отображаться небольшие значения (~5%). Это нормально для данных прошивок.
|
||
|
||
## 18.9. `show cps` — скорость создания новых сессий
|
||
|
||
Команда `show cps` (Connections Per Second) показывает **скорость создания новых сессий** и трансляций в секунду.
|
||
|
||
| Значение | Интерпретация |
|
||
| ----------- | ----------------------------------------------------------- |
|
||
| **> 0** | Новые сессии создаются, трафик обрабатывается |
|
||
| **0** | Новые сессии не создаются — требуется диагностика |
|
||
|
||
**Нулевое значение** может означать:
|
||
|
||
1. **Трафик не проходит** через фильтр вообще;
|
||
2. **Трафик проходит, но не попадает в пул** — ACL не отбирает трафик, сессии не создаются. Через фильтр могут идти гигабиты и десятки гигабит, но `show cps` будет показывать ноль (подробнее — в [разделе 16](16.md)).
|
||
|
||
## 18.10. `show statistic` — статистика сессий и пулов, значение Optimal (= 20%)
|
||
|
||
Команда `show statistic` отображает статистику по сессиям и загрузке пула:
|
||
|
||
| Параметр | Описание |
|
||
| ------------ | ----------------------------------------------------------- |
|
||
| **Total** | Максимальный размер таблицы |
|
||
| **Used** | Количество используемых записей |
|
||
| **Optimal** | 20% от Total — оптимальный максимум загрузки |
|
||
|
||
Значение **Optimal** — это те же 20%, что и в `show resources`, но отображённые **в абсолютных числах**, а не в процентах. Количество используемых записей (Used) **не должно превышать** значение Optimal.
|
||
|
||
Загрузка пула: поскольку пул в проекте ТСПУ всегда типа **fake**, его загрузка будет **нулевой** — на неё можно не обращать внимания.
|
||
|
||
## 18.11. Счётчики: `show counters all` / `show counters div` (дельта за секунду)
|
||
|
||
На фильтре существует **большое количество** счётчиков — практически на каждую операцию.
|
||
|
||
| Команда | Описание |
|
||
| ---------------------- | ---------------------------------------------------------- |
|
||
| `show counters all` | Значения счётчиков с момента последнего обнуления (или перезагрузки) |
|
||
| `show counters div` | Дельта за последнюю секунду — какие счётчики увеличились и на сколько |
|
||
|
||
**`show counters div`** — наиболее полезная команда для оперативной диагностики. Она показывает только те счётчики, которые **изменились за последнюю секунду**. Если счётчик не появился в выводе — значит, за последнюю секунду он не увеличился.
|
||
|
||
Примеры счётчиков:
|
||
|
||
- Распознанные пакеты по протоколам (WhatsApp Voice, Telegram и т.д.);
|
||
- Отправленные логи;
|
||
- Счётчики L2-протоколов (PPPoE, MPLS);
|
||
- Нераспознанные протоколы;
|
||
- И многие другие (сотни счётчиков).
|
||
|
||
Как правило, из названия счётчика понятно, за что он отвечает. Наиболее важные счётчики выведены в **систему мониторинга**. На разных площадках набор активных счётчиков может различаться в зависимости от типа трафика и инкапсуляций.
|
||
|
||
> **Подсказка:** для оценки нераспознанного трафика можно сравнить **общее количество пакетов** с суммой распознанных — разница покажет объём нераспознанного трафика.
|
||
|
||
## 18.12. Системный журнал: `show syslog`, ротация двух файлов
|
||
|
||
Помимо логирования на внешний сервер (см. [раздел 14.8](14.md)), логи хранятся **внутри устройства** на локальном разделе.
|
||
|
||
Особенности внутреннего хранения:
|
||
|
||
- Раздел для логов **небольшой**;
|
||
- Используются **два файла**, которые **ротируются**: сначала пишется в один, затем в другой, и наоборот;
|
||
- При большом объёме логов файлы **быстро перезатираются** — если с момента проблемы прошло пару суток, логи, скорее всего, уже утрачены;
|
||
- Именно для решения этой проблемы в федеральном проекте добавлено **внешнее логирование** на СПХД.
|
||
|
||
Команда `show syslog` выводит записи из внутреннего журнала, начиная с **самых свежих**.
|
||
|
||
## 18.13. DPI-мониторинг
|
||
|
||
### 18.13.1. `show dpi records <N>` — содержимое DPI-листа
|
||
|
||
Команда `show dpi records <N>` выводит **содержимое** загруженного DPI-листа с номером N, включая реестр Роскомнадзора (лист 0).
|
||
|
||
> **Предупреждение:** содержимое реестра Роскомнадзора (лист 0) **очень велико**. Вывод может продолжаться несколько минут. Для прерывания — `Ctrl+C`.
|
||
|
||
### 18.13.2. `show dpi state` — количество записей, дата последнего дампа
|
||
|
||
Команда `show dpi state` — **основная диагностическая команда** для анализа состояния DPI. Отображает:
|
||
|
||
| Параметр | Описание |
|
||
| ------------------------- | --------------------------------------------------------- |
|
||
| **Количество IP-записей** | Число загруженных IP-адресов и подсетей |
|
||
| **Количество URL-записей**| Число загруженных URL |
|
||
| **Last time** | Время последнего скачивания дампа |
|
||
| **Actual date for delta** | Временная метка последней записи в реестре Роскомнадзора |
|
||
| **DPI-ресурсы** | Загрузка ресурсов DPI (аналогично `show resources`) |
|
||
|
||
**Интерпретация дат:**
|
||
|
||
Реестр Роскомнадзора формируется **итерационно**: Роскомнадзор периодически обновляет реестр, выпуская основные дампы и дельты. Если Роскомнадзор **не вносил обновлений** в течение длительного времени (например, суток), то:
|
||
|
||
- Фильтр продолжает запрашивать обновления с периодичностью update schedule (обычно 30 минут);
|
||
- Сервер РКН отвечает, что обновлений нет;
|
||
- Дата последнего скачивания **не обновляется**;
|
||
- В системе мониторинга может появиться алерт «дамп не скачивался более 24 часов».
|
||
|
||
Это **не обязательно означает проблему** — возможно, Роскомнадзор просто не обновлял реестр. Однако если дата не обновляется длительное время, следует проверить скорость скачивания и доступность сервера РКН.
|
||
|
||
Команда `dpi list` показывает файлы на диске: все дампы, дельты и сформированные DPI-листы. Например, реестр Роскомнадзора после парсинга хранится в файле `list_0.dpi`.
|
||
|
||
### 18.13.3. `dpi load <N>` — ручная загрузка списка
|
||
|
||
Команда `dpi load <N>` принудительно загружает DPI-лист с номером N с URL, указанного в конфигурации данного листа (или с URL, заданного в команде). Используется для диагностики проблем с загрузкой списков.
|
||
|
||
### 18.13.4. `dpi run` — принудительное обновление всех списков
|
||
|
||
Команда `dpi run` принудительно запускает обновление **всех** настроенных DPI-листов. В штатной эксплуатации обычно не требуется — используется при диагностике проблем с обновлением списков.
|
||
|
||
> **Примечание:** `dpi run` инициирует запрос к серверам, но не гарантирует скачивание — если обновлений нет, ничего скачано не будет.
|
||
|
||
### 18.13.5. `show dpi match <ресурс>` — проверка ресурса по всем DPI-листам
|
||
|
||
Команда `show dpi match <ресурс>` проверяет указанный ресурс (IP-адрес или URL) по **всем загруженным DPI-листам** и выводит:
|
||
|
||
- В каком DPI-листе найдено **совпадение**;
|
||
- Какое **поведение** (behavior) задано для этого листа.
|
||
|
||
Если совпадений нет — вывод будет пустым.
|
||
|
||
> **Примечание:** в версии прошивки пилотного проекта (Урал) эта команда может быть **недоступна**. Она появилась в более новых версиях для федерального проекта.
|
||
|
||
Команда крайне полезна для диагностики: если абонент жалуется на блокировку ресурса, можно быстро проверить, присутствует ли ресурс в каком-либо DPI-листе и с каким действием.
|
||
|
||
## 18.14. Ping и Traceroute (из конфигурационного режима)
|
||
|
||
Команды `ping` и `traceroute` доступны из **конфигурационного режима** (не из операционного).
|
||
|
||
| Команда | Описание |
|
||
| --------------- | ----------------------------------------------------------- |
|
||
| `ping <адрес>` | Бесконечный пинг до указанного хоста (прервать — `Ctrl+C`) |
|
||
| `traceroute <адрес>` | Трассировка маршрута до хоста |
|
||
|
||
> **Важно:** ping и traceroute работают **только через management-интерфейс**. Фильтр — это L2-устройство без IP-интерфейсов в тракте данных, поэтому инициировать трафик через LAN/WAN-интерфейсы **невозможно** (подробнее — в [разделе 5.2](05.md)).
|
||
|
||
---
|
||
|
||
[← Оглавление](../README.md) · [← Раздел 17: Фильтр: настройка DPI](17.md) · [Раздел 19: Фильтр: обновление прошивки →](19.md)
|