Не запускается служба mosquito broker windows 10

Единственное, что я могу думать, это то, что в вашем файле конфигурации есть проблема, из-за которой брокер останавливается. Что, если вы попытаетесь запустить брокер вручную из командной строки, используя тот же файл конфигурации?

Единственное, что я могу думать, это то, что в вашем файле конфигурации есть проблема, из-за которой брокер останавливается. Что, если вы попытаетесь запустить брокер вручную из командной строки, используя тот же файл конфигурации?

у меня такая же проблема … !!!

Друг дает решение …..

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

У вас все еще была эта проблема? Вы пытались удалить файл журнала, как предлагал @ericGTT ?

  1. У меня аналогичная проблема … удаление файла журнала, а затем перезапуск, у меня не сработали.
  2. Я предполагаю; это связано с услугами.
    3а. Я не могу запустить службу.
    3b. Подумал об увеличении размера журнала из программы просмотра событий … но как? если нет файла.

    1. Что удивительно … месяц назад точно такие же настройки (без изменений) работали отлично.
  3. Прилагаю несколько снимков экрана для справки.

mosquitto_broker_service_not_starting

mosquitto_sub_sctively_refused

почему сервер Mosquitto автоматически останавливается ??
Активен: активен (вышел) с Вт 2018-04-03 04:59:29 UTC; 7ч назад
Спасибо!!…

У меня такая же проблема. Когда я просто запускаю mosquitto.exe из командной строки, он работает нормально. Когда я запускаю службу, такая же проблема, как описано выше. Я проверил свой файл настроек, и ничего не включено для регистрации. Я не видел никаких созданных файлов журналов, поэтому удалять было нечего. Для меня создание службы Windows (установка mosquitto.exe) работало только тогда, когда я запускал командную строку от имени администратора.

Люди, столкнувшиеся с этой проблемой:

Проблема заключается в пути к файлу (файлам), установленному в файле конфигурации при запуске в качестве службы. Видимо mosquitto довольно придирчив к разбору пути. Я пробовал использовать несколько форматов цитирования и экранирования, чтобы обойти пробелы в «Program Files», но в конце концов мне пришлось переместить свой файл паролей (предположим, что то же самое будет и с файлом журнала) в корень.

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

  1. У меня аналогичная проблема … удаление файла журнала, а затем перезапуск, у меня не сработали.
  2. Я предполагаю; это связано с услугами.
    3а. Я не могу запустить службу.
    3b. Подумал об увеличении размера журнала из программы просмотра событий … но как? если нет файла.
  3. Что удивительно … месяц назад точно такие же настройки (без изменений) работали отлично.
  4. Прилагаю несколько снимков экрана для справки.

mosquitto_broker_service_not_starting

mosquitto_sub_sctively_refused

Та же проблема со мной. Я перезагрузил компьютер, затем он решил

Люди, столкнувшиеся с этой проблемой:

Проблема заключается в пути к файлу (файлам), установленному в файле конфигурации при запуске в качестве службы. Видимо mosquitto довольно придирчив к разбору пути. Я пробовал использовать несколько форматов цитирования и экранирования, чтобы обойти пробелы в «Program Files», но в конце концов мне пришлось переместить свой файл паролей (предположим, что то же самое будет и с файлом журнала) в корень.

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

Спасибо за подсказку о том, что искать. Мне удалось сослаться на файл паролей следующим образом:
«файл_паролей C: Progra ~ 1mosquittopasswd»
В конфигурационном файле нет кавычек. Надеюсь, это кому-то поможет.

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

где находится этот файл журнала?

Посмотрите файл конфигурации и посмотрите, куда он сохранен.

Используя полные пути, у меня работало ограничение количества символов имени папки:

log_dest file C:Progra~1mosquittomosquitto.log
password_file C:Progra~1mosquittouser_security

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

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

Теперь у кого-нибудь есть исправление проблемы с журналом? Я не могу найти способ открыть этот файл журнала. Что хорошего в файле журнала, если вы не можете его просмотреть?

Вы должны предоставить соответствующие разрешения для входа в службу.

Если служба работает под локальной системной учетной записью, добавьте ЛОКАЛЬНУЮ СЛУЖБУ в разрешения для папки установки.

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

image

Для меня причина в том, что в файле паролей определены дополнительные двойные кавычки.
Неверно: файл-пароля «C: Program Filesmosquittopasswd.txt»
Справа: файл_паролей C: Program Filesmosquittopasswd.txt

