Архитектура системы
Описание взаимодействия
Ниже приводится общая схема архитектуры Центрального Пульта.

Сервер Центрального Пульта - серверная часть Центрального Пульта. Представляет собой набор микросервисов, которые производят обработку и анализ поступивших данных, в частности, управляют логикой смены состояний у объектов и связей. В состав серверной части также входят NGINX и REST-сервер.
Kafka - шина данных, которая обеспечивает обмен данными между микросервисами Центрального Пульта, отправляет Агентам список задач и принимает результат их выполнения.
Взаимодействие с устаревшими Агентами версии ниже 3.0 обеспечивается через Redis. |
MongoDB - NoSQL-СУБД, которая является основным хранилищем данных о пользователях, объектах и связях, их свойствах, состояниях и авариях.
Redis - это хранилище данных в оперативной памяти (in-memory кэш), благодаря которому реализуется быстрый доступ к часто запрашиваемой информации.
OpenTSDB - специализированное хранилище временных рядов, в котором хранятся числовые метрики, используемые при построении графиков.
NGINX - это HTTP-сервер, обслуживающий запросы клиентов. Отдаёт статические элементы web-интерфейса (HTML, JavaScript, CSS), а также проксирует запросы от клиента к REST-серверу.
REST-сервер - один из микросервисов Центрального Пульта, который отвечает за обработку REST-запросов от клиентов. Через REST API клиент получает и изменяет информацию, обрабатываемую сервером Центрального Пульта.
Агент - это программа, устанавливаемая на виртуальный или физический сервер или иной узел сети и осуществляющая выполнение проверок, сбор и передачу информации серверу через шину данных Kafka. О возможных способах сбора данных читайте в разделе Активный и пассивный мониторинг - агентный против безагентного).
Предусмотрена возможность создания пользовательского агента, который будет собирать метрики с локального хоста, опрашивать сторонние сервисы и отправлять данные на сервер через REST API (см. REST API для разработчиков). |
Web-клиент и Мобильное приложение - это клиенты, с помощью которых пользователи системы взаимодействуют с сервером через REST API. В роли клиентов могут выступать, например, web-приложения и клиенты для мобильных операционных систем Android и iOS.
Для решения специфических задач можно создать индивидуального клиента, который будет работать с сервером через REST API. |
Внешние системы - это стороннее ПО, информационные системы или программные модули, которые могут взаимодействовать с сервером с помощью REST API.
Сервисы авторизации - наряду со встроенными механизмами, Центральный Пульт также поддерживает сторонние сервисы для авторизации пользователей в системе. Возможна интеграция с AD-сервером и Keycloak (см. LDAP и Интеграция с Keycloak).
Уведомления - сервер может уведомлять Пользователей об авариях и отправлять данные во Внешние Системы с использованием различных каналов, описанных в разделе Действия при смене состояний.