directman

 
<<< Back

Настройка брокера MQTT

соберу необходимую по первоначальной настройке информацию из разных источников на будущее (протестировано на арм, на openmediavalue)

  1. Обновляем систему
    Первым делом перед началом установки нам необходимо обновить систему. Подключаеся к нашему Pi по SSH и вводим:
sudo apt-get update
sudo apt-get upgrade

Подробнее посмотреть как подключаться к Pi по SSH и что потом можно делать вы можете прочитать в нашей статье.

  1. Устновка брокера и клиента “mosquitto”
    К сожалению, обычные библиотеки “apt-get” Raspberry Pi (Orange Pi) не содержат последнюю версию Mosquitto software. Поэтому перед установкой нам нужно будет обновить библиотеки. Если на сервере будет установлена не последняя версия брокера, то могут появляться ошибки в процессе работы.

Добавляем ключ и обновляем репозиторий. Вводим эти строчки по очереди. Иногда надо будет вводить пароль от вашего пользователя и нажимать Y для согласия с установкой.

sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key
cd /etc/apt/sources.list.d/
sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
sudo apt-get update

Устанавливаем MQTT брокер (сервер):

sudo apt-get install mosquitto

Устанавливаем MQTT клиент:

sudo apt-get install mosquitto mosquitto-clients

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

  1. Останавливаем сервер для настройки
    После установки сервер MQTT сразу запускается. Нам необходимо оставновить его, чтобы произвести последующую настройку.
    sudo /etc/init.d/mosquitto stop
  2. Настройка
    Открываем файл настроек
    sudo nano /etc/mosquitto/mosquitto.conf

    и заменяем его содержимое на следующее:

    # Place your local configuration in /etc/mosquitto/conf.d/
    #
    # A full description of the configuration file is at
    # /usr/share/doc/mosquitto/examples/mosquitto.conf.example
    pid_file /var/run/mosquitto.pid
    persistence true
    persistence_location /var/lib/mosquitto/
    log_dest topic
    log_type error
    log_type warning
    log_type notice
    log_type information
    connection_messages true
    log_timestamp true
    include_dir /etc/mosquitto/conf.d

Сохраняем, закрываем программу nano и выходим обратно в терминал (ctrl+o, Enter, ctrl+x).

5.Запускаем сервер MQTT

sudo /etc/init.d/mosquitto start
  1. Проверяем работу MQTT брокера
    Для проверки работы нашего MQTT брокера нам понадобится MQTT клиента. Это могут быть смартфоны с MQTT клиентами, которые подключены к той же Wi-Fi сети. Но мы воспользуемся более простым способом - подключимся к серверу 2 терминалами параллельно.

Принцип работы протокола MQTT

Нам необходимо, чтобы первый терминал подписался на топик hello/world, второй терминал отправил в этот топик сообщение и первый терминал его получил.

Итак, в первом терминале, в котором вы делали все настройки, подписываемся на канал hello/world:

mosquitto_sub -d -t hello/world

Открываем второе окно терминала, по SSH подключаемся к нашему серверу и отправляем сообщение в канал hello/world:

mosquitto_pub -d -t hello/world -m "Hello from Terminal window 2!"

В результате в первом окне появится сообщение:

Hello from Terminal window 2!

Проверка работы брокера с помощью 2х терминалов

Поздравляем! Ваш MQTT брокер работает!

  1. Статус сервера MQTT
    Проверить стаус вашего MQTT брокера вы всегда можете через терминал:
    sudo /etc/init.d/mosquitto status

    После этой команды в терминале будет показана подробная информация о состоянии вашего сервера.

Проверка статуса MQTT брокера

  1. Настройка пароля для MQTT
    Для тестов и маленьких проектов вы можете использовать подключение к MQTT серверу без пароля, но в больших системах для повышения уровня безопасности необходимо добавить логин и пароль. Это делается достаточно просто.

Для того, чтобы клиенты могли подключиться к вашемо брокеру только по логину и паролю необходимо создать конфигурационный файл, который будет содержать имя пользователя и зашифрованный пароль. Вводим в консоли:

sudo mosquitto_passwd -c /etc/mosquitto/passwd <username>

Вместо <username> необходимо указать имя пользователя, которому будет разрешен доступ, например, mqtusr. После выполнения этой команды юзер mqtusr будет добавлен в систему. Дальше необходимо будет ввести ваш пароль от юзера pi, а потом 2 раза пароль для доступа юзера mqtusr к mqtt брокеру. В качестве второго пароля не воодите пароль от пользователи pi, лучше придумайте новый.

Теперь необходимо поменять настройки доступа к системе, для этого необходимо отредактировать файл /etc/mosquitto/conf.d/default.conf на вашем pi. Вы можете использовать для этого любой текстовый редактор, я предпочитаю nano, поэтому в консоли ввожу:

sudo nano /etc/mosquitto/conf.d/default.conf

В открывшейся файл добавляем 2 строчки:

allow_anonymous false
password_file /etc/mosquitto/passwd

Сохраняем и закрываем файл. Для этого в nano нажимаем ctrl+x, выбираем Y и нажимает Enter. Как вы видите в этом конфиге мы прописали в каком файле хранятся юзеры и пароли для подключения к нашему MQTT брокеру, а также мы запретили подключение к серверу всем пользователям без логина и пароля.