Была ли эта страница полезной?

0 / 5 — 0 рейтинги

I installed mosquitto for Windows, and ran the following command from command prompt as administrator:

net start mosquitto

I get the following message:

The Mosquitto Broker service is starting. The Mosquitto Broker service
could not be started.

The service did not report an error.

What could be the issue? Thanks!

Bence Kaulics's user avatar

asked Oct 27, 2020 at 6:50

Kirthi's user avatar

When running Mosquitto Broker as a service on Windows, it will always look for a config file in the MOSQUITTO_DIR path.

If you do not have a config file there, it will fail. Usually the installer creates this for you, I suggest you to check if the configuration file is present.

answered Oct 27, 2020 at 7:55

rebatoma's user avatar

rebatomarebatoma

1711 silver badge6 bronze badges

2

I installed mosquitto for Windows, and ran the following command from command prompt as administrator:

net start mosquitto

I get the following message:

The Mosquitto Broker service is starting. The Mosquitto Broker service
could not be started.

The service did not report an error.

What could be the issue? Thanks!

Bence Kaulics's user avatar

asked Oct 27, 2020 at 6:50

Kirthi's user avatar

When running Mosquitto Broker as a service on Windows, it will always look for a config file in the MOSQUITTO_DIR path.

If you do not have a config file there, it will fail. Usually the installer creates this for you, I suggest you to check if the configuration file is present.

answered Oct 27, 2020 at 7:55

rebatoma's user avatar

rebatomarebatoma

1711 silver badge6 bronze badges

2

Модератор: immortal

immortal

Сообщения: 1137
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а):
16 раз
Поблагодарили:
398 раз
Контактная информация:

Re: проблемы с запуском службы MQTT

Сообщение

immortal » Пн фев 27, 2017 1:25 pm

как Вы определили что не запускается mosquitto?
Что пишет
service mosquitto status
и
mosquitto_pub -h localhost -t «mqtt» -m «Hello MQTT»

За это сообщение автора immortal поблагодарил:
murzzik (Пн фев 27, 2017 1:48 pm)

Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru

murzzik

Сообщения: 8
Зарегистрирован: Вс фев 26, 2017 4:50 pm
Благодарил (а):
8 раз
Поблагодарили:
0

Re: проблемы с запуском службы MQTT

Сообщение

murzzik » Пн фев 27, 2017 1:38 pm

immortal писал(а):

как Вы определили что не запускается mosquitto?
Что пишет
service mosquitto status
и
mosquitto_pub -h localhost -t «mqtt» -m «Hello MQTT»

Код: Выделить всё

root@orangepi:~# service mosquitto status
Usage: /etc/init.d/mosquitto start|stop
root@orangepi:~#  

Код: Выделить всё

mosquitto_pub -h localhost -t "mqtt" -m "Hello MQTT"

Изображение
image upload
При попытке запуска после перезагрузки вот что получается.

Код: Выделить всё

root@orangepi:~# /etc/init.d/mosquitto start
Starting mosquitto
/etc/init.d/mosquitto: line 7: /var/log/mosquitto/mosquitto.log: No such file or           directory
root@orangepi:~#
 

вероятно пункт с «оптимизацией» был лишний, но знаний в линуксе не позволяют «вернуть как было»

DimSun75

Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а):
7 раз
Поблагодарили:
44 раза

Re: проблемы с запуском службы MQTT

Сообщение

DimSun75 » Пн фев 27, 2017 1:48 pm

murzzik писал(а):

Код: Выделить всё

root@orangepi:~# /etc/init.d/mosquitto start
Starting mosquitto
/etc/init.d/mosquitto: line 7: /var/log/mosquitto/mosquitto.log: No such file or           directory
root@orangepi:~#

вероятно пункт с «оптимизацией» был лишний, но знаний в линуксе не позволяют «вернуть как было»

Поищите в файле /etc/mosquitto/mosquitto.conf параметр log_dest и поменяйте /var/log/mosquitto/mosquitto.log на /var/log/mosquitto.log

За это сообщение автора DimSun75 поблагодарил:
murzzik (Пн фев 27, 2017 1:48 pm)

murzzik

Сообщения: 8
Зарегистрирован: Вс фев 26, 2017 4:50 pm
Благодарил (а):
8 раз
Поблагодарили:
0

