# 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 ` — содержимое DPI-листа Команда `show dpi records ` выводит **содержимое** загруженного 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 ` — ручная загрузка списка Команда `dpi load ` принудительно загружает 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)