Установка Mosquitto
Только что поставил Mosquitto на Ubuntu Server 16.04.3, свежеустановленную на VMWare Workstation, со свежеустановленным же MD (использовал
скрипты из соответствующей темы), когда то пробовал на CentOS (я про москитто), здесь мало чем отличается, разве только синтаксисом команд.
Для создания и правки файлов использую WinSCP, им же удобно назначать chmod.
1. Установка
(UPD 04.09.2018)
на свежеустановленную 16.04.5 не ставится, пакет не обнаруживаетсятся в репозиториях "по-умолчанию"
сначала добавляем репозиторий:
Код: Выделить всё
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
затем обновить информацию о пакетах в репозиториях:
источник
теперь устанавливаем комарика
1.1 Делаем сервисом
при этом Ubuntu "ругнётся", но сделает как нужно:
mosquitto.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install enable mosquitto
дальше, что б не заморачиваться, я дал права 0777 на всю папку /etc/mosquitto (с потомками)
2. Настройка
2.1 создаём "самый главный конфиг"
/etc/mosquitto/mosquitto.conf
и вносим в него единственную запись:
это "заставит" брокер брать конфиги из папки /etc/mosquitto/conf.d
в этой папке удобно формировать разные конфиги для разных задач
например будет отдельно конфиг с основными настройками и отдельно конфиг\конфиги для других целей
2.2 создаём конфиг с "основными" настройками
/etc/mosquitto/conf.d/main.conf
(имя можно любое, я задал main.conf)
со следующим содержимым:
Код: Выделить всё
# =================================================================
# General configuration
# =================================================================
pid_file /var/run/mosquitto.pid
# =================================================================
# Default listener
# =================================================================
# ip-адрес сервера или имя (имя должно разрешаться локальнм ДНС)
bind_address 172.30.0.5
# порт по умолчанию 1883, при необходимости можно задать другой
port 1883
# =================================================================
# Default authentication and topic access control
# =================================================================
# файл с логинами/паролями
password_file /etc/mosquitto/users.list
# файл настройки доступа к топикам
acl_file /etc/mosquitto/mosquitto.acl
# =================================================================
# Persistence
# =================================================================
persistence true
persistence_file mosquitto.db
# по умолчанию "база" создаётся не помню где, я посчитал что будет удобно иметь рядом и конфиги и логи и базу
persistence_location /etc/mosquitto/
# =================================================================
# Logging
# =================================================================
log_dest syslog
log_facility 5
# удобно когда лог радом (хотя бы на время установки\запуска\отладки)
log_dest file /etc/mosquitto/mosquitto.log
#log_dest file /var/log/mosquitto/mosquitto.log
# после отладки каментим debug и information иначе лог пухнет на глазах
log_type debug
log_type error
log_type warning
log_type notice
log_type information
# =================================================================
2.3 учётные записи
создаём пустой файл /etc/mosquitto/users.list
и сразу создаём пользователя\пользователей
синтаксис очень простой:
Код: Выделить всё
mosquitto_passwd /etc/mosquitto/users.list TEST
попросит ввести и подтвердить пароль, в только что созданный файл users.list добавится пользователь TEST
2.4 доступ к топикам
создаём файл /etc/mosquitto/mosquitto.acl
и сразу настраиваем нужный доступ по нужным пользователям (п. 2.3), для начала даём доступ пользователю TEST доступ ко всем топикам
сдержимое:
3. Запуск
проверить статус сервиса
остановить сервис
перезапустить сервис
сразу видим появление /etc/mosquitto/mosquitto.log
если всё сделали правильно то в нём появится запись типа
1511807719: mosquitto version 1.4.8 (build date Mon, 26 Jun 2017 09:31:02 +0100) starting
1511809790: New connection from 172.30.0.111 on port 1883.
1511809790: New client connected from 172.30.0.111 as ESP8266 (c1, k60, u'test')
после отладки в main.conf каментим log_type debug и log_type information иначе лог пухнет на глазах
для создаваемых файлов конфигов и др. проверяем\правим chmod
позже о создании моста с "внешним" брокером cloudmqtt.com