Re: проблемы с запуском службы MQTT

Сообщение

murzzik » Пн фев 27, 2017 1:56 pm

DimSun75 писал(а):

murzzik писал(а):

Код: Выделить всё

root@orangepi:~# /etc/init.d/mosquitto start
Starting mosquitto
/etc/init.d/mosquitto: line 7: /var/log/mosquitto/mosquitto.log: No such file or           directory
root@orangepi:~#

вероятно пункт с «оптимизацией» был лишний, но знаний в линуксе не позволяют «вернуть как было»

Поищите в файле /etc/mosquitto/mosquitto.conf параметр log_dest и поменяйте /var/log/mosquitto/mosquitto.log на /var/log/mosquitto.log

Изображение
image cdn free

заменить на

?

DimSun75

Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а):
7 раз
Поблагодарили:
44 раза

Re: проблемы с запуском службы MQTT

Сообщение

DimSun75 » Пн фев 27, 2017 2:00 pm

murzzik писал(а):

заменить на

?

Не, не то. Это закоментированно. В папочке /etc/mosquitto/conf.d/ есть файлик mosquitto.conf в нем тогда должно быть.

За это сообщение автора DimSun75 поблагодарил:
murzzik (Пн фев 27, 2017 2:02 pm)

murzzik

Сообщения: 8
Зарегистрирован: Вс фев 26, 2017 4:50 pm
Благодарил (а):
8 раз
Поблагодарили:
0

Re: проблемы с запуском службы MQTT

Сообщение

murzzik » Пн фев 27, 2017 2:03 pm

DimSun75 писал(а):

murzzik писал(а):

заменить на

?

Не, не то. Это закоментированно. В папочке /etc/mosquitto/conf.d/ есть файлик mosquitto.conf в нем тогда должно быть.

там, к сожалению, нет такой папки

Код: Выделить всё

root@orangepi:/etc/mosquitto# ls
aclfile.example  mosquitto.conf  mosquitto.conf.example  pskfile.example  pwfile.example

DimSun75

Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а):
7 раз
Поблагодарили:
44 раза

Re: проблемы с запуском службы MQTT

Сообщение

DimSun75 » Пн фев 27, 2017 2:14 pm

murzzik писал(а):

DimSun75 писал(а):

murzzik писал(а):

заменить на

?

Не, не то. Это закоментированно. В папочке /etc/mosquitto/conf.d/ есть файлик mosquitto.conf в нем тогда должно быть.

Код: Выделить всё

root@orangepi:/etc/mosquitto# ls
aclfile.example  mosquitto.conf  mosquitto.conf.example  pskfile.example  pwfile.example

Понятно. В файле /etc/init.d/mosquitto заменить все /var/log/mosquitto/.. на /var/log/ просто убрать нафиг папку mosquitto

было

Код: Выделить всё

echo "Starting mosquitto"
/usr/local/sbin/mosquitto -d -c /etc/mosquitto/mosquitto.conf
 >> /var/log/mosquitto/mosquitto.log 
 2>> /var/log/mosquitto/mosquitto.error
;; 

стало:

Код: Выделить всё

echo "Starting mosquitto"
/usr/local/sbin/mosquitto -d -c /etc/mosquitto/mosquitto.conf
 >> /var/log/mosquitto.log 
 2>> /var/log/mosquitto.error
;; 
За это сообщение автора DimSun75 поблагодарил:
murzzik (Пн фев 27, 2017 2:16 pm)

DimSun75

Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а):
7 раз
Поблагодарили:
44 раза

Re: проблемы с запуском службы MQTT

Сообщение

DimSun75 » Пн фев 27, 2017 2:20 pm

Понятно дело. директория /etc/init.d файл в ней mosquitto

За это сообщение автора DimSun75 поблагодарил:
murzzik (Пн фев 27, 2017 2:26 pm)

murzzik

Сообщения: 8
Зарегистрирован: Вс фев 26, 2017 4:50 pm
Благодарил (а):
8 раз
Поблагодарили:
0

Re: проблемы с запуском службы MQTT

Сообщение

murzzik » Пн фев 27, 2017 2:26 pm

DimSun75 писал(а):Понятно дело. директория /etc/init.d файл в ней mosquitto

Большое спасибо. С папкой это я ошибся. Все заработало!)

@Pelagoutb

