Здравствуйте. Столкнулся с проблемой, не запускается mosquitto на контроллере WB7:
Настройки /etc/mosquitto/mosquitto.conf и /lib/systemd/system/mosquitto.service следующие:
Строку pid_file /var/run/mosquitto/mosquitto.pid добавлял по советам с просторов интернета, где были аналогичные проблемы и у многих вопрос решался добавлением этой строки и присвоением прав каталогу:
mkdir /var/run/mosquitto/ && sudo chown mosquitto: /var/run/mosquitto
У меня же подобные махинации не сработали, при перезагрузке службы выдает такое сообщение:
Также находил на форуме подобные проблемы, где предлагалось решить проблему(увы, мне не помогло) редактированием файла конфигурации /etc/mosquitto/conf.d/10listeners.conf:
listener 1883 -> listener 1883 127.0.0.1
Есть понимание, что сброс к заводским настройкам и перепрошивка контроллера даст результат и все заработает, но хотелось бы понять причину проблемы и способ решения.
Заранее благодарен за помощь.
Добрый день.
Для диагностики пришлите, пожалуйста, архив с диагностической информацией контроллера. Создание архива описано в документации .
Или логи сервиса mosquitto.
Архив диагностики:
приложен диагностический архив, доступен только сотрудникам поддержки
(398,7 КБ)
Логи сервиса mosquitto:
Dec 25 10:19:05 wirenboard-AACLUYTY systemd[1]: Stopped Mosquitto MQTT Broker.
Dec 25 10:19:05 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Start request repeated too quickly.
Dec 25 10:19:05 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Failed with result ‘exit-code’.
Dec 25 10:19:05 wirenboard-AACLUYTY systemd[1]: Failed to start Mosquitto MQTT Broker.
Dec 25 10:19:24 wirenboard-AACLUYTY systemd[1]: Starting Mosquitto MQTT Broker…
Dec 25 10:19:24 wirenboard-AACLUYTY mosquitto[14924]: 1766643564: Loading config file /usr/share/wb-configs/mosquitto/000persistence.conf
Dec 25 10:19:24 wirenboard-AACLUYTY mosquitto[14924]: 1766643564: Loading config file /usr/share/wb-configs/mosquitto/30limits.conf
Dec 25 10:19:24 wirenboard-AACLUYTY mosquitto[14924]: 1766643564: Loading config file /usr/share/wb-configs/mosquitto/persistence.conf
Dec 25 10:19:24 wirenboard-AACLUYTY mosquitto[14924]: 1766643564: Loading config file /etc/mosquitto/conf.d/00default_listener.conf
Dec 25 10:19:24 wirenboard-AACLUYTY mosquitto[14924]: 1766643564: Loading config file /etc/mosquitto/conf.d/10listeners.conf
Dec 25 10:19:24 wirenboard-AACLUYTY mosquitto[14924]: 1766643564: Loading config file /etc/mosquitto/conf.d/20bridges.conf
Dec 25 10:19:24 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Main process exited, code=exited, status=1/FAILURE
Dec 25 10:19:24 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Failed with result ‘exit-code’.
Dec 25 10:19:24 wirenboard-AACLUYTY systemd[1]: Failed to start Mosquitto MQTT Broker.
Dec 25 10:19:24 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Scheduled restart job, restart counter is at 1.
Dec 25 10:19:24 wirenboard-AACLUYTY systemd[1]: Stopped Mosquitto MQTT Broker.
Dec 25 10:19:24 wirenboard-AACLUYTY systemd[1]: Starting Mosquitto MQTT Broker…
Dec 25 10:19:25 wirenboard-AACLUYTY mosquitto[14935]: 1766643565: Loading config file /usr/share/wb-configs/mosquitto/000persistence.conf
Dec 25 10:19:25 wirenboard-AACLUYTY mosquitto[14935]: 1766643565: Loading config file /usr/share/wb-configs/mosquitto/30limits.conf
Dec 25 10:19:25 wirenboard-AACLUYTY mosquitto[14935]: 1766643565: Loading config file /usr/share/wb-configs/mosquitto/persistence.conf
Dec 25 10:19:25 wirenboard-AACLUYTY mosquitto[14935]: 1766643565: Loading config file /etc/mosquitto/conf.d/00default_listener.conf
Dec 25 10:19:25 wirenboard-AACLUYTY mosquitto[14935]: 1766643565: Loading config file /etc/mosquitto/conf.d/10listeners.conf
Dec 25 10:19:25 wirenboard-AACLUYTY mosquitto[14935]: 1766643565: Loading config file /etc/mosquitto/conf.d/20bridges.conf
Dec 25 10:19:25 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Main process exited, code=exited, status=1/FAILURE
Dec 25 10:19:25 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Failed with result ‘exit-code’.
Dec 25 10:19:25 wirenboard-AACLUYTY systemd[1]: Failed to start Mosquitto MQTT Broker.
Dec 25 10:19:25 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Scheduled restart job, restart counter is at 2.
Dec 25 10:19:25 wirenboard-AACLUYTY systemd[1]: Stopped Mosquitto MQTT Broker.
Dec 25 10:19:25 wirenboard-AACLUYTY systemd[1]: Starting Mosquitto MQTT Broker…
Dec 25 10:19:25 wirenboard-AACLUYTY mosquitto[14942]: 1766643565: Loading config file /usr/share/wb-configs/mosquitto/000persistence.conf
Dec 25 10:19:25 wirenboard-AACLUYTY mosquitto[14942]: 1766643565: Loading config file /usr/share/wb-configs/mosquitto/30limits.conf
Dec 25 10:19:25 wirenboard-AACLUYTY mosquitto[14942]: 1766643565: Loading config file /usr/share/wb-configs/mosquitto/persistence.conf
Dec 25 10:19:25 wirenboard-AACLUYTY mosquitto[14942]: 1766643565: Loading config file /etc/mosquitto/conf.d/00default_listener.conf
Dec 25 10:19:25 wirenboard-AACLUYTY mosquitto[14942]: 1766643565: Loading config file /etc/mosquitto/conf.d/10listeners.conf
Dec 25 10:19:25 wirenboard-AACLUYTY mosquitto[14942]: 1766643565: Loading config file /etc/mosquitto/conf.d/20bridges.conf
Dec 25 10:19:25 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Main process exited, code=exited, status=1/FAILURE
Dec 25 10:19:25 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Failed with result ‘exit-code’.
Dec 25 10:19:25 wirenboard-AACLUYTY systemd[1]: Failed to start Mosquitto MQTT Broker.
Dec 25 10:19:25 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Scheduled restart job, restart counter is at 3.
Dec 25 10:19:25 wirenboard-AACLUYTY systemd[1]: Stopped Mosquitto MQTT Broker.
Dec 25 10:19:25 wirenboard-AACLUYTY systemd[1]: Starting Mosquitto MQTT Broker…
Dec 25 10:19:26 wirenboard-AACLUYTY mosquitto[14966]: 1766643566: Loading config file /usr/share/wb-configs/mosquitto/000persistence.conf
Dec 25 10:19:26 wirenboard-AACLUYTY mosquitto[14966]: 1766643566: Loading config file /usr/share/wb-configs/mosquitto/30limits.conf
Dec 25 10:19:26 wirenboard-AACLUYTY mosquitto[14966]: 1766643566: Loading config file /usr/share/wb-configs/mosquitto/persistence.conf
Dec 25 10:19:26 wirenboard-AACLUYTY mosquitto[14966]: 1766643566: Loading config file /etc/mosquitto/conf.d/00default_listener.conf
Dec 25 10:19:26 wirenboard-AACLUYTY mosquitto[14966]: 1766643566: Loading config file /etc/mosquitto/conf.d/10listeners.conf
Dec 25 10:19:26 wirenboard-AACLUYTY mosquitto[14966]: 1766643566: Loading config file /etc/mosquitto/conf.d/20bridges.conf
Dec 25 10:19:26 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Main process exited, code=exited, status=1/FAILURE
Dec 25 10:19:26 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Failed with result ‘exit-code’.
Dec 25 10:19:26 wirenboard-AACLUYTY systemd[1]: Failed to start Mosquitto MQTT Broker.
Dec 25 10:19:26 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Scheduled restart job, restart counter is at 4.
Dec 25 10:19:26 wirenboard-AACLUYTY systemd[1]: Stopped Mosquitto MQTT Broker.
Dec 25 10:19:26 wirenboard-AACLUYTY systemd[1]: Starting Mosquitto MQTT Broker…
Dec 25 10:19:26 wirenboard-AACLUYTY mosquitto[15025]: 1766643566: Loading config file /usr/share/wb-configs/mosquitto/000persistence.conf
Dec 25 10:19:26 wirenboard-AACLUYTY mosquitto[15025]: 1766643566: Loading config file /usr/share/wb-configs/mosquitto/30limits.conf
Dec 25 10:19:26 wirenboard-AACLUYTY mosquitto[15025]: 1766643566: Loading config file /usr/share/wb-configs/mosquitto/persistence.conf
Dec 25 10:19:26 wirenboard-AACLUYTY mosquitto[15025]: 1766643566: Loading config file /etc/mosquitto/conf.d/00default_listener.conf
Dec 25 10:19:26 wirenboard-AACLUYTY mosquitto[15025]: 1766643566: Loading config file /etc/mosquitto/conf.d/10listeners.conf
Dec 25 10:19:26 wirenboard-AACLUYTY mosquitto[15025]: 1766643566: Loading config file /etc/mosquitto/conf.d/20bridges.conf
Dec 25 10:19:26 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Main process exited, code=exited, status=1/FAILURE
Dec 25 10:19:26 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Failed with result ‘exit-code’.
Dec 25 10:19:26 wirenboard-AACLUYTY systemd[1]: Failed to start Mosquitto MQTT Broker.
Dec 25 10:19:26 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Scheduled restart job, restart counter is at 5.
Dec 25 10:19:26 wirenboard-AACLUYTY systemd[1]: Stopped Mosquitto MQTT Broker.
Dec 25 10:19:26 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Start request repeated too quickly.
Dec 25 10:19:26 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Failed with result ‘exit-code’.
Dec 25 10:19:26 wirenboard-AACLUYTY systemd[1]: Failed to start Mosquitto MQTT Broker.
Судя по конфигу - у вас включен
persistence_location /var/lib/mosquitto/
Выключите его пожалуйста и перезапустите брокер.
Отключил, отредактировав /etc/mosquitto/mosquitto.conf:
persistence_location false
#persistence_location /var/lib/mosquitto/
Но проблема не пропала.
Прямо интересно, а попробуйте пожалуйста остановить сервис и запустить брокер прямо из консоли,
/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
ну и покажите вывод.
Примерно такая картина:
root@wirenboard-AACLUYTY:~# systemctl stop mosquitto
root@wirenboard-AACLUYTY:~# systemctl status mosquitto
● mosquitto.service - Mosquitto MQTT Broker
Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/mosquitto.service.d
└─override.conf
Active: failed (Result: exit-code) since Thu 2025-12-25 12:53:34 +04; 52min ago
Docs: man:mosquitto.conf(5)
man:mosquitto(8)
Process: 11926 ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto (code=exited, status=0/SUCCESS)
Process: 11927 ExecStartPre=/bin/chown mosquitto: /var/log/mosquitto (code=exited, status=0/SUCCESS)
Process: 11928 ExecStartPre=/bin/mkdir -m 740 -p /var/run/mosquitto (code=exited, status=0/SUCCESS)
Process: 11929 ExecStartPre=/bin/chown mosquitto: /var/run/mosquitto (code=exited, status=0/SUCCESS)
Process: 11930 ExecStartPre=/bin/chown mosquitto:mosquitto /run/mosquitto (code=exited, status=0/SUCCESS)
Process: 11931 ExecStartPre=/bin/chmod g+x /run/mosquitto (code=exited, status=0/SUCCESS)
Process: 11932 ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf (code=exited, status=1/FAILURE)
Main PID: 11932 (code=exited, status=1/FAILURE)
CPU: 127ms
Dec 25 12:53:34 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Scheduled restart job, restart counter is at 5.
Dec 25 12:53:34 wirenboard-AACLUYTY systemd[1]: Stopped Mosquitto MQTT Broker.
Dec 25 12:53:34 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Start request repeated too quickly.
Dec 25 12:53:34 wirenboard-AACLUYTY systemd[1]: mosquitto.service: Failed with result ‘exit-code’.
Dec 25 12:53:34 wirenboard-AACLUYTY systemd[1]: Failed to start Mosquitto MQTT Broker.
root@wirenboard-AACLUYTY:~# /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
1766655987: Loading config file /usr/share/wb-configs/mosquitto/000persistence.conf
1766655987: Loading config file /usr/share/wb-configs/mosquitto/30limits.conf
1766655987: Loading config file /usr/share/wb-configs/mosquitto/persistence.conf
1766655987: Loading config file /etc/mosquitto/conf.d/00default_listener.conf
1766655987: Loading config file /etc/mosquitto/conf.d/10listeners.conf
1766655987: Loading config file /etc/mosquitto/conf.d/20bridges.conf
При чем, заметил, что если запустить mqtt-брокер, не как службу, без конфигурационных файлов:
mosquitto
то контроллер опросит все топики и пришлет по ним актуальное значение.
Когда запущен - он работает, без каких-то проблем?
Когда я отправляю команду /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf, брокер не работает, просто вот такая картина:
root@wirenboard-AACLUYTY:~# /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
1766658727: Loading config file /usr/share/wb-configs/mosquitto/000persistence.conf
1766658727: Loading config file /usr/share/wb-configs/mosquitto/30limits.conf
1766658727: Loading config file /usr/share/wb-configs/mosquitto/persistence.conf
1766658727: Loading config file /etc/mosquitto/conf.d/00default_listener.conf
1766658727: Loading config file /etc/mosquitto/conf.d/10listeners.conf
1766658727: Loading config file /etc/mosquitto/conf.d/20bridges.conf
root@wirenboard-AACLUYTY:~#
Топики не опрашиваются в таком случае, и сама служба так же не запускается.
А дайте доступ к контроллеру. Что-то не пойму (возможной) причины.
Пригласите пожалуйста пользователя support@wirenboard.com в организацию на облачном сервисе.
Для этого в настройках организации нажмите кнопку “Пригласить”
И укажите почтовый адрес:
После этого поддержка получит доступ к вашему контроллеру для диагностики.
Не забудьте удалить потом доступ.
Не совсем понял, где это делается. Если на самом контроллере, то к сожалению, контроллер находится в закрытой локальной сети (и далеко физически), к которой у меня есть доступ через VPN, которым я не могу поделиться в виду корпоративной безопасности. Думаю, такой способ не подходит.
Тогда включите в сервисе опцию debug для mosquitto и покажите логи.
Ну, или запустите из консоли с debug и логи из консоли.
Настроил /etc/mosquitto/mosquitto.conf таким образом для логирования:
log_dest syslog
log_dest file /var/log/mosquitto/mosquitto.log
log_type all
Но файла с логами в этой папке не появилось.
При запуске службы с debug, получается так:
root@wirenboard-AACLUYTY:~# /usr/sbin/mosquitto -v -c /etc/mosquitto/mosquitto.conf
1766665566: Loading config file /usr/share/wb-configs/mosquitto/000persistence.conf
1766665566: Loading config file /usr/share/wb-configs/mosquitto/30limits.conf
1766665566: Loading config file /usr/share/wb-configs/mosquitto/persistence.conf
1766665566: Loading config file /etc/mosquitto/conf.d/00default_listener.conf
1766665566: Loading config file /etc/mosquitto/conf.d/10listeners.conf
1766665566: Loading config file /etc/mosquitto/conf.d/20bridges.conf
root@wirenboard-AACLUYTY:~#
Замените пожалуйста все конфиги брокера дефолтными (предварительно их сохраните, конечно)
Подозреваю что дело в /etc/mosquitto/acl/default.conf и /etc/mosquitto/passwd/default.conf которые не включаются в архив.
Конфиги: wb-configs/configs/etc/mosquitto at master · wirenboard/wb-configs · GitHub
и wb-configs/configs/usr/share/wb-configs/mosquitto at master · wirenboard/wb-configs · GitHub
Потому что
TMwazing:
При чем, заметил, что если запустить mqtt-брокер, не как службу, без конфигурационных файлов:
mosquitto
то контроллер опросит все топики и пришлет по ним актуальное значение
то есть дело точно в конфигах.
Поменял все указанные конфиги, заметил, что в конфиге 10listeners были закоменченны следующие строки в двух местах(я их раскоментил):
acl_file /etc/mosquitto/acl/default.conf
password_file /etc/mosquitto/passwd/default.conf
Поменял так же конфиг /etc/mosquitto/mosquitto.conf на стандартный, начались такие выводы:
root@wirenboard-AACLUYTY:~# systemctl stop mosquitto
root@wirenboard-AACLUYTY:~# /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
1766724284: Loading config file /usr/share/wb-configs/mosquitto/000persistence.conf
1766724284: Loading config file /usr/share/wb-configs/mosquitto/30limits.conf
1766724284: Loading config file /usr/share/wb-configs/mosquitto/persistence.conf
1766724284: Loading config file /etc/mosquitto/conf.d/00default_listener.conf
1766724284: Loading config file /etc/mosquitto/conf.d/10listeners.conf
1766724284: Loading config file /etc/mosquitto/conf.d/20bridges.conf
1766724284: Error: Unable to open include_dir ‘/usr/share/wb-configs/mosquitto-post’.
1766724284: Error found at /etc/mosquitto/mosquitto.conf:15.
Хотя такая дирректория в контроллере есть.
Закоментил строку include_dir /usr/share/wb-configs/mosquitto-post в конфиге /etc/mosquitto/mosquitto.conf, броккер заработал. Вроде как все работает, как и должно.
Является ли данный способ решением или это костыль?
Каталог есть, в норме - пустой.
То есть должен существовать как
/usr/share/wb-configs/mosquitto
так и
/usr/share/wb-configs/mosquitto-post
Проверьте права на него.
Ну и его отсутствие на работу не повлияет но при обновлении ПО (может) создаст проблемы.
Лучше, все ж, проверить.
Если верить WinSCP, то и mosquitto и mosquitto-post обладают одинаковыи правами
Но при этом, если проверять права через консоль, выходит такая картина:
root@wirenboard-AACLUYTY:~# ls -la /usr/share/wb-configs/mosquitto-post
ls: cannot access ‘/usr/share/wb-configs/mosquitto-post’: No such file or directory
root@wirenboard-AACLUYTY:~# ls -la /usr/share/wb-configs/mosquitto
total 20
drwxr-xr-x 2 root root 4096 Dec 24 16:52 .
drwxr-xr-x 6 root root 4096 Jan 1 1970 ..
-rw-r–r-- 1 root root 136 Jul 22 17:35 000persistence.conf
-rw-r–r-- 1 root root 152 Jul 22 17:35 30limits.conf
-rw-r–r-- 1 root root 136 Dec 24 16:09 persistence.conf
При этом если пользоваться утилитой mc, папку mosquitto-post также не видно:
У меня нет предположений, к сожалению. Рекомендую каталог создать.
Удивительно, но я ребутнул контроллер и все заработало. Спасибо большое за помощь в вопросе.