ECCM — централизованная система мониторинга и управления сетевым оборудованием, реализованная в виде набора микросервисов, развёртываемых в Docker-контейнерах.

Архитектура системы

Архитектурный паттерн

Микросервисная архитектура на основе Docker-контейнеров. Межсервисная коммуникация: асинхронная через RabbitMQ (Pub-Sub, RPC) + синхронная через gRPC/Protobuf.

Функциональные возможности

Backend-сервисы

СервисНазначение

backend-ui

API Gateway

device-manager

Основной сервис: управление устройствами, шаблоны, конфигурации

monitoring-service

SNMP-опрос, сбор телеметрии (горизонтально масштабируемый)

data-presenter

Агрегация и презентация данных (горизонтально масштабируемый)

cron-manager

Планировщик задач на устройствах. Подключается по SSH и управляет задачами. Также планирует периодические задачи

problem-manager

Корреляция событий, обнаружение проблем

notification-service

Уведомления о событиях по каналам доставки

delivery-manager

Используется для интеграции с SIEM, external alerting и т. д.

syslog-receiver

Приём syslog-сообщений от устройств

trap-receiver

Приём SNMP trap от устройств

upgrader

Управление ПО устройств, обновление

ztp-manager

Zero-Touch Provisioning устройств

terminal-manager

Веб-терминал (SSH-сессии к устройствам)

identity-provider

Аутентификация, авторизация, RBAC, OAuth/OIDC

license-service

Лицензирование системы и функционала

vsat-manager

Управление VSAT-устройствами
СервисНаружные портыВнутренний портПримечание
backend-ui-8081
device-manager-8083
monitoring-service-8088
data-presenter-8089
cron-manager-8082
problem-manager-8099
notification-service-8100
delivery-manager-8102
syslog-receiver${ECCM_SYSLOG_PORT}${ECCM_SYSLOG_PORT}Настраивается, по умолчанию 514
trap-receiver162162
-8098
upgrader6969
222222
-8084
ztp-manager-8095
terminal-manager-8097
identity-provider-9999
license-service-8103
vsat-manager-8105

Инфраструктурные сервисы

СервисНазначение
TimescaleDBОсновная база данных: реляционные данные + временные ряды (телеметрия). HA-режим: repmgr (failover)
RedisКэш, сессии пользователей
Redis Sentinel Сервис для обеспечения высокой доступности (High Availability) Redis в режиме кластера
RabbitMQМежсервисная асинхронная коммуникация (Pub-Sub, RPC)
Nginx (ECCM Gateway)API-шлюз, обратный прокси
Kea DHCPDHCP-сервер для ZTP
epg-serviceСервис лицензирования оборудования
keepalived + VRRPВиртуальный IP для HA-режима (cluster)
СервисНаружные портыВнутренний портПримечание
TimescaleDB54325432
Redis63796379
Redis Sentinel 2637926379В режиме кластера
RabbitMQ56715671
43694369В режиме кластера
2567225672В режиме кластера
Nginx (ECCM Gateway)${ECCM_WEB_PORT}, 80Настраивается, по умолчанию 80
${ECCM_WEB_HTTPS_PORT}443Настраивается, по умолчанию 443
Kea DHCP6767При включенном DHCP
epg-service-8100

Frontend (Web GUI)

СервисНазначение
Web GUIСтатическое фронтенд-приложение
СервисНаружные портыВнутренний порт
Web GUI-80

Сетевая архитектура (Docker сети)

Режимы работы

StandaloneОднохостовое развёртывание. Один сервер со всеми сервисами и базой данных
Cluster (HA)Горячее резервирование из 3 узлов: master, slave, witness. PostgreSQL repmgr (синхронная репликация, failover), Redis Sentinel, RabbitMQ-кластер, keepalived + VRRP (виртуальный IP). TLS-шифрование межсервисной связи

Используемое программное обеспечение

Backend

КомпонентТехнологияВерсия
ЯзыкKotlin2.3.20
ФреймворкSpring Boot3.5.13
JDKJDK25
Система сборкиGradle9.4.1

Frontend

КомпонентТехнологияВерсия
ФреймворкAngular20.3.18
ЯзыкTypeScript5.8.3
Среда выполненияNode.js20
Реактивная библиотекаRxJS7.5.5

Инфраструктура

КомпонентТехнологияВерсия
База данныхPostgreSQL 16.11
TimescaleDB2.24.0
Кэш и сессииRedis8.4.2
Message brokerRabbitMQ4.2.4
API-шлюзNginx1.29.6
DHCP-серверKea DHCP
Epg-serviceepg-service1.3

Среда развертывания

КомпонентТехнологияВерсия
КонтейнеризацияDocker20.10+
Оркестрация контейнеровDocker Composev2.17+

Поддерживаемые операционные системы

Предварительные условия и ограничения

Минимальные системные требования

ПараметрМинимумРекомендуется
CPU4 ядра8+ ядер
RAM16 ГБ16–32 ГБ
Диск200 ГБЗависит от объёма телеметрии и количества устройств

Программные требования

Сетевые требования

Ограничения HA-режима (Cluster)