2012-08-28 10 views
30

पर पर्यवेक्षक का उपयोग करने का क्या फायदा है हमारे पास एक कस्टम सेटअप है जिसमें कई डिमन्स (वेब ​​ऐप्स + पृष्ठभूमि कार्य) चल रहे हैं। मैं एक सेवा का उपयोग करने की तलाश में हूं जो हमें उन डिमों की निगरानी करने में मदद करता है और उन्हें संसाधन पुनर्विक्रय स्तर से अधिक होने पर पुनरारंभ करता है।मॉनिट

मैं किसी अन्य पर बेहतर होने पर किसी अंतर्दृष्टि की सराहना करता हूं। जैसा कि मैं समझता हूं कि मॉनीट एक नई प्रक्रिया को स्पिन करता है जबकि पर्यवेक्षक एक उप प्रक्रिया शुरू करता है। इस दृष्टिकोण के पेशेवरों और विपक्ष क्या हैं?

मैं भी मॉनीट या पर्यवेक्षक की निगरानी करने के लिए अपस्टार्ट का उपयोग कर रहा हूं। कैपिस्ट्रानो का उपयोग करके वेबएप परिनियोजन किया जाएगा।

धन्यवाद

उत्तर

28

आप अतिरिक्त संसाधनों आप monit के लिए समझौता करना चाहिए नजर रखने के लिए चाहते हैं। यह जांचने के अलावा कि कोई प्रक्रिया चल रही है (उपलब्धता), मॉनीट संसाधन उपयोग (प्रदर्शन, क्षमता उपयोग), लोड स्तर और यहां तक ​​कि बुनियादी सुरक्षा जांच (बीआईएनरी फ़ाइल, कॉन्फ़िगरेशन फ़ाइल, आदि का md5sum) के कुछ चेक भी कर सकता है। इसमें एक नियम-आधारित कॉन्फ़िगरेशन है जिसे समझना काफी आसान है। इसके अलावा कॉन्फ़िगरेशन का उपयोग करने के लिए बहुत सारे तैयार हैं: http://mmonit.com/wiki/Monit/ConfigurationExamples

मोनीट को पीआईडी ​​फाइलें बनाने की प्रक्रिया की आवश्यकता होती है, जो एक दोष हो सकती है, क्योंकि यदि कोई प्रक्रिया पिड फ़ाइल नहीं बनाती है तो आपको चार रैपर बनाना होगा। http://mmonit.com/wiki/Monit/FAQ#pidfile

दूसरी तरफ सुपरवाइजर एक प्रक्रिया के लिए अधिक बाध्य है, यह इसे स्वयं से उत्पन्न करता है। यह किसी संसाधन आधारित चेक को मॉनीट के रूप में नहीं बना सकता है। इसमें एक अच्छा सीएलआई servicectl और एक वेब जीयूआई है।

+1

ऐसा रैपर बनाना वास्तव में एक समस्या नहीं है - यदि आप एक निगरानी सॉफ्टवेयर चला रहे हैं, तो आम तौर पर आपके फ़ाइल सिस्टम पर कुछ नियंत्रण होता है। और यह केवल एक छोटी सी लिपि बनाने के लिए लेता है। अच्छी व्याख्या के लिए +1। –

+3

@ एक्सवियर असहमत, एक रैपर स्क्रिप्ट अभी तक एसपीओफ़ को परेशान कर रही है और हर डेमॉन को निश्चित रूप से लपेटा नहीं जा सकता है, उदाहरण के लिए – Darek

+2

@ दारावाहुस्तिदी के लिए कुछ जावा चीजों के बारे में सोचें, आपके पास एक वैध बिंदु है, लेकिन पर्यवेक्षक के साथ यह दूसरी तरफ है: कुछ कार्यक्रम जैसे deemonize करने के लिए, जबकि पर्यवेक्षक को सब कुछ अग्रभूमि में रहने की आवश्यकता है। हालांकि, मोनिट के लिए एक रैपर लिखना बहुत अधिक आगे लगता है। http://supervisord.org/subprocess.html#nondaemonizing-of-subprocesses http://www.mmonit.com/wiki/Monit/FAQ#pidfile – Amir