Running Mosquitto on the same PC as Python pub and sub or even mosquitto_sub.exe or mosquitto_pub.exe in command Prompt on Windows 10 does not work with any other IP than 127.0.0.1 or localhost as broker. No contact from outside even with Firewall open on port 1883 not even from the computer calling ist own external IP
Error Message:
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it

netstat -a only show the 1883 port on the 127.0.0.1 IP and not on external IP
127.0.0.1:1883 ComputerA LISTENING

Have tried to connect on same wifi from Other Computer, ESP6288, and Android MQTT app. No connection or Connection Failure.

Installed Versions:
OS: Windows 10 Enterprise, Version 20H2, OS Build 19042.630, Windows Feature Experience Pack 120.2212.31.0
Mosquitto; mosquitto-2.0.4-install-windows-x64.exe
Python 3.9.1 and ESP6288 and Android app.

Could someone explain this error and point me in a direction to solve it.

@ptjm

I assume you’re running either without a config file or with a config file that doesn’t define a listener. As of mosquitto 2.0, this gives the behaviour you’re describing. To listen on addresses other than localhost, you need to have a config file with a «listener» line plus some authentication option. At its most wide-open, you could have

listener 1883
allow_anonymous true

It is, of course, better to restrict the listener to the IP addresses that you need and it’s often better to use some kind of authentication mechanism rather than leaving your server wide open.

If you’re upgrading from version 1.6 or earlier, you should look at ChangeLog.txt from the installation directory as it has some discussion of breaking changes. You may also want to look at https://mosquitto.org/man/mosquitto-conf-5.html

ralight, Pelago, Rapti, samshum2, dorokhin, aj-way, jnt0r, kimble, guyluz11, cmoutafidis, and 17 more reacted with thumbs up emoji
caglartufan, manojkumart18, and fredrick-foodyguru reacted with heart emoji

@Pelago

Spot on!
Thank you for your support!

@Pelagoutb

It worked perfectly!
Thank you for your support!

@ptjm
ptjm

mentioned this issue

Jan 5, 2021

@samshum2

windows OS is so Difficult

@aj-way

At its most wide-open, you could have

listener 1883
allow_anonymous true

I’ve just done an update to my home automation Raspberry Pi and Mosquito stopped working. After a couple of hours of panicking I found this post, edited /etc/mosquitto/mosquitto.conf and fixed it. Thank you very much!

@electronic4706

If you’re upgrading from version 1.6 or earlier, you should look at ChangeLog.txt from the installation directory as it has some discussion of breaking changes. You may also want to look at https://mosquitto.org/man/mosquitto-conf-5.html

I assume you’re running either without a config file or with a config file that doesn’t define a listener. As of mosquitto 2.0, this gives the behaviour you’re describing. To listen on addresses other than localhost, you need to have a config file with a «listener» line plus some authentication option. At its most wide-open, you could have

listener 1883
allow_anonymous true

It is, of course, better to restrict the listener to the IP addresses that you need and it’s often better to use some kind of authentication mechanism rather than leaving your server wide open.

If you’re upgrading from version 1.6 or earlier, you should look at ChangeLog.txt from the installation directory as it has some discussion of breaking changes. You may also want to look at https://mosquitto.org/man/mosquitto-conf-5.html

I tried useful solution on above because I have a problem on below . However it isn’t useful for me. Is there anyone help me please ?
mqtt broker error: no connection could be made because the target machine actively refused it.

What do I try : I am trying connection and send/receive messeges from Esp8266 to local computer . They use same wireless network. i can send ping my from local pc to esp8266. Also ı can send/receive messages between esp8266 and my PC i use test.mosquitto.org server for MQTT broker .

