Mosquitto не стартует

Удаленно стоит WB6.1. Связь по OpenVPN.

Останавливал watchdog
Убрал все параметры из bridge.conf
Запускаю service mosquitto restart

Не запускается

root@wirenboard-AEH25FNC:~# invoke-rc.d mosquitto stop
root@wirenboard-AEH25FNC:~# invoke-rc.d mosquitto start
Job for mosquitto.service failed because a timeout was exceeded.
See “systemctl status mosquitto.service” and “journalctl -xe” for details.
invoke-rc.d: initscript mosquitto, action “start” failed.
● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 Broker
Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset : enabled)
Active: activating (start) since Wed 2019-03-27 15:27:24 MSK; 228ms ago
Main PID: 3547 (mosquitto)
CGroup: /system.slice/mosquitto.service
└─3547 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

Mar 27 15:27:24 wirenboard-AEH25FNC systemd[1]: Starting Mosquitto MQTT v3.1……
Hint: Some lines were ellipsized, use -l to show in full.
root@wirenboard-AEH25FNC:~# invoke-rc.d mosquitto start -l
Job for mosquitto.service failed because a timeout was exceeded.
See “systemctl status mosquitto.service” and “journalctl -xe” for details.
invoke-rc.d: initscript mosquitto, action “start” failed.
● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 Broker
Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: timeout) since Wed 2019-03-27 15:28:54 MSK; 290ms ago
Process: 3547 ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf (code=killed, signal=TERM)
Main PID: 3547 (code=killed, signal=TERM)
CGroup: /system.slice/mosquitto.service
└─3666 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

Mar 27 15:28:54 wirenboard-AEH25FNC systemd[1]: mosquitto.service: Unit entered failed state.
Mar 27 15:28:54 wirenboard-AEH25FNC systemd[1]: mosquitto.service: Failed with result ‘timeout’.
Mar 27 15:28:55 wirenboard-AEH25FNC systemd[1]: mosquitto.service: Service hold-off time over, schedul…start.
Mar 27 15:28:55 wirenboard-AEH25FNC systemd[1]: Stopped Mosquitto MQTT v3.1/v3.1.1 Broker.
Mar 27 15:28:55 wirenboard-AEH25FNC systemd[1]: Starting Mosquitto MQTT v3.1/v3.1.1 Broker…
Hint: Some lines were ellipsized, use -l to show in full.

Если запустить просто из консоли

mosquitto

, то работает пока консоль не закроешь.

Если watchdog запустить, то уходит в постоянный перезагруз - приходится “ловить” момент пока поднимется OpenVPN и опять его останавливать.

mosquitto.log заканчивается утром, когда перезапустил брокер первый раз

Сводка

1553664327: Connecting bridge amazon (34.239.120.177:1883)
1553664347: Socket error on client mosqsub|9222-wirenboard, disconnecting.
1553664358: Connecting bridge amazon (34.239.120.177:1883)
1553664362: New connection from 127.0.0.1 on port 1883.
1553664362: New client connected from 127.0.0.1 as mosqsub|9347-wirenboard (c1, k60).
1553664365: New connection from 127.0.0.1 on port 1883.
1553664365: New client connected from 127.0.0.1 as mosqpub|9348-wirenboard (c1, k60).
1553664365: Client mosqsub|9347-wirenboard disconnected.
1553664365: Client mosqpub|9348-wirenboard disconnected.
1553664387: Socket error on client local.wirenboard-AEH25FNC.amazon, disconnecting.
1553664396: mosquitto version 1.4.15 terminating

Что можно проверить, чтобы запустился?

Flagman, добрый день!
А соединения с amazon – это до того, как вы убрали настройки бриджа?
Пока идей нет, вот /etc/mosquitto с рабочего контроллера:
etc.mosquitto.tgz (1.1 КБ)

Сервер Amazon пока вообще выключен несколько дней, поэтому и бридж выключал

Анализирую причины, но пока не добрался до истоков.
“Заболел” тем же второй удаленный контроллер.
Первый контроллер htop:


Второй контроллер htop:

Что еще можно проверить, чтобы понять причины таких перегрузок системы?

А на другом контроллере с такой же конфигурацией mossquitto пробовали? Тоже дохнет?

посмотрите пожалуйста /var/lib/mosquitto/mosquitto.db . Не слишком ли он большого размера? Должен быть несколько мегабайт, не больше.

Первая база большая


Вторая тоже большая
%D0%9E%D1%81%D1%8C%D0%BC%D0%B8%D0%BD%D0%BE%20mosquitto%20db

Ищу причины, почему они не ограничиваются…

persistent_client_expiration duration

This option allows persistent clients (those with clean session set to false) to be removed if they do not reconnect within a certain time frame. This is a non-standard option. As far as the MQTT spec is concerned, persistent clients persist forever.

Badly designed clients may set clean session to false whilst using a randomly generated client id. This leads to persistent clients that will never reconnect. This option allows these clients to be removed.

The expiration period should be an integer followed by one of h d w m y for hour, day, week, month and year respectively. For example:

persistent_client_expiration 2m

persistent_client_expiration 14d

persistent_client_expiration 1y

As this is a non-standard option, the default if not set is to never expire persistent clients.

Reloaded on reload signal.

Если я правильно понял, то база стала быстро расти после того, как подписавшийся через бридж клиент, перестал получать данные?

Третий контроллер, который был подключен к AWS “лег отдохнуть”. Пока не получается с ним выйти на связь.

Да, сталкивались с таким. Правда, решили тем, что очистили базу и починили канал.

Перезагрузил mosquitto дважды
сначала в файле /etc/mosquitto/mosquitto.conf с параметрами

persistence false

затем с

persistence true
persistent_client_expiration 1d

На всякий случай сделал, чтобы база mosquitto.db при отсутствии связи с клиентом не росла до бесконечности, а только на 1 день.
Mosquitto запустился с нормальными параметрами

%20%D1%81%D0%B5%D0%BB%D0%BE%20mosquitto%20db%202

Пока осталась только проблема с третьим контроллером - нет связи.
Возможно это GPRS…

Проблема с москитой так и не решена, я полагаю?
Вроде предполагалось пропатчить под ваш дистр менее древнюю версию, где этот баг убрали? Не?

Точно такая же проблема. Отключение параметра persistence false я так понимаю вызовет проблемы с хранением параметров (“уставок”). Размер db файла 99мб

Здравствуйте!

С параметром persistence true брокер периодически сохраняет данные топиков на карту памяти. С параметром false этого не будет происходить, данные будут храниться только в оперативной памяти. Для хранения уставок в этом случае можно использовать постоянное хранилище из правил GitHub - wirenboard/wb-rules: Rule engine for Wiren Board

1 лайк

А можно ли как то просто изменить размер БД для mosquitto или настроить ротацию данных в БД ?

Это старинный бугъ старинной версии москиты, лечится свежей версией, увы.