Мониторинг ePDG [Документация VAS Experts]

Различия

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

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
dpi:epdg:monitoring [2026/04/29 11:59] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1dpi:epdg:monitoring [2026/04/29 12:01] (текущий) elena.krasnobryzh
Строка 1: Строка 1:
 +{{indexmenu_n>6}}
 +====== Мониторинг ePDG ======
 +
 +===== Комплексная система мониторинга шлюза VoWiFi (ePDG) =====
 +
 +===== 1. Обзор решения =====
 +
 +Система мониторинга VAS Experts ePDG Monitoring обеспечивает полный операционный контроль компонента **fast-epdg** — шлюза VoWiFi (Voice over WiFi), работающего согласно 3GPP TS 29.273 и TS 24.302. Шлюз обеспечивает защищённую передачу голосового и пакетного трафика через недоверенные каналы Wi-Fi с IPSec/IKEv2 туннелированием и интеграцию с EPC-ядром через интерфейсы SWu, SWm, SWx, S2b, S6b.
 +
 +Решение предоставляет единую платформу мониторинга для оперативных служб мобильного оператора — от уровня IPSec SA (L3 security) до KPI абонентского опыта VoWiFi.
 +
 +==== Ключевые преимущества ====
 +
 +  * **Мониторинг в реальном времени** — обновление метрик каждые 10-15 секунд, непосредственное отображение состояния IKE SA / Child SA и GTP-туннелей в NOC-дашбордах без отложенной агрегации (здесь и далее NOC — Network Operation Center, центр управления сетью).
 +  * **Проактивное обнаружение аномалий** — 20+ алармов с автоматической эскалацией по важности. Недоступность PGW/AAA, рост задержек IKEv2, рост ошибок EAP-AKA' — детектируются до того, как абоненты заметят проблемы со звонками.
 +  * **Открытые интерфейсы интеграции** — Prometheus, SNMP v2c, Alertmanager webhooks, поддержка Grafana. Интеграция в существующую NMS/OSS инфраструктуру без привязки к вендору.
 +  * **Минимальные внешние зависимости на уровне плагинов** — встроенный ''/metrics'' endpoint в fast-epdg, без Java, без JMX, без внешних агентов.
 +  * **Покрытие всего стека SWu → S2b** — IKEv2 (SWu), Diameter SWm/SWx/S6b, GTPv2-C (S2b) и GTP-U data plane — в одном месте. 33 метрики суммарно, покрывают control plane и data plane.
 +
 +===== 2. Архитектура системы мониторинга =====
 +
 +<mermaid>
 +flowchart TB
 +    subgraph DataPlane["Data Plane"]
 +        IPSEC["IPSec ESP<br/>IKEv2 SA / Child SA<br/>Kernel xfrm"]
 +        GTPU["GTP-U Tunneller<br/>S2b Data<br/>ePDG ↔ PGW"]
 +    end
 +
 +    subgraph ControlPlane["Control Plane"]
 +        IKE["IKEv2 SWu<br/>EAP-AKA' auth"]
 +        DIAM["Diameter Client<br/>SWx/SWm/S6b"]
 +        GTPC["GTPv2-C S2b<br/>to PGW/SMF"]
 +        CTRL["ePDG Controller<br/>Attach/Detach FSM"]
 +    end
 +
 +    subgraph Collection["Сбор метрик"]
 +        PROMEXP["fast-epdg<br/>/metrics endpoint<br/>:9817"]
 +    end
 +
 +    subgraph Storage["Хранение"]
 +        PROM["Prometheus<br/>TSDB<br/>15-day retention"]
 +    end
 +
 +    subgraph Visualization["Визуализация"]
 +        GRAF["Grafana<br/>4 дашборда, 35+ панелей"]
 +    end
 +
 +    subgraph Alerting["Алармирование"]
 +        AM["Alertmanager<br/>Routing / Inhibition"]
 +        EMAIL["Email SMTP"]
 +        SNMPGW["SNMP Trap Sender<br/>Webhook → Trap gateway"]
 +        NMS["Внешняя NMS<br/>SNMP v2c UDP/162"]
 +        WH["Webhooks<br/>Telegram / PagerDuty"]
 +    end
 +
 +    IKE --> PROMEXP
 +    IPSEC --> PROMEXP
 +    GTPC --> PROMEXP
 +    GTPU --> PROMEXP
 +    DIAM --> PROMEXP
 +    CTRL --> PROMEXP
 +
 +    PROMEXP --> PROM
 +    PROM --> GRAF
 +    PROM --> AM
 +
 +    AM --> EMAIL
 +    AM --> SNMPGW
 +    SNMPGW --> NMS
 +    AM --> WH
 +</mermaid>
 +
 +==== Четырёхуровневая архитектура мониторинга ====
 +
 +^ Уровень                           ^ Компонент                                   ^ Технология                                            ^
 +| **Сбор** (Collection)             | Встроенный ''/metrics'' endpoint fast-epdg  | Текстовый формат Prometheus поверх HTTP               |
 +| **Хранение** (Storage)            | Prometheus TSDB                             | Локальное хранение, 15-дневное хранение по умолчанию  |
 +| **Визуализация** (Visualization)  | Grafana + поддержка JSON                    | Автозагрузка 4 дашбордов                              |
 +| **Сигнализация** (Alerting)      | Alertmanager + SNMP Trap Sender             | PromQL rules → webhook → SNMP v2c trap                |
 +
 +
 +===== 3. Компоненты и метрики =====
 +
 +==== Покрытие мониторингом ====
 +
 +<mermaid>
 +flowchart LR
 +    EXP["fast-epdg<br/>/metrics :9817"]
 +
 +    EXP --> CFG["Config<br/>2 метрики"]
 +    EXP --> NET["Network<br/>1 метрика"]
 +    EXP --> PROTO["Protocols L5-L7<br/>15 метрик"]
 +    EXP --> SVC["Service KPI<br/>4 метрики"]
 +    EXP --> SESS["Session State<br/>4 метрики"]
 +    EXP --> APP["Application<br/>3 метрики"]
 +    EXP --> SYS["System<br/>4 метрики"]
 +
 +    PROTO --> IKEV2["IKEv2<br/>SWu — 3"]
 +    PROTO --> GTPC["GTPv2-C<br/>S2b — 4"]
 +    PROTO --> GTPU["GTP-U<br/>S2b data — 3"]
 +    PROTO --> DIA["Diameter<br/>SWm/SWx/S6b — 5"]
 +</mermaid>
 +
 +==== Количественный обзор по категориям ====
 +
 +^ Категория ^ Кол-во метрик ^ Интервал опроса ^ Ключевые показатели ^
 +| **Config** | 2 | 10 с | Статус конфигурации, счётчик reload |
 +| **Network** | 1 | 10 с | Статус соединений с узлами (PGW/AAA/HSS) |
 +| **IKEv2 (SWu)** | 3 | 10 с | Сообщения по типам (IKE_SA_INIT, IKE_AUTH, CREATE_CHILD_SA), диаграмма задержки, ошибки |
 +| **GTPv2-C (S2b)** | 4 | 10 с | Сообщения (Create/Modify/Delete Session), задержки, ошибки, ретрансляции |
 +| **GTP-U data plane** | 3 | 10 с | Packets/bytes, ошибки туннелирования |
 +| **Diameter (SWm/SWx/S6b)** | 5 | 10 с | Сообщения по command code (DER/DEA, MAR/MAA, AAR/AAA), задержки, ошибки, watchdog, статус соединения |
 +| **Service KPI** | 4 | 10 с | Процент успешных попыток, гистограмма продолжительности, доступность сервиса, время безотказной работы |
 +| **Session State** | 4 | 10 с | IKE SA, Child SA, GTP-сессии, всего пользователей |
 +| **Application** | 3 | 10 с | Количество потоков, память, лог-сообщения по уровням |
 +| **System** | 4 | 10 с | Утилизация CPU, память, утилизация памяти, открытые FD |
 +| **Итого** | **33 метрики** |  |  |
 +
 +==== Принципы именования ====
 +
 +Все метрики имеют префикс ''epdg_'' и организованы по иерархии:
 +
 +<code>
 +epdg_
 +├── config_*           # Конфигурация
 +├── network_*          # Сетевой уровень
 +├── ikev2_*            # SWu (IKEv2/IPSec)
 +├── gtp_*              # S2b control-plane GTPv2-C
 +├── gtpu_*             # S2b data-plane GTP-U
 +├── diameter_*         # SWm/SWx/S6b
 +├── service_*          # KPI сервисов (attach, availability, uptime)
 +├── session_*          # Состояние сессий (IKE SA, Child SA, GTP, subscribers)
 +├── app_*              # Метрики приложения (memory, threads, logs)
 +└── system_*           # Системные метрики (CPU, disk, network)
 +</code>
 +
 +===== 4. Перечень метрик =====
 +
 +Все метрики экспортируются через единый ''/metrics'' endpoint в текстовом формате Prometheus. Именование следует правилам Prometheus: ''epdg_<группа>_<имя>[_unit]'', тип Counter имеет суффикс ''_total'', Histogram — суффикс ''_seconds'' / ''_bytes''.
 +
 +==== 4.1 Config (2) ====
 +
 +^ Имя ^ Тип ^ Назначение ^
 +| ''epdg_config_status'' | Gauge | Статус конфигурации компонента (0=error, 1=ok) |
 +| ''epdg_config_reload_total'' | Counter | Счётчик конфигурационных загрузок (success/failure) |
 +
 +==== 4.2 Network (1) ====
 +
 +^ Имя ^ Тип ^ Назначение ^
 +| ''epdg_network_connection_status'' | Gauge | Статус TCP/UDP-соединения к узлу (0=down, 1=up) — применяется к PGW (S2b), AAA (SWm), HSS (SWx) |
 +
 +==== 4.3 IKEv2 SWu (3) ====
 +
 +^ Имя ^ Тип ^ Назначение ^
 +| ''epdg_ikev2_messages_total'' | Counter | Счётчик IKEv2 сообщений (IKE_SA_INIT / IKE_AUTH / CREATE_CHILD_SA / INFORMATIONAL) |
 +| ''epdg_ikev2_request_duration_seconds'' | Histogram | Распределение времени ответа на запросы IKEv2  |
 +| ''epdg_ikev2_errors_total'' | Counter | IKEv2 ошибки (NO_PROPOSAL_CHOSEN, AUTHENTICATION_FAILED, INVALID_SYNTAX и т.д.) |
 +
 +==== 4.4 GTPv2-C S2b (4) ====
 +
 +^ Имя                                    ^ Тип        ^ Назначение                                              ^
 +| ''epdg_gtp_messages_total''            | Counter    | Сообщения GTPv2-C (Create/Modify/Delete Session, Echo)  |
 +| ''epdg_gtp_request_duration_seconds''  | Histogram  | Время ожидания запрос → ответ                                |
 +| ''epdg_gtp_errors_total''              | Counter    | GTP-C ошибки по Cause Code                              |
 +| ''epdg_gtp_retransmissions_total''     | Counter    | Перенаправление GTP-C запросов                          |
 +
 +==== 4.5 GTP-U data plane (3) ====
 +
 +^ Имя ^ Тип ^ Назначение ^
 +| ''epdg_gtpu_packets_total'' | Counter | Пакеты через GTP-U туннель (uplink/downlink) |
 +| ''epdg_gtpu_bytes_total'' | Counter | Байты через GTP-U туннель |
 +| ''epdg_gtpu_errors_total'' | Counter | Ошибки туннелирования (TEID mismatch, decap fail) |
 +
 +==== 4.6 Diameter SWm/SWx/S6b (5) ====
 +
 +^ Имя ^ Тип ^ Назначение ^
 +| ''epdg_diameter_messages_total'' | Counter | DER/DEA (SWm), MAR/MAA (SWx), AAR/AAA (S6b), STR/STA |
 +| ''epdg_diameter_request_duration_seconds'' | Histogram | Время ожидания запрос → ответ по Diameter |
 +| ''epdg_diameter_errors_total'' | Counter | Ошибки по Experimental-Result-Code |
 +| ''epdg_diameter_watchdog_status'' | Gauge | Статус DWR/DWA watchdog до узла (0=timeout, 1=ok) |
 +| ''epdg_diameter_connection_status'' | Gauge | Статус соединения по Diameter до узла (0=disconnected, 1=connected) |
 +
 +==== 4.7 Service KPI (4) ====
 +
 +^ Имя ^ Тип ^ Назначение ^
 +| ''epdg_service_attach_total'' | Counter | Попытки соединения (success/failure) по APN |
 +| ''epdg_service_attach_duration_seconds'' | Histogram | Длительность соединения (IKE_SA_INIT → session ready) |
 +| ''epdg_service_availability'' | Gauge | Флаг доступности (0=down, 1=up) |
 +| ''epdg_service_uptime_seconds'' | Gauge | Время доступности сервиса |
 +
 +==== 4.8 Session State (4) ====
 +
 +^ Имя ^ Тип ^ Назначение ^
 +| ''epdg_session_ike_sa_total'' | Gauge | Активные IKE SA |
 +| ''epdg_session_child_sa_total'' | Gauge | Активные Child SA (IPSec tunnels) |
 +| ''epdg_session_gtp_sessions_total'' | Gauge | Активные GTP-C сессии на S2b |
 +| ''epdg_session_subscribers_total'' | Gauge | Уникальные абоненты (подключённые UE) |
 +
 +==== 4.9 Application (3) ====
 +
 +^ Имя ^ Тип ^ Назначение ^
 +| ''epdg_app_threads_total'' | Gauge | Общее число рабочих потоков |
 +| ''epdg_app_memory_bytes'' | Gauge | Память процесса по типам |
 +| ''epdg_app_log_messages_total'' | Counter | Лог-сообщения по уровням (debug/info/warn/error/fatal) |
 +
 +==== 4.10 System (4) ====
 +
 +^ Имя ^ Тип ^ Назначение ^
 +| ''epdg_system_cpu_usage_percent'' | Gauge | Загрузка CPU |
 +| ''epdg_system_memory_bytes'' | Gauge | Системная память |
 +| ''epdg_system_disk_bytes'' | Gauge | Дисковое пространство |
 +| ''epdg_system_open_fds'' | Gauge | Открытые описания файлов |
 +
 +==== Типы метрик (напоминание) ====
 +
 +^ Тип ^ Назначение ^
 +| **Counter** | Монотонно растущий счётчик (сообщения, ошибки, перезагрузки) |
 +| **Gauge** | Текущее значение (активные сессии, память, статус) |
 +| **Histogram** | Распределение значений с автоматическими срезами по интервалам (длительность, время жизни) |
 +
 +===== 5. Интерфейсы интеграции =====
 +
 +<mermaid>
 +flowchart LR
 +    CORE["VAS Experts<br/>ePDG Monitoring"]
 +
 +    CORE --> P["Prometheus<br/>CNCF / OpenMetrics"]
 +    CORE --> S["SNMP v2c<br/>EPDG-MIB"]
 +    CORE --> G["Grafana<br/>JSON Provisioning"]
 +    CORE --> W["Webhooks<br/>ChatOps"]
 +    CORE --> AM["Alertmanager<br/>Routing"]
 +
 +    P --> P1["Cloud-native NMS<br/>Thanos / Cortex / Mimir"]
 +    S --> S1["Legacy NMS<br/>HP OpenView, NetAct<br/>IBM Tivoli"]
 +    G --> G1["NOC Wall Displays<br/>Drill-down Analytics"]
 +    W --> W1["Telegram / Slack<br/>PagerDuty / OpsGenie"]
 +    AM --> AM1["Smart routing<br/>Severity-based"]
 +</mermaid>
 +
 +==== 5.1 Prometheus (CNCF Standard) ====
 +
 +Нативный ''/metrics'' endpoint на порту **9817** встроен в fast-epdg. Формат — стандартный текстовый формат Prometheus v0.0.4 (совместим с OpenMetrics). Поддерживается объединение для агрегации с центральным Prometheus оператора; поддержка команды remote_write для долгосрочного хранения в Thanos, Cortex, Grafana Mimir.
 +
 +==== 5.2 SNMP v2c — EPDG-MIB ====
 +
 +**47 OID** покрывают SMI-аналог Prometheus-метрик + **14 trap notifications** (с парами raise/clear согласно RFC 3877 ALARM-MIB). Совместимость с HP OpenView, IBM Tivoli NetCool, Nokia NetAct, Huawei U2000.
 +
 +<mermaid>
 +flowchart TB
 +    IANA["IANA PEN<br/>enterprises<br/>.1.3.6.1.4.1"]
 +    VAS["VAS Experts<br/>.1.3.6.1.4.1.43823<br/>(vas.expert)"]
 +    EPDG["EPDG-MIB<br/>.43823.1"]
 +    EPC["EPC Monitoring<br/>.43823.100"]
 +
 +    IANA --> VAS
 +    VAS --> EPDG
 +    VAS --> EPC
 +
 +    EPDG --> OBJ["epdgObjects<br/>.43823.1.1"]
 +    EPDG --> NOTIF["epdgNotifications<br/>.43823.1.2<br/>14 trap types"]
 +    EPDG --> CONF["epdgConformance<br/>.43823.1.3"]
 +
 +    OBJ --> SERVICE["service .1.1.1<br/>4 OID"]
 +    OBJ --> IKE["ikev2 .1.1.2<br/>6 OID"]
 +    OBJ --> GTP["gtp .1.1.3<br/>8 OID"]
 +    OBJ --> DIAM["diameter .1.1.4<br/>7 OID"]
 +    OBJ --> SESS["sessions .1.1.5<br/>8 OID"]
 +    OBJ --> SYS["system .1.1.6<br/>8 OID"]
 +    OBJ --> NET["network .1.1.7<br/>6 OID"]
 +
 +    NOTIF --> TRAPAGR["7 raise / 7 clear<br/>pairs"]
 +</mermaid>
 +
 +Примеры SNMP-запросов:
 +
 +<code bash>
 +# Все дерево ePDG
 +snmpwalk -v2c -c public <host> .1.3.6.1.4.1.43823.1
 +
 +# Service availability (Gauge 0..1)
 +snmpget -v2c -c public <host> .1.3.6.1.4.1.43823.1.1.1.1.0
 +</code>
 +
 +
 +==== 5.3 Grafana ====
 +
 +**4 поддерживающих JSON дашборда** (35+ панелей суммарно):
 +  * **ePDG Overview** — доступность, KPI соединений, сессии, состояние интерфейсов
 +  * **IKEv2 Details** — сообщения, производительность, ошибки, жизненный цикл IKE SA
 +  * **GTP Details** — GTPv2-C + GTP-U данные по PGW узлам
 +  * **Diameter Details** — сообщения по приложениям, задержки, watchdog
 +
 +Автоматическая установка через API, поддерживающее Grafana. Адаптивный дизайн для мониторов состояния центра управления сети (NOC) с автообновлением каждые 15 секунд.
 +
 +==== 5.4 Alertmanager Webhooks ====
 +
 +Webhook-интерфейс для интеграции с любой системой оповещений: Telegram Bot, Slack, PagerDuty Events API v2, OpsGenie, Microsoft Teams. Отдельный **SNMP Trap Sender** service конвертирует Alertmanager webhooks в SNMP v2c traps с Enterprise OID.
 +
 +===== 6. Система алармов =====
 +
 +==== Категории алармов ====
 +
 +^ Критичность   ^ Алармы                                                                                                                                                                                                                            ^ Описание                                                          ^ Реакция                                                                            ^
 +| **Critical**  | ''ePDG_Service_Down'', ''ePDG_High_Attach_Failure_Rate'', ''ePDG_PGW_Unreachable'', ''ePDG_AAA_Unreachable'', ''ePDG_Diameter_Watchdog_Timeout''                                                                                  | Компонент недоступен, массовый отказ соединений, узлы недоступны  | Немедленная эскалация: Email + SNMP Trap + Webhook. Повтор раз в 1 час             |
 +| **Warning**   | ''ePDG_High_IKEv2_Latency'', ''ePDG_High_GTP_Latency'', ''ePDG_High_IKEv2_Error_Rate'', ''ePDG_High_GTP_Error_Rate'', ''ePDG_High_Memory_Usage'', ''ePDG_High_CPU_Usage'', ''ePDG_Low_Disk_Space'', ''ePDG_High_Error_Log_Rate''  | Деградация производительности, аномалии ресурсов                  | Email. Повтор раз в 4 часа. Подавляется при наличии Critical на том же компоненте  |
 +
 +==== Полный перечень алармов (20+ правил) ====
 +
 +<mermaid>
 +flowchart LR
 +    AL["ePDG Alert Rules<br/>20+"]
 +
 +    AL --> CR["Critical<br/>5 rules"]
 +    AL --> WR["Warning<br/>8 rules"]
 +    AL --> INFO["Recording<br/>34 rules"]
 +
 +    CR --> C1["Service_Down<br/>availability == 0"]
 +    CR --> C2["Attach_Failure_Rate<br/>> 10%"]
 +    CR --> C3["PGW_Unreachable<br/>connection_status{s2b} == 0"]
 +    CR --> C4["AAA_Unreachable<br/>connection_status{swm} == 0"]
 +    CR --> C5["Diameter_Watchdog_Timeout<br/>watchdog_status == 0"]
 +
 +    WR --> W1["High_IKEv2_Latency<br/>p95 > 1.0 s"]
 +    WR --> W2["High_GTP_Latency<br/>p95 > 0.5 s"]
 +    WR --> W3["High_IKEv2_Error_Rate<br/>> 5%"]
 +    WR --> W4["High_GTP_Error_Rate<br/>> 5%"]
 +    WR --> W5["High_Memory_Usage<br/>> 80%"]
 +    WR --> W6["High_CPU_Usage<br/>> 80%"]
 +    WR --> W7["Low_Disk_Space<br/>< 10%"]
 +    WR --> W8["High_Error_Log_Rate<br/>> 10/s"]
 +
 +    INFO --> I1["attach_success_rate<br/>preaggregated"]
 +    INFO --> I2["p95_p99_latency<br/>preaggregated"]
 +    INFO --> I3["throughput<br/>preaggregated"]
 +</mermaid>
 +
 +==== Процесс обработки алармов ====
 +
 +<mermaid>
 +sequenceDiagram
 +    participant M as Метрика (Prometheus)
 +    participant R as Alert Rule (PromQL)
 +    participant AM as Alertmanager
 +    participant E as Email (SMTP)
 +    participant SG as SNMP Trap Gateway
 +    participant NMS as Внешняя NMS
 +    participant W as Webhook (ChatOps)
 +
 +    M->>R: Значение превышает порог
 +    R->>R: Ожидание (for: 1-10 мин)
 +    R->>AM: Alert FIRING
 +    AM->>AM: Group by [alertname, component]
 +    AM->>AM: Inhibition check (critical подавляет warning)
 +
 +    alt severity = critical
 +        AM->>E: Email [CRITICAL]
 +        AM->>SG: Webhook → SNMP Trap
 +        SG->>NMS: SNMP v2c Trap (OID .1.3.6.1.4.1.43823.1.2.X)
 +        AM->>W: Webhook (Telegram / PagerDuty)
 +    else severity = warning
 +        AM->>E: Email [WARNING]
 +    end
 +
 +    Note over M,R: Метрика возвращается в норму
 +    R->>AM: Alert RESOLVED
 +    R->>SG: clear-trap (paired notification)
 +    AM->>E: Email [RESOLVED]
 +</mermaid>
 +
 +==== Особенности ====
 +
 +  * **Inhibition**: Critical-алармы автоматически подавляют Warning для того же компонента
 +  * **Grouping**: Алармы группируются по ''alertname'' + ''component'' с 30-секундным окном
 +  * **Dead time / Hysteresis**: параметр ''for'' от 1 до 10 минут предотвращает ложные срабатывания
 +  * **Trap pairing**: raise/clear одновременных событий для соответствия RFC 3877 ALARM-MIB
 +
 +
 +===== 7. Визуализация и операционные дашборды =====
 +
 +==== Состав дашбордов ====
 +
 +^ Дашборд ^ Панели ^ Назначение ^
 +| **ePDG Overview** | 10 | Доступность сервиса, коэффициент успешного подключения, количество активных сеансов, состояние SWu/SWm/S2b, пропускная способность по интерфейсам |
 +| **IKEv2 Details** | 10 | Сообщения в секунду по типам, гистограмма продолжительности запросов, задержка в 95-м процентиле, ошибки по типам, жизненный цикл IKE SA |
 +| **GTP Details** | 8 | Сообщения GTPv2-C по PGW, повторные передачи, ошибки по коду причины, GTP-U (восходящий/нисходящий канал), несущие |
 +| **Diameter Details** | 7 | Количество сообщений по приложениям (SWm/SWx/S6b), продолжительность запросов, состояние сторожевого таймера, распределение кодов результатов, хронология состояний соединений |
 +
 +==== Дизайн для Центра управления сетью (NOC) ====
 +
 +<mermaid>
 +flowchart TB
 +    NOC["NOC Dashboard Layer"]
 +
 +    NOC --> OVER["ePDG Overview<br/>KPI Summary"]
 +    NOC --> IKE["IKEv2 Details<br/>Drill-down"]
 +    NOC --> GTP["GTP Details<br/>Drill-down"]
 +    NOC --> DIA["Diameter Details<br/>Drill-down"]
 +
 +    OVER -->|Click attach KPI| IKE
 +    OVER -->|Click session count| GTP
 +    OVER -->|Click peer status| DIA
 +</mermaid>
 +
 +  * **Автообновление**: 15-секундный период обновления
 +  * **Адаптивная цветовая схема**: зелёный → жёлтый → красный по пороговым значениям
 +  * **Drill-down**: от Overview к детализации до компонента
 +  * **Time-range selector**: от 5 минут до 30 дней истории
 +  * **JSON provisioning**: дашборды разворачиваются автоматически
 +
 +===== 8. Интеграция в единый стек EPC Monitoring =====
 +
 +ePDG мониторинг полностью интегрирован в общий мониторинг пакетного ядра:
 +
 +<mermaid>
 +flowchart TB
 +    subgraph Common["Единый Monitoring Stack"]
 +        PROM["Prometheus"]
 +        GRAF["Grafana"]
 +        AM["Alertmanager"]
 +    end
 +
 +    subgraph Sources["Источники метрик EPC"]
 +        DPI["FastDPI<br/>:9110"]
 +        SMF["SMF /metrics<br/>:9090"]
 +        PCEF["fast-pcef /metrics<br/>:9090"]
 +        PCRF["FastPCRF"]
 +        EPDG["fast-epdg<br/>:9817"]
 +    end
 +
 +    DPI --> PROM
 +    SMF --> PROM
 +    PCEF --> PROM
 +    PCRF --> PROM
 +    EPDG --> PROM
 +
 +    PROM --> GRAF
 +    PROM --> AM
 +</mermaid>
 +
 +Оператор NOC видит **все компоненты EPC** (DPI, SMF, PCEF, FastPCRF, ePDG) в одном интерфейсе Grafana, с единой системой алармов и маршрутизации уведомлений через один Alertmanager.
 +
 +===== 9. Покрытие метрик по уровням OSI =====
 +
 +<mermaid>
 +graph LR
 +    L1["L1 Physical<br/>NIC counters via system"]
 +    L2["L2 Data Link<br/>MAC, VLAN"]
 +    L3["L3 Network<br/>IP, IPSec ESP, GTP-U"]
 +    L4["L4 Transport<br/>TCP/UDP/SCTP"]
 +    L5["L5 Session<br/>GTPv2-C, IKEv2"]
 +    L6["L6 Presentation<br/>IKEv2/IPSec encryption, EAP-AKA'"]
 +    L7["L7 Application<br/>Diameter, service bearer ops"]
 +    Operations["Operations<br/>KPI, SLA, Capacity"]
 +    CX["CX Level<br/>Subscriber Experience"]
 +
 +    L1 --> L2 --> L3 --> L4 --> L5 --> L6 --> L7 --> Operations --> CX
 +
 +    style L1 fill:#e74c3c,color:#fff
 +    style L2 fill:#e67e22,color:#fff
 +    style L3 fill:#f39c12,color:#fff
 +    style L4 fill:#2ecc71,color:#fff
 +    style L5 fill:#1abc9c,color:#fff
 +    style L6 fill:#3498db,color:#fff
 +    style L7 fill:#9b59b6,color:#fff
 +    style Operations fill:#34495e,color:#fff
 +    style CX fill:#2c3e50,color:#fff
 +</mermaid>
 +
 +==== Детализация метрик по уровням ====
 +Модель OSI:
 +
 +^ Уровень                         ^ Метрики  ^ Примеры                                                                                                                                                 ^
 +| **L1/L2 Physical / Data Link**  | —        | Покрывается отдельным node_exporter / аналогом на уровне ОС (не входит в перечень метрик ePDG)                                                          |
 +| **L3 Network / IPSec tunnels**  | 3        | ''epdg_gtpu_packets_total'', ''epdg_gtpu_bytes_total'', ''epdg_gtpu_errors_total'' — GTP-U data plane                                                   |
 +| **L4 Transport**                | 1        | ''epdg_network_connection_status'' — TCP к узлам(PGW/AAA/HSS)                                                                                           |
 +| **L5 Session**                  | 3        | ''epdg_session_ike_sa_total'', ''epdg_session_child_sa_total'', ''epdg_session_gtp_sessions_total''                                                     |
 +| **L6 Presentation/Security**    | 3        | ''epdg_ikev2_messages_total'', ''epdg_ikev2_request_duration_seconds'', ''epdg_ikev2_errors_total'' — IKEv2/IPSec шифрование и EAP-AKA' аутентификация  |
 +| **L7 Application**              | 9        | ''epdg_diameter_*'' (SWm/SWx/S6b, 5 метрик), ''epdg_gtp_*'' (GTPv2-C, 4 метрики)                                                                        |
 +
 +Операторский уровень:
 +^ Уровень ^ Метрики ^ Примеры ^
 +| **Operations** | 11 | ''epdg_service_availability'', ''epdg_service_uptime_seconds'', ''epdg_app_*'' (3), ''epdg_system_*'' (4), ''epdg_config_*'' (2) |
 +| **Customer Experience** | 3 | ''epdg_service_attach_duration_seconds'' p95, ''epdg_service_attach_total'' (success rate), ''epdg_ikev2_request_duration_seconds'' p99 |
 +
 +==== Уровень 9: Качество восприятия сервиса VoWiFi ====
 +
 +^ QoE-индикатор                   ^ Метрики-источники                                              ^ Интерпретация                                                       ^
 +| **Время подключения VoWiFi**    | ''epdg_service_attach_duration_seconds'' p95                   | > 3 сек — абонент замечает задержку при переключении на WiFi        |
 +| **Непрерывность сервиса**       | ''epdg_session_ike_sa_total'' delta                            | Массовый сброс > 50 IKE SA = проблема доступности                   |
 +| **Успешность аутентификации**   | ''ePDG_High_Attach_Failure_Rate'' alert rate                   | > 5% = проблема с HSS/AAA узлами                                    |
 +| **Задержка назначения bearer**  | ''epdg_gtp_request_duration_seconds{msg=create-session}'' p99  | > 500 мс — задержка готовности голосового канала                    |
 +| **Ошибки GTP-U tunnel**         | ''epdg_gtpu_errors_total'' rate / ''epdg_gtpu_packets_total''  | > 0.1% = деградация качества голоса                                 |
 +| **IKEv2-надёжность**            | ''epdg_ikev2_errors_total'' по типам                           | NO_PROPOSAL_CHOSEN / AUTHENTICATION_FAILED — проблемы с certs / UE  |
 +
 +
 +===== 10. Стандарты и совместимость =====
 +
 +^ Стандарт                          ^ Область                            ^ Применение                                                   ^
 +| **3GPP TS 29.273**                | SWx/S6b/SWm                        | Методология учёта Diameter-сообщений и результирующих кодов  |
 +| **3GPP TS 24.302**                | SWu (IKEv2)                        | Определение IKEv2 типов сообщений и кодов ошибок             |
 +| **3GPP TS 33.402**                | 3GPP security for non-3GPP access  | Параметры безопасности EAP-AKA' / IKEv2                      |
 +| **3GPP TS 23.402**                | Non-3GPP access architecture       | Структура интерфейсов (SWu/SWm/SWx/S6b/S2b)                  |
 +| **3GPP TS 32.421**                | Performance Measurement            | Методология сбора KPI                                        |
 +| **3GPP TS 32.409**                | Performance measurement charging   | Структура счётчиков                                          |
 +| **IETF RFC 7296**                 | IKEv2                              | Типы сообщений, уведомления об ошибках, состояние SA         |
 +| **IETF RFC 6733**                 | Diameter                           | Command codes, Result-Codes                                  |
 +| **IETF RFC 4187**                 | EAP-AKA                            | Аутентификация через SIM                                     |
 +| **IETF RFC 3877**                 | ALARM MIB                          | Структура Enterprise MIB для алармов                         |
 +| **IETF RFC 3418**                 | SNMPv2 MIB                         | Совместимость SNMP v2c                                       |
 +| **Prometheus Exposition Format**  | Metrics (v0.0.4)                   | Формат экспорта метрик                                       |
 +| **OpenMetrics**                   | CNCF Standard                      | Перспективная совместимость                                  |
 +
 +
 +===== 11. Модель развёртывания =====
 +
 +<mermaid>
 +flowchart TB
 +    subgraph Host1["Сервер ePDG"]
 +        EPDG["fast-epdg<br/>(VoWiFi gateway)"]
 +        PLUGIN["/metrics endpoint<br/>:9817"]
 +        EPDG -.-> PLUGIN
 +    end
 +
 +    subgraph Host2["Сервер мониторинга"]
 +        PROM["Prometheus"]
 +        GRAF["Grafana"]
 +        AM["Alertmanager"]
 +        SNMPTRAP["SNMP Trap Sender<br/>(webhook gateway)"]
 +        PROM --> GRAF
 +        PROM --> AM
 +        AM --> SNMPTRAP
 +    end
 +
 +    subgraph Host3["Внешние системы"]
 +        NMS["Операторская NMS<br/>(HP OpenView /<br/>NetAct / Tivoli)"]
 +        CHAT["ChatOps<br/>(Telegram / PagerDuty)"]
 +    end
 +
 +    PLUGIN -->|HTTP :9817/metrics| PROM
 +    SNMPTRAP -->|UDP 162| NMS
 +    AM -->|Webhook| CHAT
 +</mermaid>
 +
 +==== Характеристики развёртывания ====
 +
 +^ Параметр                 ^ Значение                                       ^
 +| **Metrics footprint**    | Интегрированные (~2 MB memory overhead)        |
 +| **Внешние зависимости**  | Самодостаточный пакет ''fast-epdg'' (rpm)      |
 +| **Управление**           | ''fast-epdg.service'' systemd                  |
 +| **Конфигурация**         | Секция ''monitoring'' в ''fast-epdg.conf''     |
 +| **Обновление**           | Обновление конфигурации без прерывания работы  |
 +| **ОС**                   | Linux (RHEL/CentOS 8+, Ubuntu 22.04+)          |
 +| **Порт**                 | 9817 TCP (listen 0.0.0.0, настраивается)       |
 +| **Время развёртывания**  | < 5 минут (enable plugin в config + restart)   |
 +
 +==== Варианты размещения ====
 +
 +  * **On-premise** — плагин работает в адресном пространстве fast-epdg, нулевое потребление ресурсов
 +  * **Co-located Prometheus** — Prometheus собирает метрики с приложения, работающего на том же хосте
 +  * **Централизованный** — единый Prometheus собирает со всех ePDG узлов
 +
 +===== 12. Конфигурация экспортёра метрик =====
 +
 +Секция ''monitoring'' в ''fast-epdg.conf'':
 +
 +<code>
 +monitoring {
 +    enabled = yes
 +    listen_port = 9817
 +    listen_address = 0.0.0.0
 +    update_interval = 10
 +    metrics {
 +        ikev2 = yes
 +        gtp = yes
 +        diameter = yes
 +        service = yes
 +        session = yes
 +        app = yes
 +        system = yes
 +    }
 +}
 +</code>
 +
 +Каждая группа метрик может быть независимо включена/выключена без перекомпиляции.
 +