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

Описание взаимодействия

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

image

Сервер Центрального Пульта - серверная часть Центрального Пульта. Представляет собой набор микросервисов, которые производят обработку и анализ поступивших данных, в частности, управляют логикой смены состояний у объектов и связей. В состав серверной части также входят 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).

Уведомления - сервер может уведомлять Пользователей об авариях и отправлять данные во Внешние Системы с использованием различных каналов, описанных в разделе Действия при смене состояний.

Версии используемого и поддерживаемого ПО

  • Keycloak 1.0 и выше;

  • MongoDB 4.4 и выше;

  • NGINX 1.4 и выше;

  • Node.js 16.0 и выше;

  • OpenTSDB 2.3 и выше;

  • Redis 3.0 и выше;

  • Socket.IO 4.0 и выше;

  • TypeScript 4.7.4 и выше.