I can send ping from computer that installed Mosquitto broker to ESP8266 but i can’t subscribe to ESP 8266. Also I can’t publish from ESP8266 to computer that installed Mosquitto broker.
I can communication between ESP8266 and my computer as client by show broker IP test.mosquitto.org.
I tried all things about firewall both windows and router. however i couldn’t connect IoT device and my pc that ı show MQTT broker. I search it on form website. but it is not working.. :(
Can you help me please ? it shown related network permission but i didn’t understand. I chacked network by Netstat but it doesn’t show any communication situation for my clients

@sayurisa

If you’re upgrading from version 1.6 or earlier, you should look at ChangeLog.txt from the installation directory as it has some discussion of breaking changes. You may also want to look at https://mosquitto.org/man/mosquitto-conf-5.html

I assume you’re running either without a config file or with a config file that doesn’t define a listener. As of mosquitto 2.0, this gives the behaviour you’re describing. To listen on addresses other than localhost, you need to have a config file with a «listener» line plus some authentication option. At its most wide-open, you could have
listener 1883
allow_anonymous true
It is, of course, better to restrict the listener to the IP addresses that you need and it’s often better to use some kind of authentication mechanism rather than leaving your server wide open.
If you’re upgrading from version 1.6 or earlier, you should look at ChangeLog.txt from the installation directory as it has some discussion of breaking changes. You may also want to look at https://mosquitto.org/man/mosquitto-conf-5.html

I tried useful solution on above because I have a problem on below . However it isn’t useful for me. Is there anyone help me please ?
mqtt broker error: no connection could be made because the target machine actively refused it.

What do I try : I am trying connection and send/receive messeges from Esp8266 to local computer . They use same wireless network. i can send ping my from local pc to esp8266. Also ı can send/receive messages between esp8266 and my PC i use test.mosquitto.org server for MQTT broker .

I can send ping from computer that installed Mosquitto broker to ESP8266 but i can’t subscribe to ESP 8266. Also I can’t publish from ESP8266 to computer that installed Mosquitto broker.
I can communication between ESP8266 and my computer as client by show broker IP test.mosquitto.org.
I tried all things about firewall both windows and router. however i couldn’t connect IoT device and my pc that ı show MQTT broker. I search it on form website. but it is not working.. :(
Can you help me please ? it shown related network permission but i didn’t understand. I chacked network by Netstat but it doesn’t show any communication situation for my clients

Create a new file config named test.conf with 2 lines:
listener 1883
allow_anonymous true

on Window: mosquitto -v -c test.conf
on Rasp: mosquitto -v -c path of test.conf

@MelisaNS

I assume you’re running either without a config file or with a config file that doesn’t define a listener. As of mosquitto 2.0, this gives the behaviour you’re describing. To listen on addresses other than localhost, you need to have a config file with a «listener» line plus some authentication option. At its most wide-open, you could have

listener 1883 allow_anonymous true

It is, of course, better to restrict the listener to the IP addresses that you need and it’s often better to use some kind of authentication mechanism rather than leaving your server wide open.

If you’re upgrading from version 1.6 or earlier, you should look at ChangeLog.txt from the installation directory as it has some discussion of breaking changes. You may also want to look at https://mosquitto.org/man/mosquitto-conf-5.html

thank you so much, it help me to solve my problem

@electronic4706

thank you very much Mr./Mrs.
I solved the problem.

On Mon, Oct 4, 2021 at 7:23 AM MelisaNS ***@***.***> wrote:
I assume you’re running either without a config file or with a config file
that doesn’t define a listener. As of mosquitto 2.0, this gives the
behaviour you’re describing. To listen on addresses other than localhost,
you need to have a config file with a «listener» line plus some
authentication option. At its most wide-open, you could have

listener 1883 allow_anonymous true

It is, of course, better to restrict the listener to the IP addresses that
you need and it’s often better to use some kind of authentication mechanism
rather than leaving your server wide open.

If you’re upgrading from version 1.6 or earlier, you should look at
ChangeLog.txt from the installation directory as it has some discussion of
breaking changes. You may also want to look at
https://mosquitto.org/man/mosquitto-conf-5.html

thank you so much, it help me to solve my problem


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#1985 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ATUFFA5IOUVM7BIFOUWG5W3UFET3LANCNFSM4VNV2IVA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.

@kas-dan

Solved for me too. I was receiving rc=-2 messages :

@rmdh68

this works great, thank you very much.
Is there a possibility to save these entries? Otherwise I would have to call the «test.conf» file in the console every time before I can connect to the broker.

@rqxrqx

How can I restrict the listener to a IP addresses?
How can I restrict access to a user with password?

@rhhollin

I have the same issue as many who posted here, trying to connect to the mosquitto mqtt broker running on a Windows 10 PC from an ESP32 on the same wireless subnet, which constantly generates an rc = -2 error. I tried the test.conf approach suggested by sayurisa above, but when I run the the mosquitto -v -c test.conf command, I get an error that says «Error: Only one usage of each socket address (protocol/network address/port) is normally permitted.» The ESP32 is disconnected and the Arduino IDE program is not running. There is no other program running that is attempting to access the mqtt broker. I do have a node-red program set to use port 1883 as well, but it is not active when this error is received. Any assistance on what to try next is appreciated !!

@hlzhang

Well done! No clue in the example config on dockerhub.

persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log

An excellent way to waste others time.

@ksechong

Hi, thanks a lot on this topic and almost solved my windows mosquitto problem.

listener 1883
allow_anonymous true

Almost, means that this will not work if I am running mosquitto on a command prompt.
it works if mosquitto is running as a service.

So uninstall and re-install with the ‘service’ checked and edit the config file. And this works perfectly as a service :)
Probably its my windows user’s permission is too low that is causing the problem.

@github-actions
github-actions
bot

locked as resolved and limited conversation to collaborators

Oct 23, 2022

Здравствуйте, уважаемые.
Собираюсь в

будущем

уже наступившем году строить дом, естественно задумался об автоматизации, Набрёл на «облачные» выключателипатроныреле китайской конторы Sonoff после чего выяснилась их «начинка», а дальше путь привёл на ваш форум и теперь я готовлюсь «вступать в ряды» ESP-шников, не в первые конечно, но надеюсь осилю сделать какие то несложные вещи. Форум изучаю, китайские модули и адаптеры USB-TTL вкупе с проводочками и прочей мелочёвкой уже едут. Скилл пайки имеется, образование профильное радиоэлектронное, так что я думаю вникнуть смогу, надо только

освежить

отыскать в голове позабытое за давностью лет и за непрофильной работой.

Начну с самого простого — перепрошью выключатель Sonoff, отвяжу его от китайского облака и буду «ковырять» на предмет чего бы из него сделать ещё, наверняка как минимум можно прикрутить датчик температурывлажности, превратив выключатель в мини-метеостанцию.

А покамест детальки в пути — самое время заняться службами «обеспечения».
Имея в наличии рабочий Web-сервер на CentOS7 + VestaCP провёл так сказать «удачный эксперимент» с комариком, результатами которого хочу поделиться.
Думаю этот небольшой опыт кому то да пригодится

небольшое уточнение: в линуксах опыт минимальный

вооружаемся WinSCP (удобно ходить по каталогам и вносить правки в текстовые файлы встроенным редактором) + PuTTY и действуем

1. подключаем mosquitto репозиторий

Код:

cd /etc/yum.repos.d
wget http://download.opensuse.org/repositories/home:/oojah:/mqtt/CentOS_CentOS-7/home:oojah:mqtt.repo
yum -y update

2. Установка Mosquitto

Код:

yum -y install mosquitto
yum -y install mosquitto-clients

3. добавляем комарика в автозагрузку

Код:

systemctl enable mosquitto.service

при этом centos ругнётся мол москитто не является native серсивом, и сделает как нужно:

mosquitto.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig mosquitto on

т.е. ЦентОСь нам подсказала (да ещё и сама по-правильному сделала) что правильная команда на включение автозапуска москитты —

Код:

/sbin/chkconfig mosquitto on

проверять не стал, поверил на слово :)

