Здравствуйте.
Настраиваю новый контроллер. В этот раз точно поймал проблему.
mosquitto[1653]: 1729080135: New connection from 127.0.0.1:44924 on port 1883.
mosquitto[1653]: 1729080135: Client <unknown> disconnected, not authorised.
wb-mqtt-gpio[1630]: INFO: [mqtt] connection estabilished with code "5" <unknown>
wb-mqtt-gpio[1630]: WARNING: [mqtt] connection lost
Писал уже о ней здесь: Странный сбой после долгого аптайма.
В общем, суть в том, что после добавления пользователя и установки пароля на брокер у wb-mqtt-gpio возникают проблемы с MQTT авторизацией после каждой перезагрузки контроллера. Причем команда systemctl restart wb-mqtt-gpio решает эту проблему до следующей перезагрузки.
Вернул, ошибки пропали. Опять вернул пароль на брокер, опять те же ошибки.
Опять убрал авторизацию - все прошло, опять включил - опять ошибки.
Вот лог с момента загрузки контроллера с паролем на брокере: mqtt_debug.log (1,4 МБ)
в 10:27:18 перезапустил wb-mqtt-gpio и все заработало.
приложен диагностический архив, доступен только сотрудникам поддержки
(280,8 КБ)
Контроллер новый. Я прям вел конспект когда настраивал:
Обновил все пакеты
Выставил часовой пояс и синхронизировал внутренние часы
Установил пароль на web-интерфейс
Установил пароль на MQTT
Установил htop
Установил NodeRed
Все. В этот момент перезагрузил контроллер и заметил ошибки
Что такое “добавление пользователя”?
Пожалуйста - опишите что и где меняете, какого поведения ожидаете после изменений, после каждого из них. Я пока не понимаю и предполагаю что вы просто запрещаете доступ без авторизации вообще всем.
Расскажите тогда, пожалуйста, как правильно сделать, что бы все было корректно, и доступ к брокеру был запаролен?
Вот ваша документация: Установка пароля на MQTT брокер. Вроде все по ней сделано…
Суть в том, что при моих конфигах все работает, в том числе и wb-mqtt-gpio. Смущает только то, что сервис нужно перезапускать после загрузки контроллера.
В этой документации описан механизм установки авторизации. Он не учитывает работу сервисов, совсем. Оценить влияние и выбрать конфиг - это уже задача проектировщика.
Если требуется какая-то специальная конфигурация - то ее нужно разрабатывать отдельно.
В инструкции по защите приведен пример конфигурации.
Не совсем понятен ваш ответ, например, у меня сценарий воспроизводится, включена авторизация mosquitto и при этом wb-mqtt-gpio спамит в журнал ошибки. После рестарта сервиса в логах тишина. Поведение сервиса некорректное.
Я, конечно, могу проверить. Но какова цель подобной проверки? То есть любой эксперимент должен либо подтвержать либо отпровргать гипотезу. Тут гипотеза звучит так: “Определить будет ли свыдавать ошибки сервис если неправильно сконфигурировать брокер”.
Проверить что? Непонятна ваша логика, некорректный конфиг приводит к ошибкам wb-mqtt-gpio - спору нет, это логично. Но почему после рестарта сервиса ошибок нет — не понятно. Возможно это интересно только мне =)
Поддерживаю Леонида полностью. После рестарта, сервис wb-mqtt-gpio штатно запускается и работает без ошибок. Да и вообще при полном запрете анонимных подключений через 1883 порт, ни каких проблем не возникает кроме как с этим сервисом, и то проблема решается его перезагрузкой.
Сервисы работают с брокером. Для работы сервисов - им нужен доступ к нему. Если сервис начинает работать через сокет, например - то это совершенно нештатно и я не вижу смысла обсуждать “а что будет если еще вот это запретить”. То есть экспериментировать - можно, но в чем смысл? Запретить доступ сейчас чтобы столкнуться с проблемой работы (каого-то) сервиса потом?
То есть - это нештатно, не предусмотрено документацией и заниматься подобным можно - но воспроизводить не планирую.
Производитель не видит проблемы в том, что вам нужно просто закрыть безпарольный доступ, вы делаете это по инструкции к ВБ, один из сервисов вб при этом перестает раотать корректно, потому что этот сервис настроен на безпарольную работу. Хотите работать по паролю - вот вам инструкция. Чтото отвалилось при работе с паролем? Так простите это вы дофига хотите Узнаю фирменный стиль техподдержки ВБ