{{indexmenu_n>1}} ====== VAS Experts ePDG Monitoring System ====== ===== Комплексная система мониторинга шлюза VoWiFi (ePDG) ===== ===== 1. Обзор решения ===== Система мониторинга VAS Experts ePDG Monitoring обеспечивает полный операционный контроль компонента **fast-epdg** — шлюза VoWiFi (Voice over WiFi), реализующего пакетный шлюз данных (Evolved Packet Data Gateway) согласно 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-дашбордах без отложенной агрегации. * **Проактивное обнаружение аномалий** — 20+ алармов с автоматической эскалацией по важности. Недоступность PGW/AAA, рост задержек IKEv2, рост ошибок EAP-AKA' — детектируются до того, как абоненты заметят проблемы со звонками. * **Открытые интерфейсы интеграции** — Prometheus, SNMP v2c (EPDG-MIB под официальным enterprise OID VAS Experts ''.1.3.6.1.4.1.43823'' / поддерево ePDG ''.43823.1''), Alertmanager webhooks, Grafana provisioning. Интеграция в существующую NMS/OSS инфраструктуру без vendor lock-in. * **Zero external dependencies на plugin-уровне** — встроенный ''/metrics'' endpoint в fast-epdg, без Java, без JMX, без внешних агентов. Publish в формате Prometheus text exposition поверх HTTP. * **Покрытие всего стека SWu→S2b** — IKEv2 (SWu), Diameter SWm/SWx/S6b, GTPv2-C (S2b) и GTP-U data plane — в одном endpoint. 33 метрики суммарно, покрывают control plane и data plane. ===== 2. Архитектура системы мониторинга ===== flowchart TB subgraph DataPlane["Data Plane"] IPSEC["IPSec ESP
IKEv2 SA / Child SA
Kernel xfrm"] GTPU["GTP-U Tunneller
S2b Data
ePDG ↔ PGW"] end subgraph ControlPlane["Control Plane"] IKE["IKEv2 SWu
EAP-AKA' auth"] DIAM["Diameter Client
SWx/SWm/S6b"] GTPC["GTPv2-C S2b
to PGW/SMF"] CTRL["ePDG Controller
Attach/Detach FSM"] end subgraph Collection["Сбор метрик"] PROMEXP["fast-epdg
/metrics endpoint
:9817"] end subgraph Storage["Хранение"] PROM["Prometheus
TSDB
15-day retention"] end subgraph Visualization["Визуализация"] GRAF["Grafana
4 дашборда, 35+ панелей"] end subgraph Alerting["Алармирование"] AM["Alertmanager
Routing / Inhibition"] EMAIL["Email SMTP"] SNMPGW["SNMP Trap Sender
Webhook → Trap gateway"] NMS["Внешняя NMS
SNMP v2c UDP/162"] WH["Webhooks
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
==== Четырёхуровневая архитектура мониторинга ==== ^ Уровень ^ Компонент ^ Технология ^ | **Сбор** (Collection) | Встроенный ''/metrics'' endpoint fast-epdg | Prometheus text exposition поверх HTTP | | **Хранение** (Storage) | Prometheus TSDB | Локальное хранение, 15-дневное хранение по умолчанию | | **Визуализация** (Visualization) | Grafana + JSON provisioning | Автозагрузка 4 дашбордов | | **Алармирование** (Alerting) | Alertmanager + SNMP Trap Sender | PromQL rules → webhook → SNMP v2c trap | ===== 3. Компоненты и метрики ===== ==== Покрытие мониторингом ==== flowchart LR EXP["fast-epdg
/metrics :9817"] EXP --> CFG["Config
2 метрики"] EXP --> NET["Network
1 метрика"] EXP --> PROTO["Protocols L5-L7
15 метрик"] EXP --> SVC["Service KPI
4 метрики"] EXP --> SESS["Session State
4 метрики"] EXP --> APP["Application
3 метрики"] EXP --> SYS["System
4 метрики"] PROTO --> IKEV2["IKEv2
SWu — 3"] PROTO --> GTPC["GTPv2-C
S2b — 4"] PROTO --> GTPU["GTP-U
S2b data — 3"] PROTO --> DIA["Diameter
SWm/SWx/S6b — 5"]
==== Количественный обзор по категориям ==== ^ Категория ^ Кол-во метрик ^ Интервал опроса ^ Ключевые показатели ^ | **Config** | 2 | 10 с | Статус конфигурации, счётчик reload | | **Network** | 1 | 10 с | Статус соединений к peers (PGW/AAA/HSS) | | **IKEv2 (SWu)** | 3 | 10 с | Сообщения по типам (IKE_SA_INIT, IKE_AUTH, CREATE_CHILD_SA), latency histogram, ошибки | | **GTPv2-C (S2b)** | 4 | 10 с | Сообщения (Create/Modify/Delete Session), latency, ошибки, retransmissions | | **GTP-U data plane** | 3 | 10 с | Packets/bytes, tunnel ошибки | | **Diameter (SWm/SWx/S6b)** | 5 | 10 с | Сообщения по command code (DER/DEA, MAR/MAA, AAR/AAA), latency, ошибки, watchdog, connection status | | **Service KPI** | 4 | 10 с | Attach success rate, attach duration histogram, service availability, uptime | | **Session State** | 4 | 10 с | IKE SA, Child SA, GTP sessions, total subscribers | | **Application** | 3 | 10 с | Threads total, memory, лог-сообщения по уровням | | **System** | 4 | 10 с | CPU usage, memory, disk usage, открытые FD | | **Итого** | **33 метрики** | | | ==== Принципы именования ==== Все метрики имеют префикс ''epdg_'' и организованы по иерархии: 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) ===== 4. Перечень метрик ===== Все метрики экспортируются через единый ''/metrics'' endpoint в формате Prometheus text exposition. Именование следует правилам 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 | Счётчик конфигурационных reload (success/failure) | ==== 4.2 Network (1) ==== ^ Имя ^ Тип ^ Назначение ^ | ''epdg_network_connection_status'' | Gauge | Статус TCP/UDP-соединения к peer (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 request | | ''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 | Latency request→response | | ''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 tunnel (uplink/downlink) | | ''epdg_gtpu_bytes_total'' | Counter | Байты через GTP-U tunnel | | ''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 | Latency Diameter request→answer | | ''epdg_diameter_errors_total'' | Counter | Ошибки по Experimental-Result-Code | | ''epdg_diameter_watchdog_status'' | Gauge | Статус DWR/DWA watchdog per peer (0=timeout, 1=ok) | | ''epdg_diameter_connection_status'' | Gauge | Статус Diameter connection per peer (0=disconnected, 1=connected) | ==== 4.7 Service KPI (4) ==== ^ Имя ^ Тип ^ Назначение ^ | ''epdg_service_attach_total'' | Counter | Попытки attach (success/failure) по APN | | ''epdg_service_attach_duration_seconds'' | Histogram | Длительность attach (IKE_SA_INIT → session ready) | | ''epdg_service_availability'' | Gauge | Availability flag (0=down, 1=up) | | ''epdg_service_uptime_seconds'' | Gauge | Service uptime | ==== 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 sessions на 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 usage процесса | | ''epdg_system_memory_bytes'' | Gauge | Системная память | | ''epdg_system_disk_bytes'' | Gauge | Дисковое пространство | | ''epdg_system_open_fds'' | Gauge | Открытые file descriptors | ==== Типы метрик (напоминание) ==== ^ Тип ^ Назначение ^ | **Counter** | Монотонно растущий счётчик (сообщения, ошибки, reload-ы) | | **Gauge** | Текущее значение (активные сессии, память, статус) | | **Histogram** | Распределение значений с автоматическими percentile bucket'ами (latency, lifetime) | ===== 5. Интерфейсы интеграции ===== flowchart LR CORE["VAS Experts
ePDG Monitoring"] CORE --> P["Prometheus
CNCF / OpenMetrics"] CORE --> S["SNMP v2c
EPDG-MIB"] CORE --> G["Grafana
JSON Provisioning"] CORE --> W["Webhooks
ChatOps"] CORE --> AM["Alertmanager
Routing"] P --> P1["Cloud-native NMS
Thanos / Cortex / Mimir"] S --> S1["Legacy NMS
HP OpenView, NetAct
IBM Tivoli"] G --> G1["NOC Wall Displays
Drill-down Analytics"] W --> W1["Telegram / Slack
PagerDuty / OpsGenie"] AM --> AM1["Smart routing
Severity-based"]
==== 5.1 Prometheus (CNCF Standard) ==== Нативный ''/metrics'' endpoint на порту **9817** встроен в fast-epdg. Формат — стандартный Prometheus text exposition v0.0.4 (OpenMetrics compatible). Поддерживается объединение для агрегации с центральным Prometheus оператора; remote_write для долгосрочного хранения в Thanos, Cortex, Grafana Mimir. ==== 5.2 SNMP v2c — EPDG-MIB ==== Enterprise OID VAS Experts (vas.expert): **''.1.3.6.1.4.1.43823''** (регистрация IANA PEN). ePDG MIB живёт поддеревом **''.1.3.6.1.4.1.43823.1''**. Другие продукты VAS Experts используют соседние поддеревья (например EPC Monitoring на ''.43823.100''). flowchart TB IANA["IANA PEN
enterprises
.1.3.6.1.4.1"] VAS["VAS Experts
.1.3.6.1.4.1.43823
(vas.expert)"] EPDG["EPDG-MIB
.43823.1"] EPC["EPC Monitoring
.43823.100"] IANA --> VAS VAS --> EPDG VAS --> EPC EPDG --> OBJ["epdgObjects
.43823.1.1"] EPDG --> NOTIF["epdgNotifications
.43823.1.2
14 trap types"] EPDG --> CONF["epdgConformance
.43823.1.3"] OBJ --> SERVICE["service .1.1.1
4 OID"] OBJ --> IKE["ikev2 .1.1.2
6 OID"] OBJ --> GTP["gtp .1.1.3
8 OID"] OBJ --> DIAM["diameter .1.1.4
7 OID"] OBJ --> SESS["sessions .1.1.5
8 OID"] OBJ --> SYS["system .1.1.6
8 OID"] OBJ --> NET["network .1.1.7
6 OID"] NOTIF --> TRAPAGR["7 raise / 7 clear
pairs"]
Итого **47 OID** покрывают SMI-аналог Prometheus-метрик + **14 trap notifications** (с парами raise/clear согласно RFC 3877 ALARM-MIB). Совместимость с HP OpenView, IBM Tivoli NetCool, Nokia NetAct, Huawei U2000. Примеры SNMP-запросов: # Все дерево ePDG snmpwalk -v2c -c public .1.3.6.1.4.1.43823.1 # Service availability (Gauge 0..1) snmpget -v2c -c public .1.3.6.1.4.1.43823.1.1.1.1.0 ==== 5.3 Grafana ==== **4 поддерживающих JSON дашборда** (35+ панелей суммарно): * **ePDG Overview** — availability, attach KPI, sessions, interfaces status * **IKEv2 Details** — messages, performance, errors, IKE SA lifecycle * **GTP Details** — GTPv2-C + GTP-U данные по PGW peers * **Diameter Details** — messages по applications, latency, watchdog Автоматическая установка через Grafana provisioning API. Адаптивный дизайн для мониторов состояния центра управления сети (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. Система алармов ===== ==== Категории алармов ==== ^ Severity ^ Алармы ^ Описание ^ Реакция ^ | **Critical** | ''ePDG_Service_Down'', ''ePDG_High_Attach_Failure_Rate'', ''ePDG_PGW_Unreachable'', ''ePDG_AAA_Unreachable'', ''ePDG_Diameter_Watchdog_Timeout'' | Компонент недоступен, массовый отказ attach, peer unreachable | Немедленная эскалация: 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+ правил) ==== flowchart LR AL["ePDG Alert Rules
20+"] AL --> CR["Critical
5 rules"] AL --> WR["Warning
8 rules"] AL --> INFO["Recording
34 rules"] CR --> C1["Service_Down
availability == 0"] CR --> C2["Attach_Failure_Rate
> 10%"] CR --> C3["PGW_Unreachable
connection_status{s2b} == 0"] CR --> C4["AAA_Unreachable
connection_status{swm} == 0"] CR --> C5["Diameter_Watchdog_Timeout
watchdog_status == 0"] WR --> W1["High_IKEv2_Latency
p95 > 1.0 s"] WR --> W2["High_GTP_Latency
p95 > 0.5 s"] WR --> W3["High_IKEv2_Error_Rate
> 5%"] WR --> W4["High_GTP_Error_Rate
> 5%"] WR --> W5["High_Memory_Usage
> 80%"] WR --> W6["High_CPU_Usage
> 80%"] WR --> W7["Low_Disk_Space
< 10%"] WR --> W8["High_Error_Log_Rate
> 10/s"] INFO --> I1["attach_success_rate
preaggregated"] INFO --> I2["p95_p99_latency
preaggregated"] INFO --> I3["throughput
preaggregated"]
==== Процесс обработки алармов ==== 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] ==== Особенности ==== * **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) ==== flowchart TB NOC["NOC Dashboard Layer"] NOC --> OVER["ePDG Overview
KPI Summary"] NOC --> IKE["IKEv2 Details
Drill-down"] NOC --> GTP["GTP Details
Drill-down"] NOC --> DIA["Diameter Details
Drill-down"] OVER -->|Click attach KPI| IKE OVER -->|Click session count| GTP OVER -->|Click peer status| DIA
* **Автообновление**: 15-секундный период обновления * **Адаптивная цветовая схема**: зелёный → жёлтый → красный по пороговым значениям * **Drill-down**: от Overview к детализации до компонента * **Time-range selector**: от 5 минут до 30 дней истории * **JSON provisioning**: дашборды разворачиваются автоматически ===== 8. Интеграция в единый стек EPC Monitoring ===== ePDG мониторинг полностью интегрирован в общий мониторинг пакетного ядра: flowchart TB subgraph Common["Единый Monitoring Stack"] PROM["Prometheus"] GRAF["Grafana"] AM["Alertmanager"] end subgraph Sources["Источники метрик EPC"] DPI["FastDPI
:9110"] SMF["SMF /metrics
:9090"] PCEF["fast-pcef /metrics
:9090"] PCRF["FastPCRF"] EPDG["fast-epdg
:9817"] end DPI --> PROM SMF --> PROM PCEF --> PROM PCRF --> PROM EPDG --> PROM PROM --> GRAF PROM --> AM
Оператор NOC видит **все компоненты EPC** (DPI, SMF, PCEF, FastPCRF, ePDG) в одном интерфейсе Grafana, с единой системой алармов и маршрутизации уведомлений через один Alertmanager. ===== 9. Покрытие метрик по уровням OSI ===== graph LR L1["L1 Physical
NIC counters via system"] L2["L2 Data Link
MAC, VLAN"] L3["L3 Network
IP, IPSec ESP, GTP-U"] L4["L4 Transport
TCP/UDP/SCTP"] L5["L5 Session
GTPv2-C, IKEv2"] L6["L6 Presentation
IKEv2/IPSec encryption, EAP-AKA'"] L7["L7 Application
Diameter, service bearer ops"] Operations["Operations
KPI, SLA, Capacity"] CX["CX Level
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
==== Детализация метрик по уровням ==== Модель 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 к peers (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 peers | | **Задержка назначения bearer** | ''epdg_gtp_request_duration_seconds{msg=create-session}'' p99 | > 500 мс — задержка готовности voice path | | **Ошибки 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 message types и error codes | | **3GPP TS 33.402** | 3GPP security for non-3GPP access | EAP-AKA' / IKEv2 security parameters | | **3GPP TS 23.402** | Non-3GPP access architecture | Структура interfaces (SWu/SWm/SWx/S6b/S2b) | | **3GPP TS 32.421** | Performance Measurement | Методология KPI сбора | | **3GPP TS 32.409** | Performance measurement charging | Структура счётчиков | | **IETF RFC 7296** | IKEv2 | Message types, error notifications, SA states | | **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. Модель развёртывания ===== flowchart TB subgraph Host1["Сервер ePDG"] EPDG["fast-epdg
(VoWiFi gateway)"] PLUGIN["/metrics endpoint
:9817"] EPDG -.-> PLUGIN end subgraph Host2["Сервер мониторинга"] PROM["Prometheus"] GRAF["Grafana"] AM["Alertmanager"] SNMPTRAP["SNMP Trap Sender
(webhook gateway)"] PROM --> GRAF PROM --> AM AM --> SNMPTRAP end subgraph Host3["Внешние системы"] NMS["Операторская NMS
(HP OpenView /
NetAct / Tivoli)"] CHAT["ChatOps
(Telegram / PagerDuty)"] end PLUGIN -->|HTTP :9817/metrics| PROM SNMPTRAP -->|UDP 162| NMS AM -->|Webhook| CHAT
==== Характеристики развёртывания ==== ^ Параметр ^ Значение ^ | **Metrics footprint** | In-process (~2 MB memory overhead) | | **Внешние зависимости** | Самодостаточный пакет ''fast-epdg'' (rpm) | | **Управление** | ''fast-epdg.service'' systemd | | **Конфигурация** | Секция ''monitoring'' в ''fast-epdg.conf'' | | **Обновление** | Hot reload конфигурации без даунтайма | | **ОС** | Linux (RHEL/CentOS 8+, Ubuntu 22.04+) | | **Порт** | 9817 TCP (listen 0.0.0.0, настраивается) | | **Время развёртывания** | < 5 минут (enable plugin в config + restart) | ==== Варианты размещения ==== * **On-premise** — plugin работает в адресном пространстве fast-epdg, нулевой footprint * **Co-located Prometheus** — Prometheus рядом с ePDG, scrape через localhost * **Централизованный** — единый Prometheus собирает со всех ePDG узлов (federation) ===== 12. Конфигурация экспортёра метрик ===== Секция ''monitoring'' в ''fast-epdg.conf'': 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 } } Каждая группа метрик может быть независимо включена/выключена без перекомпиляции.