Mosquitto на Raspberry Pi відмовляється від з'єднання після зміни налаштувань журналу


12

В моїх постійних починаннях, щоб я мав Raspberry Pi, щоб командувати моїми речами, я створив брокера Mosquitto MQTT. У базових налаштуваннях все пішло досить добре.

Я міг розміщувати тестові повідомлення за допомогою команди публікації та отримувати їх за допомогою команди підписки. Тоді я вирішив підвищити рівень журналу і змінив файл mosquitto.conf таким чином. Версія з по суті весь коментований розділ коментується працює. Інший ні.

Я звузив його до рядка з файлом журналу.

$ diff mosquitto.conf mosquitto.conf.old
408,410c408,410
< #log_dest file /var/log/mosquitto/mosquitto.log
---
> log_dest file /var/log/mosquitto/mosquitto.log

Файл існує та належить mosquitto:mosquittoкористувачеві, який запускає послугу.

Дуже корисне повідомлення, яке я отримую при спробі ведення журналу, полягає в наступному:

mosquitto_pub -h localhost -t thisisme -m 5
Error: Connection refused

На сьогодні я впевнений, що служба помирає мовчазною смертю.

$ sudo service mosquitto status
 mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
   Loaded: loaded (/etc/init.d/mosquitto)
   Active: active (exited) since Fri 2017-01-06 11:16:38 CET; 4min 24s ago
  Process: 2222 ExecStop=/etc/init.d/mosquitto stop (code=exited, status=0/SUCCESS)
  Process: 2230 ExecStart=/etc/init.d/mosquitto start (code=exited, status=0/SUCCESS)

Jan 06 11:16:38 T-Pi mosquitto[2230]: Starting network daemon:: mosquitto.
Jan 06 11:16:38 T-Pi systemd[1]: Started LSB: mosquitto MQTT v3.1 message broker.

Я запускаю Raspbian GNU / Linux 8 (jessie) із такими пакетами комарів:

libmosquitto1/stable,now 1.3.4-2 armhf [installed,automatic]
mosquitto/stable,now 1.3.4-2 armhf [installed]
mosquitto-clients/stable,now 1.3.4-2 armhf [installed]
python-mosquitto/stable,now 1.3.4-2 all [installed]

Подальша інформація про запит коментаря:

ls -ld /var /var/log /var/log/mosquitto /var/log/mosquitto/mosquitto.log
drwxr-xr-x 11 root      root       4096 Sep 23 06:02 /var
drwxr-xr-x  8 root      root       4096 Jan  6 21:07 /var/log
drwxr-xr-x  2 mosquitto mosquitto  4096 Jan  5 14:36 /var/log/mosquitto
-rw-r--r--  1 mosquitto mosquitto 14233 Jan  6 21:07 /var/log/mosquitto/mosquitto.log

Єдиний файл журналу в / var / log, який змінюється, - це auth.log від мого sudo.

Що я зламав?


Чи взагалі щось написано /var/log/mosquitto/mosquitto.log?
Aurora0001

1
@ Aurora0001 нічого, що стосується цієї спроби підключення, ні
Гельмар

Яка ОС? Яка версія комара?
Ганіма

@Ghanima додав інформацію
Гельмар

Чи можете ви спробувати повернути його до старого файлу конфігурації та перевірити? Дуже німий: перевірити журнал стану
комарів

Відповіді:


8

Одним із способів налагодити це буде запуск комара вручну з тими ж параметрами, що і ваша система init, а потім подивіться на вихід. Наприклад:

mosquitto -v -c <path to config file>

Додавання -vгарантує, що у вас є багатослівний журнал, незалежно від параметрів конфігураційного файлу.


3
Це допомогло, мабуть, є другий mosquitto.conf в / etc / mosquitto, який включає той, який я використовував у /etc/mosquitto/conf.d/. У цьому першому файлі вже був стандартний набір файлів журналу. Таким чином, створюючи помилку: Дублюйте значення "log_dest file". що заважало сервісу належним чином запуститися. Якось ця помилка не вийшла під час використання звичайної програми запуску служби.
Гельмар

6

У Arch Linux (4.4.37-1-ARCH) з mosquitto 1.4.10-2та існуючим лог -файлом / контуром з дозволами як таким я не можу відтворити цю помилку.

/var/log/mosquitto $ ls -l
-rw-r--r-- 1 mosquitto root 7832 Jan 5 18:15 mosquitto.log

Якщо дозволи лог-файлу різняться, або він не існує, і дозвіл каталогів не дозволяє комарі писати на нього, запуск демона брокера виходить з ладу. Що, крім цього, призводить до Error: Connection refusedпублікації або підписки тем. Принаймні, служба не вмирає мовчазною смертю, але сповіщає про це добре в системі.

Коротше кажучи, у каталозі, що /var/log/mosquittoналежить користувачеві комарів та який записується, log_dest file [...]рядок у конфігурації комара працює чудово.


6

Колода каталог / файл повинен бути в власності від mosquittoкористувача або користувача , який у вас є налаштування у файлі конф і групи. Я спробував з двома конф-файлами, один із вихідним log_dest file /var/log/mosquitto/mosquitto.logі один із призначенням журналу для подачі.

На моєму сервері Mosquitto працює з mosquittoкористувачем.

З log_dest file /var/log/mosquitto/mosquitto.logвласником rootкористувача не працює з помилкою статусу послуги. Можливо, це стосується і вас. Перевірте service statusпісля додавання log_dest.

Я спробував змінити право власності на /var/log/mosquittoпапку на mosquitto.

sudo chown -R mosquitto:mosquitto /var/log/mosquitto

Потім почав службу. Зараз добре працює.


Раніше у мене був власник файлу, тепер я також створив групу і змінив дозволи, як було запропоновано, але не пощастило.
Гельмар

@Helmar хм! це дивно. Після зміни групи ви перезапустили або запустили послугу?
bravokeyl

@Helmar Чи можете ви повторно перевірити, чи існує (ви створили) каталог призначення журналу?
bravokeyl

І файл, і каталог існують і належать комару: mosquitto
Гельмар
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.