3.4 KiB
3.4 KiB
IoT Managed Service
Назначение
IoT Managed Service — это облачный сервис для управления IoT-устройствами, сбора и хранения телеметрии, а также интеграции с внешними системами через MQTT, Kafka и REST API.
Сервис автоматизирует регистрацию устройств, выдачу credentials, сбор телеметрии и предоставляет REST-интерфейс для управления и мониторинга.
Архитектура
- IoT Device — физическое устройство, подключающееся по MQTT
- EMQX — брокер MQTT, делегирует auth/ACL в iot-operator
- iot-mqtt-bridge — подписка на все топики, проксирует в Kafka
- Kafka — очередь событий телеметрии
- iot-kafka-consumer — сохраняет телеметрию в per-tenant Postgres
- IoT Postgres — база данных для хранения телеметрии
- REST API — управление устройствами, получение телеметрии
Основные компоненты
| Компонент | Назначение |
|---|---|
| iot-operator | REST API, контроллер CRD |
| iot-mqtt-bridge | MQTT → Kafka |
| iot-kafka-consumer | Kafka → Postgres |
| iot-postgres | Хранение телеметрии |
| EMQX | MQTT брокер |
Основные команды и эндпоинты
Публичные
GET /console— IoT Console (SPA)GET /iot-admin— страница администратора
JWT (namespace)
POST /v1/namespaces/{ns}/iot/devices— создать устройствоGET /v1/namespaces/{ns}/iot/devices— список устройствGET /v1/namespaces/{ns}/iot/devices/{name}— получить устройство + парольDELETE /v1/namespaces/{ns}/iot/devices/{name}— удалить устройствоPATCH /v1/namespaces/{ns}/iot/devices/{name}— обновить (enabled)GET /v1/namespaces/{ns}/iot/telemetry— получить телеметрию
Внутренние (без JWT)
POST /internal/mqtt/auth— MQTT auth для EMQXPOST /internal/mqtt/acl— MQTT ACL для EMQX
Админ
GET /iot-admin/stats— статистика (PG, Kafka, pods)
Быстрый старт
- Развернуть EMQX, iot-mqtt-bridge, event-dispatcher, iot-kafka-consumer, iot-postgres (см. deployments/k8s/)
- Зарегистрировать устройство через REST API или CRD
- Подключить устройство к MQTT (логин/пароль выдаются автоматически)
- Телеметрия автоматически попадёт в Postgres и доступна через REST API
Документация
- doc/architecture/overview.md — архитектура
- doc/api/endpoints.md — список эндпоинтов
- doc/deployment.md — деплой и инженерные детали
- examples/README.md — пример E2E цепочки