Моя настройка mosquitto MQTT

Материал из MajorDoMo инфо

Запись больше для себя, чтобы в случае ЧП восстановить свои настройки, но вдруг кому будет полезно. Возможно будет обновляться )))

Для Debian

Итак поехали.

sudo service mosquitto stop
sudo nano /etc/mosquitto/mosquitto.conf

Меняю на это

listener 1883 192.168.9.879

#persistence false
persistence true
persistence_location /var/lib/mosquitto/
persistence_file mosquitto.db
autosave_interval 0
persistent_client_expiration 14d

log_dest none

#log_dest syslog
#log_dest stdout
#log_dest topic
#log_type error
#log_type warning
#log_type notice
#log_type information

log_type none
connection_messages true
log_timestamp true
allow_anonymous false
#password_file /etc/mosquitto/pwfile
password_file /etc/mosquitto/passwd

sys_interval 0
sudo service mosquitto start


Теперь чем мой файл отличается от общепринятых.

  • persistent_client_expiration 14d - Удаляет топики, если клиент не подключался более 14 дней
  • autosave_interval 0 - база данных топиков хранится в памяти и скидывается на винт только при перезагрузке.
  • sys_interval 0 - отключаю логи

PS: полность очистить mqtt базу в Linux

sudo service mosquitto stop
sudo rm /var/lib/mosquitto/mosquitto.db
sudo service mosquitto start

Ниже скопировано с оффициального сайта москито и переведено онлайн переводчиком


persistent_client_expiration duration Этот параметр позволяет удалять постоянных клиентов (тех, у которых для чистого сеанса установлено значение false), если они не подключаются повторно в течение определенного периода времени. Это нестандартный вариант. Что касается спецификации MQTT, постоянные клиенты сохраняются вечно.

Плохо спроектированные клиенты могут установить для чистого сеанса значение false при использовании случайно сгенерированного идентификатора клиента. Это приводит к постоянным клиентам, которые никогда не будут подключаться повторно. Эта опция позволяет удалить этих клиентов.

Срок действия должен быть целым числом, за которым следует одно из значений hdwmy для часа, дня, недели, месяца и года соответственно. Например:

  • persistent_client_expiration 2m.
  • persistent_client_expiration 14d
  • persistent_client_expiration 1y.

Поскольку это нестандартный вариант, по умолчанию, если он не установлен, постоянные клиенты никогда не истекают.

Эта опция применяется глобально.


autosave_interval seconds Количество секунд, в течение которых mosquitto будет ждать между каждым сохранением базы данных в памяти на диск. Если установлено значение 0, база данных в памяти будет сохранена только при выходе Mosquitto или при получении сигнала SIGUSR1. Обратите внимание, что этот параметр действует только в том случае, если включено сохранение. По умолчанию 1800 секунд (30 минут).

sys_interval seconds

Установка этого значения в ноль отключит публикацию иерархии. По умолчанию интервал составляет 10 секунд.

Используйте «log_dest none», если хотите отключить ведение журнала. По умолчанию stderr. Этот параметр можно указывать несколько раз.