Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление


Архитектура системы ECCM (Eltex Cloud Config Manager)

Граф зависимости сервисов друг от друга eccm-service-graph.htmleccm-service-graph-without-db-rbmq-redis.html (не для прода, на основе него можно нарисовать схему взаимосвязей сервисов для этой документации)

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

...

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

Функциональные

...

возможности

  • Управление устройствами — добавление, конфигурирование, шаблоны
    • Конфигурирование
      • 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-интерфейса устройства
    • Web-терминал — SSH-доступ к CLI устройств через браузер
    • Лицензии - Мониторинг и установка лицензий
  • Обнаружение проблем (Fault Management) — регистрация событий (syslog, SNMP trap), корреляция, MIB, уведомления, выявление проблемы устройств
  • Уведомление— уведомление пользователей о событиях и проблемах как в системе так и на сети
  • ZTP (Zero-Touch Provisioning) — автоматическая начальная конфигурация устройств через DHCP
  • Управление сетью —дерево объектов, поиск
    • Групповые операции над устройствами групповые, перезагрузка, обновление ПО, конфигурирование и т.д.
    • IP-Fabric — Построение IP-Fabric сети из устройств MES ROS 5+ с помощью высокоуровневого конфигурирования (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 для интеграции со внешними системами
  • Конфигурирование параметров мониторинга
    • Конфигурирование параметров опросов SNMP, ICMP, SSH. Также изменение интервалов опроса метрик и интервалов обнаружения и хранения сущностей мониторинга.
    • Конфигурирование параметров доступа по SNMP, SSH.
  • Интеграция с SIEM
  • Безопасность
    • Журналирование - Журнал действия пользователей, жкрныл безопасности, журнал API, настройка периода хранения.
    • Авторизация/Аутентификация - OAuth/OIDC. LDAP
    • RBAC - Ограничение доступа к системе на основе их служебных обязанностей (ролей)
    • Администрирование паролей — настройка сложности, срока действия паролей.

...

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

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

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

identity-provider

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

license-service

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

vsat-manager

Управление VSAT-устройствами

...

СервисНазначение
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)

...

СервисНазначение
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, с резервированием и без).

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

...

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

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

  • Ubuntu 22/24
  • RED OS 7 / 8
  • AstraLinux 1.7.5
  • ALT Linux 10

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

...

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

...

  • Docker 20.10+ (AstraLinux: docker-compose-v2 ≥ 2.17.0)
  • OpenJDK 25 — для сборки из исходных кодов
  • Make — для сборки проекта
  • curl, conntrack — для установки и работы conntrack-таблиц

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

  • Сервер должен иметь доступ к управляемым устройствам по протоколам: SSH, SNMP, TFTP/SFTP
  • Две Docker-сети: external (устройства/внешние сервисы) и internal (межсервисная коммуникация)
  • Для HA-режима требуется виртуальный IP (keepalived + VRRP)

...