{{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
}
}
Каждая группа метрик может быть независимо включена/выключена без перекомпиляции.