CLEX выпустила MQTT-брокер со встроенной панелью управления

Дата публикации:

10

CLEX представила CLEX MQTT – это MQTT-брокер со встроенной веб-панелью управления. Программа поддерживает MQTT 3.1, 3.1.1 и 5.0, постоянные сессии, QoS 0–2, управление доступом к топикам и мониторинг сообщений. Брокер написан на Rust, использует PostgreSQL и распространяется с открытым исходным кодом по лицензии MIT. Публичный веб-интерфейс проекта размещён на activity.kz.

CLEX выпустила MQTT-брокер со встроенной панелью управления
Изображение: CLEX

CLEX выпустила CLEX MQTT – собственный MQTT-брокер со встроенной веб-панелью управления. Программа предназначена для обмена сообщениями между устройствами, контроля подключений и настройки доступа к данным в системах IoT и автоматизации.

Проект разработан на языке Rust и поддерживает протоколы MQTT 3.1, 3.1.1 и 5.0. Исходный код опубликован на GitHub под открытой лицензией MIT, позволяющей изучать, изменять и самостоятельно развёртывать программное обеспечение.

Для чего нужен CLEX MQTT

MQTT – лёгкий протокол обмена сообщениями, широко используемый в интернете вещей. В отличие от прямого соединения двух устройств, MQTT предполагает промежуточный сервер – брокер, который принимает сообщения от одних клиентов и доставляет их другим в соответствии с подписками на топики.

Например, один микроконтроллер ESP32 находится в мастерской и передаёт показания датчиков, а второй установлен в другом здании и подключён к совершенно другой сети. Если оба устройства имеют доступ к одному MQTT-брокеру, они могут обмениваться данными через интернет без необходимости организовывать прямое соединение между ними.

По такому же принципу можно передавать команды управления реле, получать состояния оборудования или объединять несколько удалённых объектов в общую систему мониторинга.

CLEX MQTT выполняет роль центрального сервера для такого обмена. Он не привязан к конкретной плате разработки или собственной среде программирования и может использоваться с совместимыми MQTT-клиентами.

Встроенная веб-панель управления

Одной из особенностей CLEX MQTT стала административная панель, которая работает непосредственно вместе с брокером.

Через браузер можно просматривать активные подключения, управлять MQTT-учётными записями, отслеживать сообщения и настраивать разрешения на публикацию и подписку.

В разделе сообщений предусмотрены две основные вкладки: «Поток» и «Retain». Первая показывает поступающие публикации с фильтрами по Client ID, пользователю и топику. Вторая позволяет просматривать сохранённые сообщения, которые брокер может передавать новым подписчикам.

Также реализована диагностика прохождения сообщений. Для выбранной публикации можно проследить обработку подписок, подготовку очередей, передачу данных клиентам и получение подтверждений.

Для администратора доступны журнал действий, сведения о состоянии сервера и инструменты мониторинга.

Поддержка MQTT 5 и уровней QoS

CLEX MQTT реализует три уровня качества доставки – QoS 0, QoS 1 и QoS 2.

  • QoS 0 – передача сообщения без подтверждения доставки.
  • QoS 1 – передача с подтверждением, допускающая повторное получение сообщения.
  • QoS 2 – обмен по многоэтапной процедуре для предотвращения повторной доставки одного сообщения в рамках протокола.

Брокер поддерживает постоянные сессии, очереди для временно отключённых клиентов, retained-сообщения и механизмы срока действия сообщений и сессий.

Для MQTT 5 реализованы дополнительные свойства сообщений, расширенные коды ответов и Shared Subscriptions – совместные подписки, позволяющие распределять входящие сообщения между несколькими обработчиками одной группы.

Подключение клиентов возможно по TCP и WebSocket. Защищённые соединения поддерживаются через TLS, а для дополнительной аутентификации предусмотрены клиентские сертификаты и механизм SCRAM-SHA-256.

Управление пользователями и правами доступа

Отдельное внимание уделено управлению разрешениями MQTT-клиентов.

Администратор может создавать учётные записи и задавать, в какие топики разрешена публикация и на какие топики разрешено подписываться. Для этого используется механизм ACL (Access Control List).

Права можно назначать непосредственно пользователям или через группы. Для групп предусмотрены шаблоны наблюдения, телеметрии, управления и полного обмена. Отдельная функция проверки доступа позволяет увидеть, будет ли конкретному клиенту разрешена выбранная операция.

Учётные записи для входа в веб-панель отделены от MQTT-учётных записей устройств. Также предусмотрены личные кабинеты, позволяющие управлять собственными MQTT-подключениями в пределах назначенных ограничений.

Техническая архитектура

Серверная часть CLEX MQTT написана на Rust, а для хранения конфигурации, сессий и очередей используется PostgreSQL.

В рабочей конфигурации брокер, веб-интерфейс и SQL-миграции входят в один исполняемый файл. Node.js необходим для сборки интерфейса и некоторых инструментов разработки, но не требуется как отдельный процесс при обычной работе установленного сервера.

Дополнительно реализованы мосты между MQTT-брокерами, позволяющие передавать сообщения между отдельными серверами с заданными правилами и префиксами топиков.

Для систем мониторинга предусмотрен экспорт метрик в формате OpenMetrics, совместимом с Prometheus. Разработчики могут использовать эти данные для отслеживания подключений, очередей, нагрузки и состояния брокера.

Где попробовать CLEX MQTT

Веб-интерфейс развернутого экземпляра CLEX MQTT доступен по адресу activity.kz.

Доступ к административным функциям и обмену MQTT-сообщениями зависит от настроек сервера и выданных учётных данных. Само наличие публичного веб-интерфейса не означает открытого анонимного подключения.

Желающие развернуть собственный брокер могут использовать исходный код CLEX MQTT на GitHub. Репозиторий содержит инструкции по локальному запуску, настройке PostgreSQL, сборке интерфейса и тестированию MQTT-соединений.

CLEX MQTT развивается как самостоятельный открытый проект для экспериментов, разработки и построения собственных систем обмена данными между устройствами.

Email не публикуется и используется только для уведомлений. Ссылки в комментариях запрещены. Комментарий появится после проверки модератором.

Комментарии (0)

Связанные публикации

Вышла CLEX Flow – визуальная среда разработки микроконтроллеров

Вышла CLEX Flow – визуальная среда разработки микроконтроллеров

Вышла CLEX Flow – бесплатная визуальная среда разработки микроконтроллеров. Программа позволяет создавать схемы подключения, собирать логику из блоков, проектировать интерфейсы дисплеев и загружать прошивки ESP32.

CLEX 24 0