Теперь необходимо перезапустить MQTT сервер, для этого вводим в консоли:

sudo systemctl restart mosquitto

Настройка закончена - безопасность вашей системы теперь на высшем уровне!

сылка на статью http://robot-on.ru/articles/ystanovka-mqtt-brokera...

Discuss (0) (4)

See also:
2021-03-02 Добавляем новые или недостающие метрики управления устройств в модуле zigbee2mqtt
2021-02-16 Установка Majordomo на JetHUB D1
2021-02-02 Shelly 1
2020-09-30 Команды для назначения владельцев папок
2020-09-16 Собираем список ip вызывных панелей с поддержкой SIP
2020-07-03 Получаем безопасный доступ к Web странице MajorDoMo
2020-04-24 Установка MajorDoMo на synology в 3 клика
2020-02-13 Настройка модуля zigbee2mqtt для работы с zigbee2mqtt или шлюзом sls zigbee gateway
2020-02-13 Настройка модуля zigbee2mqtt для работы с zigbee2mqtt или шлюзом sls zigbee gateway
2020-01-25 Команды для настройки прав пользователей на папку с majordomo
2020-01-23 Отключаем строгий режим MYSQL штатными средствами
2019-10-12 Подключаем светодиодные ленты к контроллеру MegaD
2019-10-11 Варианты интеграции электроприводов
2019-09-30 Выбор источников сигнала телевизоров LG 2013
2019-09-29 Узнаем версию дистрибутива linux
2019-09-24 Установка необходимых пакетов в xpenology через docker
2019-09-16 Примеры разметки Markdown
2019-09-14 Краткий обзор выключателей, в том числе Sonoff T4EU1C
2019-09-13 Сценарий для канала @MajorDoMo_feed
2020-03-26 Опыт установки Synology DSM
2019-09-09 Делаем majordroid лаунчером андройд по-умолчанию.
2019-09-04 Реализация сценария "кто-то пришел"
2019-09-02 Отправляем график hightcharts свойства любого объекта в телеграмм
2019-09-17 Автономная сигнализация на базе контроллера megad-2561
2019-08-27 Управление громкостью терминалов через телеграмм
2019-08-26 Полноценная консоль в браузере (wetty)
2019-08-16 Точечное регулирование радиаторов отопления
2019-08-18 Собираем голосовой помощник на базе WM8960 Audio HAT и raspberry pi zero w
2019-08-13 Общедоступная ссылка с закатом, рассветом и текущей погодой
2019-07-24 Самый дешевый вариант видеонаблюдения
2019-07-22 Запуск MajorDroid на одноплатниках, старых планшетах, телефонах.
2019-07-22 Запуск Majordroid на старом железе
2019-07-15 Устанавливаем opencv и необходимые библиотеки на ubuntu 18.04 без использования python
2019-07-05 Решение проблемы Incorrect integer value: '' for column 'ID' at row 1
2019-07-04 О приборах учета и удаленном снятии показаний (вода и газ)
2019-07-04 О приборах учета и удаленном снятии показаний (электричество)
2019-07-03 Конвертируем rs-485 в TCP-IP
2019-06-24 Наблюдение за радиационной обстановкой в регионе
2019-06-06 Меню пылесоса Xiaomi в телеграмм
2019-06-06 Удобный просмотр данных сенсоров через телеграмм
2019-06-06 Просмотр камер через телеграмм
2019-06-06 Управление светом через телеграмм
2019-06-06 Колор-пикер для телеграм
2019-05-06 Список символов emoji
2019-04-17 Установка z-way на Ubuntu
2019-04-16 Решение проблемы ERROR 1040 (HY000): Too many connections
2018-09-09 Список домофонов с IP интерфейсом
2018-08-29 Список кондиционеров с wifi
2018-08-29 Список доступных к покупке IP колонок
2018-07-15 Интеграция датчика Mi flora plant к системе УД MAJORDOMO
2018-06-13 Полезные команды для работы с git
2018-05-27 преобразование html страниц в картинку и отправка в телеграмм
2018-05-24 Полезные sql запросы
2018-05-23 Создание образа nand памяти orange pi plus2
2018-05-16 Команды для работы с базой данных напрямую
2018-04-13 Индикаторы о заряде батареек без использования картинок
2018-04-06 Установка и настройка python на windows для работы систем распознавания
2018-04-05 Распознавание лиц подходящих к двери людей с помощью ip камеры и открытие двери, если нейросеть признала своего
2018-04-04 Управление таймерами выключения света
2018-04-04 Управление RGB контроллером на базе ESP8266
2018-04-03 Увеличение разрешения китайских камер на чипе hi3516c H264
2018-03-13 Использование колонки google home в качестве терминала Majordomo
2018-03-13 Установка и подключение rtl usb донгла для чтения датчиков температуры и кнопок 433 мгц
2018-02-17 Проект "умная входная дверь"
2018-02-11 Отправка всех значений свойства объекта в телеграм
2017-12-21 получение адреса по GPS координатам
2017-12-21 получение / передача GPS координат сервису livegps.com
2017-12-21 чтение мгновенных данных U,P, I электросчетчика милур 104
2017-12-21 Получение координат с маяков и gsm сигнализаций starline-online.ru

Екатеринбург, Россия

На форуме: directman66