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

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 развивается как самостоятельный открытый проект для экспериментов, разработки и построения собственных систем обмена данными между устройствами.




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