diff --git a/HISTORY/2026-08-16-session-log.md b/HISTORY/2026-08-16-session-log.md index ab6a0ac..a563672 100644 --- a/HISTORY/2026-08-16-session-log.md +++ b/HISTORY/2026-08-16-session-log.md @@ -672,3 +672,31 @@ store сам создаст таблицу iot_devices. - EMQX-контейнер пока работает на старом сломанном образе — после redeploy проверить: под Ready 1/1, лог без `ps: command not found`, wss-подключение. - Образы: iot-emqx v0.1.2 (latest), iot-service v0.1.0 (latest) — оба на Docker Hub. + +--- + +## 21. EMQX: mqtt_path исправлен, но на платформе boot висит (16.08) + +**Ошибка 3 (найдена локальным запуском):** `unknown_fields path=listeners.ws.default` +— поле `mqtt_path` в EMQX 5.5.1 живёт в `listeners.ws.default.websocket.mqtt_path`. +Исправлено в emqx.conf → v0.1.3/0.1.4. + +**Локальная проверка v0.1.4 (docker run на станции):** ПРОЙДЕНА — boot ~50с, +`emqx ctl listeners` OK (tcp:1883 running), wscat с subprotocol `mqtt` подключается +(curl без subprotocol получает 400 от Cowboy — так и должно: fail_if_no_subprotocol). + +**На платформе (наш кластер, ns 2fdd9658-…):** v0.1.4 поставлен kubectl set image, +под Running 1/1, НО: +- нода НЕ поднимается 5+ мин: beam запущен (config сгенерирован в 09:43:36), + CPU всего ~5с (почти idle), /var/log/emqx ПУСТ, `emqx ctl status/listeners` + возвращают пустоту (нет даже ошибки); +- множество зомби `inet_gethost ` (DNS-хелперы Erlang); +- DNS в поде работает (getent OK), resolv.conf: search …svc.cluster.local, ndots:5; +- память 257/512Mi, рестартов 0; +- снаружи — 502 Bad Gateway (wscat: Unexpected server response: 502). +- PID1 = `su - emqx -c DEBUG=0 "/usr/bin/emqx" foreground` (поведение deb-пакета), + HOME=/var/lib/emqx, node name emqx@127.0.0.1, -start_epmd false, -proto_dist ekka. + +**Статус:** локально образ рабочий, на платформе boot висит. По договорённости +с пользователем — вопрос к Sonnet (диагностика + правильный способ запуска EMQX +в контейнере: без su, логи в stdout, env-конфигурация). diff --git a/emqx/Dockerfile b/emqx/Dockerfile index 58d9d09..4fe76af 100644 --- a/emqx/Dockerfile +++ b/emqx/Dockerfile @@ -20,7 +20,10 @@ RUN apt-get update \ COPY emqx.conf /etc/emqx/emqx.conf -RUN mkdir -p /opt/emqx/data +# data_dir из emqx.conf: /opt/emqx/data. Launcher работает от пользователя +# emqx (deb-пакет создаёт его) — каталог должен принадлежать emqx. +RUN mkdir -p /opt/emqx/data \ + && chown -R emqx:emqx /opt/emqx/data EXPOSE 8083 diff --git a/emqx/Makefile b/emqx/Makefile index bd708ee..a6ba9b7 100644 --- a/emqx/Makefile +++ b/emqx/Makefile @@ -1,6 +1,6 @@ # EMQX-контейнер для IoT (образ naeel/iot-emqx). -VERSION ?= v0.1.2 +VERSION ?= v0.1.4 IMAGE ?= naeel/iot-emqx .PHONY: docker-build docker-push diff --git a/emqx/emqx.conf b/emqx/emqx.conf index 55dc94e..a05e6c3 100644 --- a/emqx/emqx.conf +++ b/emqx/emqx.conf @@ -78,7 +78,9 @@ listeners.tcp.default { listeners.ws.default { bind = "0.0.0.0:8083" - mqtt_path = "/mqtt" + websocket { + mqtt_path = "/mqtt" + } max_connections = 512 }