Содержание

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.

Ключевые преимущества

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 <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

5.3 Grafana

4 поддерживающих JSON дашборда (35+ панелей суммарно):

Автоматическая установка через 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]

Особенности

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

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)

Варианты размещения

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
    }
}

Каждая группа метрик может быть независимо включена/выключена без перекомпиляции.