4. настраиваем конфигконфиги
файл /etc/mosquitto/mosquitto.conf переносим в /etc/mosquitto/conf.d и переименовываем например в main.conf
открываем main.conf двойным кликом и вносим в него следующее содержимое:

Код:

# Place your local configuration in /etc/mosquitto/conf.d/

# =================================================================
# General configuration
# =================================================================

pid_file /var/run/mosquitto.pid

# =================================================================
# Default listener
# =================================================================

#bind_address 1.2.3.4     #если надо привязываем сервис к ip или domain.name
#port 1883      #по умолчанию 1883 порт, можно задать другой

# =================================================================
# Persistence
# =================================================================

persistence true
persistence_file mosquitto.db
persistence_location /etc/mosquitto/

# =================================================================
# Logging
# =================================================================

log_dest syslog
log_dest file /var/log/mosquitto/mosquitto.log
log_facility 5
log_type debug
log_type error
log_type warning
log_type notice
log_type information

# =================================================================
# Default authentication and topic access control
# =================================================================

password_file /etc/mosquitto/users.list
acl_file /etc/mosquitto/mosquitto.acl

файл /etc/mosquitto/mosquitto.conf.example переименовываем в /etc/mosquitto/mosquitto.conf (это полноценный конфиг с пояснениями для каждого параметра)
дважды кликая (WinSCP) по переименнованному полноценному конфигу /etc/mosquitto/mosquitto.conf он открывается строенным текстовым редактором
вносим единственную правку — в секцию External config files добавляем include_dir /etc/mosquitto/conf.d
сие действо говорит сервису подгружать дополнительные конфиги из указанной папки (в нашем случае это main.conf )

