Raspberry Pi'deki Mosquitto, günlük ayarlarını değiştirdikten sonra bağlantıyı reddediyor


12

Raspberry Pi'mi eşyalarıma kumanda etme çabalarımda bir Mosquitto MQTT brokeri kurdum. Temel ayarlarda her şey gayet iyi gitti.

Yayınlama komutuyla test mesajları gönderebilir ve abone olma komutuyla alabilirim. Sonra günlük seviyesini yükseltmeye karar verdim ve mosquitto.conf dosyasını aşağıdaki gibi değiştirdim. Aslında tüm log bölümünün bulunduğu yorum yapılıyor. Diğeri değil.

Günlük dosyasıyla çizgiye kadar daralttım.

$ diff mosquitto.conf mosquitto.conf.old
408,410c408,410
< #log_dest file /var/log/mosquitto/mosquitto.log
---
> log_dest file /var/log/mosquitto/mosquitto.log

Dosya var ve sahibi mosquitto:mosquitto, hizmeti çalıştıran kullanıcı.

Günlüğe kaydetmeyi denediğimde aldığım çok yararlı mesaj şudur:

mosquitto_pub -h localhost -t thisisme -m 5
Error: Connection refused

Şimdiye kadar, hizmetin sessiz bir ölümle öldüğünden eminim.

$ sudo service mosquitto status
 mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
   Loaded: loaded (/etc/init.d/mosquitto)
   Active: active (exited) since Fri 2017-01-06 11:16:38 CET; 4min 24s ago
  Process: 2222 ExecStop=/etc/init.d/mosquitto stop (code=exited, status=0/SUCCESS)
  Process: 2230 ExecStart=/etc/init.d/mosquitto start (code=exited, status=0/SUCCESS)

Jan 06 11:16:38 T-Pi mosquitto[2230]: Starting network daemon:: mosquitto.
Jan 06 11:16:38 T-Pi systemd[1]: Started LSB: mosquitto MQTT v3.1 message broker.

Koşuyorum Raspbian GNU / Linux 8 (Jessie) aşağıdaki mosquitto paketleri ile:

libmosquitto1/stable,now 1.3.4-2 armhf [installed,automatic]
mosquitto/stable,now 1.3.4-2 armhf [installed]
mosquitto-clients/stable,now 1.3.4-2 armhf [installed]
python-mosquitto/stable,now 1.3.4-2 all [installed]

Daha fazla yorum talep edilen bilgi:

ls -ld /var /var/log /var/log/mosquitto /var/log/mosquitto/mosquitto.log
drwxr-xr-x 11 root      root       4096 Sep 23 06:02 /var
drwxr-xr-x  8 root      root       4096 Jan  6 21:07 /var/log
drwxr-xr-x  2 mosquitto mosquitto  4096 Jan  5 14:36 /var/log/mosquitto
-rw-r--r--  1 mosquitto mosquitto 14233 Jan  6 21:07 /var/log/mosquitto/mosquitto.log

/ Var / log dosyasındaki değiştirilen tek günlük dosyası sudo'mdaki auth.log dosyasıdır.

Ne kırdım?


Yazılan bir şey var mı /var/log/mosquitto/mosquitto.log?
Aurora0001

1
@ Aurora0001 bu bağlantı girişimi ile ilgili hiçbir şey yok, hayır
Helmar

Hangi işletim sistemi? Hangi sivrisinek versiyonu?
Ghanima

@Ghanima bilgileri ekledi
Helmar

Eski yapılandırma dosyasına geri döndürüp deneyebilir misiniz? Çok aptal:
sivrisinek

Yanıtlar:


8

Bunu hata ayıklamanın bir yolu, sivrisinekleri init sisteminizin kullandığı seçeneklerle manuel olarak çalıştırmak, daha sonra çıktıya bakmak olacaktır. Örneğin:

mosquitto -v -c <path to config file>

Ekleme -v, yapılandırma dosyası ayarlarından bağımsız olarak ayrıntılı günlük kaydınızın olmasını sağlar.


3
Bu, /et / mosquitto içinde /etc/mosquitto/conf.d/ içinde kullandığımın bulunduğu ikinci bir mosquitto.conf var. Bu ilk dosyada zaten standart günlük dosyası ayarlanmıştı. Böylece bir Hata: Yinelenen "log_dest dosyası" değeri oluşturulur. bu da hizmetin düzgün bir şekilde başlamasını engelledi. Her nasılsa, normal hizmet başlangıç ​​rutinini kullanırken bu hata ortaya çıkmadı.
Helmar

6

Arch Linux (4.4.37-1-ARCH) ile mosquitto 1.4.10-2ve izinleri ile varolan bir günlük dosyası / yol gibi bu hatayı yeniden oluşturamıyorum.

/var/log/mosquitto $ ls -l
-rw-r--r-- 1 mosquitto root 7832 Jan 5 18:15 mosquitto.log

Bununla birlikte, günlük dosyasının izinleri farklıysa veya yoksa ve dizinlerin izni sivrisinekin kendisine yazmasına izin vermezse, aracı arka plan programının başlatılması başarısız olur. Hangi Error: Connection refusedkonular yayınlama veya abone olma üzerine yol açar . En azından hizmet sessiz bir ölümle ölmüyor, ancak sistem günlüğünde iyi duyuruyor.

Kısacası /var/log/mosquittosivrisinek kullanıcı tarafından sahip olunan ve yazılabilir dizin ile log_dest file [...]sivrisinek yapılandırma bir çizgi gayet iyi çalışıyor.


6

Günlük dizin / dosya edilmelidir olunan tarafından mosquittokullanıcı veya conf dosyası ve gruptaki kurulum var o kullanıcı. Biri dışarı log_dest file /var/log/mosquitto/mosquitto.logve biri günlük hedef dosya ile iki conf dosyaları ile denedim .

Sunucumda Mosquitto mosquittokullanıcıyla çalışıyor .

Sahip log_dest file /var/log/mosquitto/mosquitto.logolunan rootkullanıcı ile servis durumu hatası ile çalışmıyor. Bu muhtemelen sizin için de geçerli olabilir. service statusLog_dest ekledikten sonra kontrol edin .

/var/log/mosquittoKlasörün sahipliğini değiştirmeyi denedim mosquitto.

sudo chown -R mosquitto:mosquitto /var/log/mosquitto

Sonra hizmeti başlattı. Şimdi iyi çalışıyor.


Daha önce kullanıcının kendi dosyası vardı, şimdi de bir grup oluşturdum ve izinleri önerildiği gibi değiştirdim, ama şans yok.
Helmar

@Helmar hmm! bu tuhaf. Grubu değiştirdikten sonra hizmeti yeniden başlattınız veya başlattınız mı?
bravokeyl

@Helmar Günlük hedef dizininin var olup olmadığını (oluşturdunuz) tekrar kontrol edebilir misiniz?
bravokeyl

Hem dosya hem de dizin var ve mosquitto'ya ait: mosquitto
Helmar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.