Добрый день!
Устанавливал авторизацию на MQTT по инструкции (MQTT в контроллерах Wiren Board — Wiren Board). После установки веб интерфейс не смог получать данные (скрин), хотя пишет, что connected.
Без авторизации - все работает, естественно.
Перегружал сервисы mosquitto и wb-mqtt-serial (на всякий), и даже контроллер - не помогло.
В чем может быть дело?
Файлы конфигурации следующие:
/mnt/data/etc/mosquitto/acl.conf:
user zebra
topic readwrite #
topic readwrite $SYS/#
/etc/mosquitto/mosquitto.conf:
# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
/etc/mosquitto/passwd.conf:
zebra:$6$AjXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXMGbw==
/etc/mosquitto/auth.conf:
acl_file /etc/mosquitto/acl.conf
password_file /etc/mosquitto/passwd.conf
allow_anonymous false
allow_anonymous_localhost true
/etc/mosquitto/listeners.conf:
listener 1883 0.0.0.0
listener 18883 0.0.0.0
protocol websockets
/etc/mosquitto/bridge.conf:
#see bridge.conf.example for the example
Вопрос еще актуален, спасибо!
Добрый день.
А с компьютера топики на брокере читаются?
То есть - проверте сначала работу через прокси, поменяв порт mqtt в настройках интерфейса на 80.
Потом - попробуйте подписаться на топики с компьютера или другого устройства, проверив авторизацию.
Ну и - в дебаге браузега нет смысла смотреть на вывод всех сервисов, проверьте что происходит отфильтровав websockets (WS).
Явно какая-то ошибка при настройке, не смог воспроизвести. Если привести к исходному виду - работает?
Да, обнуляю acl.conf и включаю allow_anonymous true и все начинает работать.
Есть еще какие-то рекоммендации? Что проверить и как?
Не знаю, может ли это быть связано или нет - но по SSH долго входит в консоль (секунд 30).
Место свободное есть. Процессор не перегружен, активные только MQTT процессы что-то на 20% CPU.
Посмотреть в логи, проверить работает ли анонимный лоступ с localhost ну и работает ли доступ другого хоста, с компьютера например.
Связано с выполнением скрипта зазающего переменные окружения, в тестинге чуть оптимизировано.
В итоге решилось, но я параллельно переехал на релиз 2304, так что трудно сказать, что тут было причиной, тем более, что в 2304 что-то там поменялось в авторизации.
В итоге конфиг, с которым заработало отличается на один файл:
/etc/mosquitto/listeners.conf:
listener 1883
listener 18883
protocol websockets
Здесь без указания 0.0.0.0 после портов все работает. Теперь и UI и MQTT защищен. Соответственно в UI потребовалось прописать авторизацию.