रास्पबेरी पाई पर मॉस्किटो लॉग सेटिंग्स बदलने के बाद कनेक्शन को मना कर देता है


12

मेरे रास्पबेरी पाई प्राप्त करने के लिए मेरे चल रहे प्रयासों में मैंने अपना सामान बनाने के लिए एक मॉस्किटो एमक्यूटीटी ब्रोकर स्थापित किया। आधार सेटिंग्स में सब कुछ यथोचित रूप से ठीक हो गया।

मैं प्रकाशित आदेश के साथ परीक्षण संदेश पोस्ट कर सकता था और उन्हें सदस्यता आदेश के साथ प्राप्त कर सकता था। तब मैंने लॉग लेवल को तय किया और मच्छरदानी को कॉन्फ़िगर किया। फाइल इस प्रकार है। अनिवार्य रूप से पूरे लॉग सेक्शन वाले संस्करण ने काम किया। दूसरे नहीं है।

मैंने इसे लॉग फ़ाइल के साथ लाइन तक सीमित कर दिया।

$ 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

फ़ाइल मौजूद है और उसके स्वामित्व में है mosquitto:mosquitto, जो उपयोगकर्ता सेवा चलाता है।

लॉगिंग के साथ प्रयास करने पर मुझे मिलने वाला बहुत उपयोगी संदेश निम्नलिखित है:

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

अब तक, मुझे यकीन है कि सेवा एक मौन मौत मर जाती है।

$ 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.

मैं निम्नलिखित मच्छर पैकेज के साथ रास्पियन GNU / Linux 8 (जेसी) चला रहा हूं :

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]

आगे की टिप्पणी अनुरोधित जानकारी:

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 में एकमात्र लॉग फ़ाइल जो संशोधित हो जाती है, वह मेरे sudo से स्थित है।

मैंने क्या तोड़ दिया?


क्या इसमें कुछ लिखा है /var/log/mosquitto/mosquitto.log?
अरोरा ००००

1
@ Aurora0001 कुछ भी नहीं है कि कनेक्शन का प्रयास, कोई से संबंधित
Helmar

क्या ओएस? मच्छर का कौन सा संस्करण?
घनिमा

@Ghanima जानकारी जोड़ा
Helmar

क्या आप इसे पुरानी कॉन्फ़िग फ़ाइल और जाँच में वापस लाने का प्रयास कर सकते हैं? बहुत गूंगा: मच्छरदानी स्थिति लॉग की जाँच करें
bravokeyl

जवाबों:


8

डिबग करने का एक तरीका यह होगा कि आप मच्छर को मैन्युअल रूप से उन्हीं विकल्पों के साथ चलाएं जैसा कि आपका इनिट सिस्टम इस्तेमाल कर रहा है, फिर आउटपुट को देखें। उदाहरण के लिए:

mosquitto -v -c <path to config file>

जोड़ना -vयह सुनिश्चित करेगा कि आपके पास लॉग फ़ाइल सेटिंग्स की परवाह किए बिना, वर्बोज़ लॉगिंग है।


3
इसने मदद की, जाहिर है कि / etc / mosquitto में एक दूसरा mosquitto.conf है, जिसमें मैं /etc/mosquitto/conf.d/ का उपयोग कर रहा था। उस पहले फ़ाइल में पहले से ही मानक लॉग फ़ाइल सेट थी। इस प्रकार एक त्रुटि: डुप्लिकेट "log_dest फ़ाइल" मान। जो सेवा को ठीक से शुरू करने से रोकता है। किसी तरह सामान्य सेवा शुरू करने की दिनचर्या का उपयोग करते समय वह त्रुटि नहीं हुई।
Helmar

6

आर्क लिनक्स (4.4.37-1-ARCH) mosquitto 1.4.10-2और अनुमतियों के साथ मौजूदा लॉगफाइल / पथ जैसे कि मैं इस त्रुटि को पुन: उत्पन्न नहीं कर सकता।

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

यदि लॉगफ़ाइल की अनुमतियाँ भिन्न होती हैं, या यह मौजूद नहीं है और निर्देशिका अनुमति मच्छर को इसे लिखने की अनुमति नहीं देती है, तो ब्रोकर डेमॉन विफल हो जाता है। जो Error: Connection refusedविषयों के प्रकाशन या सदस्यता लेने की ओर जाता है । कम से कम सेवा एक मूक मौत नहीं मरती है, लेकिन यह अच्छी तरह से syslog में घोषणा करता है।

/var/log/mosquittoमच्छर उपयोगकर्ता द्वारा स्वामित्व वाली और लेखन योग्य निर्देशिका के साथ संक्षेप log_dest file [...]में मच्छर के विन्यास में एक लाइन ठीक काम करती है।


6

लॉग डायरेक्टरी / फाइल को उस उपयोगकर्ता या उपयोगकर्ता के स्वामित्व में होना चाहिए, जिसके mosquittoपास आपके पास फ़ाइल और समूह में सेटअप है। मैं दो conf फ़ाइलों के साथ एक के साथ बाहर की कोशिश की log_dest file /var/log/mosquitto/mosquitto.logऔर एक लॉग गंतव्य फ़ाइल के साथ।

मेरे सर्वर पर मॉस्किटो mosquittoउपयोगकर्ता के साथ चल रहा है ।

साथ log_dest file /var/log/mosquitto/mosquitto.logके स्वामित्व वाले rootउपयोगकर्ता सेवा स्थिति त्रुटि के साथ काम नहीं कर रहा। यह शायद आपके लिए भी मामला हो सकता है। service statusLog_dest जोड़ने के बाद जांचें।

मैंने /var/log/mosquittoफ़ोल्डर के स्वामित्व को बदलने की कोशिश की mosquitto

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

फिर सेवा शुरू की। यह अब ठीक काम कर रहा है।


मेरे पास पहले उपयोगकर्ता की फ़ाइल थी, अब मैंने एक समूह भी बनाया और अनुमतियों को बदल दिया जैसा कि सुझाव दिया गया था, लेकिन भाग्य नहीं।
Helmar

@ हेल्मर हम्म! यह अजीब है। आपके द्वारा समूह बदलने के बाद आपने सेवा को पुनरारंभ या शुरू किया था?
bravokeyl

@ हेल्मर क्या आप फिर से जांच कर सकते हैं कि क्या (आपने बनाया है) लॉग डेस्टिनेशन डायरेक्टरी मौजूद है?
bravokeyl

दोनों फ़ाइल और निर्देशिका मौजूद और mosquitto के स्वामित्व में हैं: mosquitto
Helmar
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.