| A Shared Block |
|---|
|
| Metadata list |
|---|
| || DeviceType | Сервис мониторинга и управления конфигурациями "ELTEX" |
|| DeviceName | ECCM |
|| DocTitleAdditional | Архитектура ECCM |
|| fwversion | 2.8 |
|| username | eccm |
|| password | eccm |
|
Корневая оглавления |
Архитектура системы ECCM (Eltex Cloud Config Manager)
Граф зависимости сервисов друг от друга eccm-service-graph.html, eccm-service-graph-without-db-rbmq-redis.html (не для прода, на основе него можно нарисовать схему взаимосвязей сервисов для этой документации)
ECCM — централизованная система мониторинга и управления сетевым оборудованием, реализованная в виде набора микросервисов, развёртываемых в Docker-контейнерах.
...
Архитектура системы
Архитектурный паттерн
Микросервисная архитектура на основе Docker-контейнеров. Межсервисная коммуникация: асинхронная через RabbitMQ (Pub-Sub, RPC) + синхронная через gRPC/Protobuf.
Функциональные
...
возможности
- Управление устройствами — добавление
, группировка, конфигурирование (высокоуровневое: интерфейсы, VLAN, SNMP, VRF, зоны безопасности, профили, правила, доступ), шаблоны- , конфигурирование, шаблоны
- Конфигурирование
- WLC — профили SSID, RADIUS, Portal, Airtune, WIDS, привязки, мониторинг точек доступа
- MES
- Административное управление — профили (общий, VLAN, Interface , Switchport, Storm Control), IP-фабрика
- Оперативное управление — L1, L2, L3, VxLAN, EVPN Multihoming
- Кластер ESR — мониторинг и управление кластерными устройствами
- VSAT — MCPC/SCPC, MF-TDMA, мониторинг VSAT-устройств
- Мониторинг — мониторинг доступности,
Мониторинг — - SNMP-опрос, телеметрия, инвентаризация, дашборды, карты сети
- Управление ПО — централизованное управление ПО на устройстве
- Web-конфигуратор — доступ до веб-интерфейса устройства
- Web-терминал — SSH-доступ к CLI устройств через браузер
- Лицензии — мониторинг и установка лицензий
- Обнаружение проблем (Fault Management) — регистрация событий (syslog, SNMP trap), корреляция, MIB, уведомления
(email)- ,
проблемы - выявление проблем устройств
- Обновление ПО — централизованное обновление firmware через TFTP/SFTP
- Web-терминал — SSH-доступ к устройствам через браузер
- Уведомление — уведомление пользователей о событиях и проблемах как в системе, так и на сети
- ZTP (Zero-Touch Provisioning
(ZTP- ) — автоматическая начальная конфигурация устройств через DHCP
- Управление сетью —
группы, - дерево объектов, поиск
, высокоуровневое конфигурирование (- Групповые операции над устройствами —перезагрузка, обновление ПО, конфигурирование и т. д.
- IP-Fabric — построение IP-фабрик сети из устройств MES ROS 5.0+ с помощью высокоуровневого конфигурирования (ISIS, BGP, OSPF, L2/L3, VxLAN, EVPN Multihoming), также есть функционал автообнаружения
- БШПД — обнаружение, добавление ТД + STA, мониторинг доступности, мониторинг радиометрик
- Кластер — кластер из WLC/ESR устройств одной модели, валидация состава, мониторинг состояние кластера: роли ACTIVE/STANDBY, статус синхронизации конфигов/ПО/лицензий и VRRP
- Спутниковый MCPC-сегмент — группа устройств VSAT (EVT)
- Лицензирование — системные лицензии, лицензии для устройств
Резервное копирование — бэкап базы данных- в режиме SCPC, где каждый терминал имеет выделенную несущую, хранение частотного плана, собственную логику валидации
- Спутниковый SCPC-сегмент — группа устройств VSAT (EVT) в режиме SCPC, где каждый терминал имеет выделенную несущую, хранение частотного плана, собственную логику валидации
- Спутниковый MF-TDMA-сегмент — иерархическая структура из трех групп устройств VSAT (EVS/EVT), основная группа с частотным планом, параметров пакетов передач, параметров несущих обратных каналов, параметров группы несущих обратных каналов, сетевыми параметрами, подгруппа STATIONS для станций, подгруппа WORKSPACE для терминалов, защита от удаления при активном статусе сети(ENABLED, NO_SYNC), мониторинг сетевого статуса, синхронизация конфигурации устройства и системы
- Лицензирование — лицензирование системы
- Публичное API — REST API для интеграции со внешними системами
- Управление WLC — профили SSID, RADIUS, Portal, Airtune, WIDS, привязки, мониторинг точек доступа
- Управление MES — профили (общий, VLAN, Interface L2, Switchport, Storm Control), VxLAN, EVPN Multihoming, IP-фабрика
- Управление VSAT — MCPC/SCPC, MF-TDMA, мониторинг VSAT-устройств
- Управление кластерами — мониторинг и управление кластерными устройствами
Backend-микросервисы (Kotlin 2.1.21, Spring Boot 3.5, JDK 21)
- Конфигурирование параметров мониторинга
- Конфигурирование параметров опросов SNMP, ICMP, SSH. Изменение интервалов опроса метрик и интервалов обнаружения и хранения сущностей мониторинга.
- Конфигурирование параметров доступа по SNMP, SSH.
- Интеграция с SIEM
- Безопасность
- Журналирование — журнал действий пользователей, журнал безопасности, журнал API, настройка периода хранения
- Авторизация/Аутентификация — OAuth/OIDC, LDAP
- RBAC — ограничение доступа к системе на основе служебных обязанностей (ролей)
- Администрирование паролей — настройка сложности и срока действия паролей
Backend-сервисы
| Сервис | Порт8081REST , агрегация данных для фронтендаУправление 8083 | | Основной сервис: управление устройствами, шаблоны, конфигурации |
monitoring-service |
8088 | SNMP-опрос, сбор телеметрии (горизонтально масштабируемый) |
data-presenter |
8089Фоновые и | Агрегация и презентация данных (горизонтально масштабируемый) |
cron-manager |
8082 | | Планировщик задач на устройствах. Подключается по SSH и управляет задачами. Также планирует периодические задачи |
problem-manager |
8099 | Корреляция событий, обнаружение проблем |
notification-service |
8100 | Уведомления о событиях по |
событиям| каналам доставки |
delivery-manager |
8102 | Доставка конфигураций на устройства | | Используется для интеграции с SIEM, external alerting и т. д. |
syslog-receiver |
514 (TCP/UDP) | Приём syslog-сообщений от устройств |
trap-receiver |
8098 (API), 162/UDP (trap) | Приём SNMP trap от устройств |
upgrader |
8084 | Обновление (TFTP :69/UDP, SFTP :2222/TCP)8095Web | Zero-Touch Provisioning устройств |
terminal-manager |
8097 | | Веб-терминал (SSH-сессии к устройствам) |
identity-provider |
9999 | Аутентификация, авторизация, RBAC, OAuth/OIDC |
license-service |
8103 | Лицензирование системы и функционала |
vsat-manager |
8105 | Управление 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-receiver | 162 | 162 |
|
| - | 8098 |
|
| upgrader | 69 | 69 |
|
| 2222 | 22 |
|
| - | 8084 |
|
| ztp-manager | - | 8095 |
|
| terminal-manager | - | 8097 |
|
| identity-provider | - | 9999 |
|
| license-service | - | 8103 |
|
| vsat-manager | - | 8105 |
|
Инфраструктурные сервисы
| СервисВерсия | НазначениеTimescaleDB |
| PostgreSQL 16.11 + TimescaleDB 2.24 | Основная база данных: реляционные данные + временные ряды (телеметрия). HA-режим: repmgr (failover) |
| Redis8.4.2 | Кэш, сессии пользователей. HA-режим: Sentinel |
| Redis Sentinel | Сервис для обеспечения высокой доступности (High Availability) Redis в режиме кластера |
| RabbitMQ | RabbitMQ | 4.2.4 | Message broker (AMQPS :5671). Межсервисная асинхронная коммуникация (Pub-Sub, RPC) |
| Nginx (ECCM Gateway)1.29.6 | API-шлюз, обратный прокси. Порты: 80/443 |
| Kea DHCP— | DHCP-сервер для ZTP. Порт: 67/UDP |
| epg-service1 | Сервис лицензирования оборудования |
| keepalived + VRRP— | Виртуальный IP для HA-режима (cluster) |
| Jaeger | 1.8.1 | Distributed tracing (опционально) |
...
| Сервис | Наружные порты | Внутренний порт | Примечание |
| TimescaleDB | 5432 | 5432 |
|
| Redis | 6379 | 6379 |
|
| Redis Sentinel | 26379 | 26379 | В режиме кластера |
| RabbitMQ | 5671 | 5671 |
|
| 4369 | 4369 | В режиме кластера |
| 25672 | 25672 | В режиме кластера |
| Nginx (ECCM Gateway) | ${ECCM_WEB_PORT}, | 80 | Настраивается, по умолчанию 80 |
| ${ECCM_WEB_HTTPS_PORT} | 443 | Настраивается, по умолчанию 443 |
| Kea DHCP | 67 | 67 | При включенном DHCP |
| epg-service | - | 8100 |
|
Frontend (Web GUI)
| Сервис | Назначение |
| Web GUI | Статическое фронтенд-приложение |
| Сервис | Наружные порты | Внутренний порт |
| Web GUI | - | 80 |
- Angular 20.3.18, TypeScript 5.8.3, RxJS 7.5.5
- Node.js 20
(- — среда сборки
)- Cytoscape — визуализация сетевой топологии
- Monaco Editor — редактор конфигураций
- xterm — web-терминал SSH
Сетевая архитектура (Docker сети)
external — - (по умолчанию подсеть 172.20.0.0/20, но может быть изменена через переменные окружения) — публичные сервисы (доступ к устройствам, API)
internal — - (по умолчанию подсеть 172.21.0.0/20, но может быть изменена через переменные окружения) — межсервисная коммуникация (изолированная docker-сеть)
Режимы работы
| Standalone | Однохостовое развёртывание. Один сервер со всеми сервисами и базой данных |
| Cluster (HA) | Горячее резервирование из 3 узлов: master / , slave / , witness. PostgreSQL repmgr (синхронная репликация, failover), Redis Sentinel, RabbitMQ-кластер, keepalived + VRRP (виртуальный IP). TLS-шифрование межсервисной связи |
| Kubernetes | Развёртывание через Helm chart |
| Ansible | Автоматизированная установка через Ansible playbooks (online/offline, с резервированием и без) |
...
Используемое программное обеспечение
Backend
| Компонент | Технология | Версия |
| Язык | Kotlin | 2. |
121| 20 |
| Фреймворк | Spring Boot | 3.5.13 |
| JDK |
OpenJDK 2121 + Jib—Frontend
| Компонент | Технология | Версия |
| Фреймворк | Angular | 20.3.18 |
| Язык | TypeScript | 5.8.3 |
| Среда выполнения | Node.js | 20 |
| Реактивная библиотека | RxJS | 7.5.5 |
Инфраструктура
| Компонент | Технология | Версия |
| База данных |
(реляционная + timeseries)PostgreSQL + TimescaleDB + |
| TimescaleDB | 2.24.0 |
| Кэш и сессии | Redis | 8.4.2 |
| Message broker | RabbitMQ | 4.2.4 |
| API-шлюз | Nginx | 1.29.6 |
| DHCP-сервер | Kea DHCP | — |
Distributed tracing | Jaeger8.1Среда
...
развертывания
| Компонент | Технология | Версия |
| Контейнеризация | Docker | 20.10+ |
| Оркестрация контейнеров | Docker Compose | v2.17+ |
Kubernetes | Helm chart | —| Автоматизация установки | Ansible | — |
Поддерживаемые операционные системы
- Ubuntu 22/24
- RED OS 7/8
AstraLinux - Astra Linux 1.7.5
- ALT Linux 10
...
Предварительные условия и ограничения
Минимальные системные требования
| Параметр | Минимум | Рекомендуется |
| CPU | 4 ядра | 8+ ядер |
| RAM | 8 16 ГБ | 16–32 ГБ |
| Диск— | 200 ГБ | Зависит от объёма телеметрии и числа количества устройств |
Программные требования
...
- Docker 20.10+ (
AstraLinux- Astra Linux: docker-compose-v2 ≥ 2.17.0)
- OpenJDK
21 - 25 — для сборки из исходных кодов
- Make — для сборки проекта
- curl, conntrack — для установки и работы conntrack-таблиц
Открытые порты
...
...
Сетевые требования
- Сервер должен иметь доступ к управляемым устройствам по протоколам: SSH, SNMP, TFTP/SFTP
- Две Docker-сети:
external (устройства/внешние сервисы) и internal (межсервисная коммуникация) - Для HA-режима требуется виртуальный IP (keepalived + VRRP)
Ограничения HA-режима (Cluster)
- Кластер состоит из 3 узлов: master, slave, witness
- Всё межсервисное общение в кластере шифруется посредством TLS
- PostgreSQL: repmgr (синхронная репликация master ↔ slave, witness для quorum)
- Redis: Sentinel (failover при недоступности master)
- RabbitMQ: кластеризация с TLS (AMQPS)
- Необходимы TLS-сертификаты (кластерный сертификат + root CA)