Моя настройка mosquitto MQTT: различия между версиями
Mixman (обсуждение | вклад) Нет описания правки |
Mixman (обсуждение | вклад) Нет описания правки |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 47: | Строка 47: | ||
Теперь чем мой файл отличается от общепринятых. | Теперь чем мой файл отличается от общепринятых. | ||
*listener 1883 192.168.9.879 - устанавливает порт и IP адрес сервера mosquitto (изменить на свой) | |||
*persistent_client_expiration 14d - Удаляет топики, если клиент не подключался более 14 дней | *persistent_client_expiration 14d - Удаляет топики, если клиент не подключался более 14 дней | ||
*autosave_interval 0 - база данных топиков хранится в памяти и скидывается на винт только при перезагрузке. | *autosave_interval 0 - база данных топиков хранится в памяти и скидывается на винт только при перезагрузке. | ||
Строка 67: | Строка 68: | ||
Плохо спроектированные клиенты могут установить для чистого сеанса значение false при использовании случайно сгенерированного идентификатора клиента. Это приводит к постоянным клиентам, которые никогда не будут подключаться повторно. Эта опция позволяет удалить этих клиентов. | Плохо спроектированные клиенты могут установить для чистого сеанса значение false при использовании случайно сгенерированного идентификатора клиента. Это приводит к постоянным клиентам, которые никогда не будут подключаться повторно. Эта опция позволяет удалить этих клиентов. | ||
Срок действия должен быть целым числом, за которым следует одно из значений hdwmy для часа, дня, недели, месяца и года соответственно. Например: | Срок действия должен быть целым числом, за которым следует одно из значений '''hdwmy''' для '''часа, дня, недели, месяца и года''' соответственно. Например: | ||
* persistent_client_expiration 2m. | * persistent_client_expiration 2m. |
Текущая версия от 10:14, 6 сентября 2021
Запись больше для себя, чтобы в случае ЧП восстановить свои настройки, но вдруг кому будет полезно. Возможно будет обновляться )))
Для 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
Теперь чем мой файл отличается от общепринятых.
- listener 1883 192.168.9.879 - устанавливает порт и IP адрес сервера mosquitto (изменить на свой)
- 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. Этот параметр можно указывать несколько раз.