29

मैंने monit का उपयोग नहीं किया है लेकिन पर्यवेक्षकों के साथ कुछ महत्वपूर्ण त्रुटियां हैं।

  1. कार्यक्रम अग्रभूमि

इसका मतलब है आप बस शुरू /etc/init.d/apache2 पर अमल नहीं कर सकते में चलाने चाहिए। ज्यादातर बार आप केवल एक लाइनर लिख सकते हैं उदा। "स्रोत/आदि/apache2/envvars & & exec/usr/sbin/apache2 -DFOREGROUND" लेकिन कभी-कभी आपको अपनी खुद की रैपर स्क्रिप्ट की आवश्यकता होती है। रैपर स्क्रिप्ट के साथ समस्या यह है कि आप दो प्रक्रियाओं, माता-पिता और बच्चे के साथ समाप्त होते हैं। अगले दोष देखें ...

  1. supervisord बच्चे प्रबंधित नहीं करता है प्रक्रियाओं

अपने कार्यक्रम बच्चे प्रक्रिया प्रारंभ होता है, अभ्यस्त इस का पता लगाने के supervisord। यदि माता-पिता की प्रक्रिया मर जाती है (या अगर इसे पर्यवेक्षक का उपयोग करके पुनरारंभ किया जाता है) तो बच्चे की प्रक्रिया चलती रहती है लेकिन इनिट प्रक्रिया द्वारा "अपनाया" जाएगा और चलना जारी रहेगा। यह आपके प्रोग्राम के भविष्य के आक्रमणों को चलाने या अतिरिक्त संसाधनों का उपभोग करने से रोक सकता है। हालिया कॉन्फ़िगरेशन विकल्प स्टॉपसग्रुप और किलासग्रुप को इसे ठीक करना है, लेकिन मेरे लिए काम नहीं किया।

  1. supervisord कोई निर्भरता प्रबंधन है - #122

मैं हाल ही में qlproxy के साथ सेटअप व्यंग्य देखते हैं। qlproxyd पहले शुरू करने की जरूरत है अन्यथा स्क्विड विफल हो सकता है। भले ही दोनों कार्यक्रम पर्यवेक्षक के साथ प्रबंधित किए गए थे, यह सुनिश्चित करने का कोई तरीका नहीं था। मुझे स्क्विड के लिए एक स्टार्ट स्क्रिप्ट लिखनी पड़ी जिसने इसे qlproxyd प्रक्रिया के लिए इंतजार किया।जोड़ना शुरू स्क्रिप्ट अनाथ प्रक्रिया समस्या दोष में वर्णित में हुई 2

  1. supervisord आप startretries के बीच देरी को नियंत्रित करने के

कभी-कभी जब एक प्रक्रिया विफल की अनुमति नहीं है शुरू करने के लिए (या क्रैश), ऐसा इसलिए है क्योंकि यह किसी नेटवर्क संसाधन के कारण संभवतः किसी अन्य संसाधन तक पहुंच नहीं प्राप्त कर सकता है। पर्यवेक्षक को कई बार प्रक्रिया को पुनरारंभ करने के लिए सेट किया जा सकता है। पुनरारंभ करने के बीच प्रक्रिया "बैकॉफ" स्थिति में प्रवेश करेगी लेकिन बैकऑफ की अवधि में कोई दस्तावेज या नियंत्रण नहीं है।

अपने रक्षा पर्यवेक्षक में 80% समय की हमारी आवश्यकताओं को पूरा करता है। विन्यास समझदार और दस्तावेज बहुत अच्छा है।

+2

पर अच्छा जवाब देने के लिए मेरी ज़रूरतों के लिए आकर्षण की तरह काम करता था। तो, आप मूल रूप से पर्यवेक्षक की तरह हैं लेकिन यह हमेशा हर नौकरी के लिए सही उपकरण नहीं है। –

+0

मुझे आपका जवाब पसंद है क्योंकि आप निश्चित रूप से अपना अनुभव दिखाते हैं और अपनी आवश्यकताओं के अनुरूप इसे स्थापित करने का प्रयास करते हैं (जो शायद मेरे जैसा ही है)। –