на мой неискушенный взгляд так просто удобно — «полноценны» конфиг существует в девственном виде (за исключением лишь строки указывающей откуда подгружать дополнительные конфиги) и используется для изучения комментариев к нужным опциям, нужные опции вносятся в конфигконфиги находящиеся в папке /etc/mosquitto/conf.d, например в файле main.conf можно сделать основные настройки сервиса, а для каждого бриджа с внешними сервисами создать отдельные конфиги в этой же папочке и с соответствующими названиями
«основной» конфиг полон комментариев и потому его листать туда-сюда в поисках нужной строки очень неудобно, а так открыл «нужный» конфиг и всё сразу перед глазами

5. логиныпаролидоступ

создаём файл /etc/mosquitto/mosquitto.acl
и сразу настраиваем нужный доступ по нужным пользователям (их ведь можно «придумать» заранее), для начала даём доступ пользователю test доступ ко всем топикам
сдержимое:

создаём пустой файл /etc/mosquitto/users.list
и сразу создаём пользователяпользователей
синтаксис очень простой:

Код:

mosquitto_passwd /etc/mosquitto/users.list test

попросит ввести и подтвердить пароль, в только что созданный файл users.list добавится пользователь test
2017-01-18_21-14-07.png

6. старт сервиса и проверка

стартуем сервис:

Код:

systemctl start mosquitto

проверим стартовал ли:

Код:

systemctl status mosquitto

2017-01-18_16-11-00.png

Видим что то похожее на » Active: active (running) since ….» и пары «SUCCESS» — хорошо, сервис стартовал

в логе /var/log/mosquitto/mosquitto.log должно быть «mosquitto version 1.4.10 (build date 2016-12-05 08:26:01+0000) starting»

это означает что всё получилось

проверяем работу подключившись mqtt-spy
2017-01-18_16-08-37.png

используемые материалы:
ESP8266 подключаемся к OpenWRT+Mosquitto+mqttwarn и передаем данные на ThingSpeak, EMAIL, Android, iOS, Twitter, CloudMQTT в 100 строчек кода в Arduino IDE – esp8266
Installing Mosquitto Under CentOS 7
Добавлении сервиса в автозагрузку (CentOS 6/7)
Downloads | Mosquitto

Для чего нужен MQTT?

Если на примере, то предположим, что у вас есть устройство, которое считывает температуру в комнате. И вы хотите передавать данные с этого контроллера к себе на сервер, чтобы потом можно было удаленно проверять температуру. Для этого как раз идеально подойдет протокол MQTT.

Как работает MQTT?

У Mqtt есть понятие сервер или брокер, это главный объект, который получает и передает данные дальше. А все остальные, к примеру устройство которое считывает температуру и сервер, на который вы хотите эту температуру сохранять, это клиенты.

Клиент с температурой будет отправлять данные, брокер MQTT будет их ловить и передавать клиенту серверу, который будет их получать.

Все это в рамках локальной сети!

Как установить сервер MQTT?

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

Как запустить брокер MQTT?

Для того, чтобы запустить брокер, запустите консоль (На Windows это Win+R, пишем cmd и нажимаем Enter).

После того, как открылась консоль, переходим в консоле в директорию, где вы установили Mosquitto. Если вы не знаете как пользоваться командной строкой, то вот небольшие подсказки:

  • Перейти (к примеру) в папку Games — cd Games
  • Вернуться обратно cd ..
  • Поменять раздел диска D: или C:
  • Посмотреть содержимое папки dir

Этого должно хватить, чтобы добраться до нужного раздела. После того как вы зашли в раздел mosquitto, напишите:


mosquitto.exe -v

Если вы все правильно сделали, то увидите следующее:

Теперь у вас запущен брокер MQTT. Успехов!

Понравилась статья? Поделить с друзьями:
  • Не запускается служба dns клиент windows 10
  • Не запускается служба dhcp ошибка 5 отказано в доступе windows 7
  • Не запускается скринсейвер на windows 10
  • Не запускается скетчап на windows 10
  • Не запускается скайрим на windows 10 серый экран