Daixools (djbtools) के लिए यूनिक्स प्रक्रियाओं की निगरानी के लिए वैकल्पिक?


26

मैंने अपने सर्वर पर यूनिक्स सेवाओं की निगरानी के लिए एक सरल और विश्वसनीय तरीका प्रदान करने के लिए Daemontools का उपयोग किया है। यह अच्छी तरह से काम करता है, लेकिन इसके लिए अलग तरीके की सोच की आवश्यकता होती है ( डीजेबी वे ) और कुछ सामान्य शिकायतें हैं:

  • TAI64N आधारित टाइमस्टैम्प
  • स्क्रिप्ट को /etc/init.d (या (/usr/local)/etc/rc.d) के अंतर्गत संग्रहीत नहीं करता है
  • हमेशा Apachectl जैसी स्क्रिप्ट के साथ काम नहीं करता है। कुछ लिपियों को फिर से लिखने की आवश्यकता है।

मुझे याद है कि कुछ इसी तरह के "सुपरवाइजर / वॉचडॉग" डेमोंस लगभग दो साल पहले के कामों में थे, लेकिन कुछ किनारों के आसपास अभी भी कुछ खुरदरे थे।

यदि आपने डेमोंटोसल्स से किसी और चीज़ पर स्विच किया है, तो आपने क्या चुना और क्या यह आपके लिए अच्छा था? क्या RedHat या Ubuntu डिफ़ॉल्ट रूप से किसी भी प्रक्रिया पर्यवेक्षक उपयोगिताओं के साथ आता है?

जवाबों:


16

अगर आप उबंटू का उपयोग कर रहे हैं, तो उनकी नई init प्रक्रिया, upstart , प्रक्रिया पर्यवेक्षण का एक स्तर शामिल है। इसका उपयोग आपके मानक शुरू करने और सेवाओं को रोकने के लिए किया जा सकता है, एक ला SysV init स्क्रिप्ट, और यह भी चल रहे अनुप्रयोगों की निगरानी कर सकता है और यदि वे मर जाते हैं तो उनका सम्मान कर सकते हैं।

आप अपनी आवश्यकताओं के आधार पर एक गरीब आदमी की प्रक्रिया की शुरुआत को इनटैब के माध्यम से लागू कर सकते हैं।

यदि आप मुख्य रूप से किसी प्रक्रिया पर नज़र रखने के लिए कुछ देख रहे हैं, तो यह सुनिश्चित करने के लिए कि यह हमेशा चल रहा है, और फिर इसे फिर से शुरू करें जब यह नहीं हो, तो मुझे पुनः आरंभ करने का सौभाग्य मिला है । दुर्भाग्य से, इसके लिए एकमात्र स्रोत जो मुझे पता है कि डेबियन पैकेज है। हालाँकि, यह एक बहुत छोटा और सरल अनुप्रयोग है, मूल रूप से सिर्फ एक .c और .h फ़ाइल, एक मेक फ़ाइल के साथ। रेड हैट पर डेबियन स्रोत टैरबॉल से इसे संकलित करना तुच्छ है (मैंने अपनी पिछली नौकरी में आरपीएम भी बनाया था)।

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


12

+1 रन के लिए। अधिक सुविधाएँ और डेमोंटूल की तुलना में लचीली, मौजूदा डेमोनटूल तर्कों और विकल्पों के साथ संगत। काफी साफ़।

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


1
+1 यह ध्यान देने योग्य है कि runsvकमांड runitकस्टम नियंत्रणों का समर्थन करता है, ताकि डेमॉन के मूल नियंत्रण बायनेरिज़ के संदर्भ में फिर से शुरू किया जा सके।
पाइक्रॉस

4

खैर, वहाँ रंजीत है । मैं आपको यह नहीं बता सकता कि डेमोंटोसल्स के साथ इसके अंतर और समानताएं क्या हैं, लेकिन बर्नस्टीन-एस्क वेबसाइट द्वारा देखते हुए, मैं कहूंगा कि एक निश्चित बर्नस्टीन प्रभाव है।


2
मेरा वोट रनरेट के लिए है, यह देखते हुए कि आप इसे SysVInit व्यवस्था में छोड़ सकते हैं और इसे काफी पारदर्शी तरीके से /etc/init.d/ <scriptname> पर ले सकते हैं।
एवरी पायने


4

पहले से ही उल्लेख के विकल्प के रूप में , daemonizeऔर libslack पैकेज का डेमॉन कमांड है।daemontools

daemon काफी विन्यास योग्य है और सभी थकाऊ डेमन सामान जैसे कि स्वचालित पुनरारंभ, लॉगिंग या पिडफाइल हैंडलिंग के बारे में परवाह करता है।



3

इसमें libslack का डेमन टूल भी है जो C में लिखा गया है और विभिन्न (यूनिक्स) प्लेटफार्मों के लिए उपलब्ध है।

यह काफी विन्यास योग्य है और सभी थकाऊ डेमॉन सामानों की परवाह करता है जैसे कि स्वचालित पुनरारंभ, लॉगिंग या पिडफाइल हैंडलिंग।


2

उबंटू अपस्टार्ट के साथ आता है - मैं इसके बारे में ज्यादा नहीं जानता लेकिन मुझे पता है कि इसमें "सुपरवाइजर" क्षमताएं हैं। Apple का लॉन्च एक और विकल्प है (विकिपीडिया लेख में एक अच्छा "देखना भी" खंड है जो दूसरों के एक समूह को भी सूचीबद्ध करता है, जिसमें अपस्टार्ट और रनइट शामिल हैं)।

उन सभी के पास अपने अच्छे अंक और अपने स्वयं के विशेष ब्रांड übersuck हैं - जब भी कोई मुझसे "प्रक्रिया पर्यवेक्षक" / "वॉचडॉग" कार्यक्रमों के बारे में पूछता है तो मैं हमेशा एक ही सवाल पूछता हूं: आपको एक की आवश्यकता क्यों है?


-2

इसके लिए कोई लोकप्रिय / समुदाय-सर्वसम्मति के उपकरण नहीं हैं क्योंकि जो भी इस सड़क पर उतरता है उसे अपने मृत अंत का एहसास होता है। यदि आपके लंबे समय तक चलने की प्रक्रियाएं सरल निगरानी के लिए पर्याप्त रूप से अच्छी तरह से विफल हो जाती हैं, तो उनका उपयोग करना बंद कर दें और अपने कोड को किसी ऐसी चीज के अंदर स्थानांतरित करें जो अधिक घटना संचालित होगी।

संपादित करें: जैसा कि क्रिस नीचे बताता है कि कभी-कभी आप पूरी तरह से दंग रह जाते हैं, इस स्थिति में एक * / 1 क्रॉन जॉब जो प्रक्रिया / पिडफाइल की तलाश में है, उसके लापता होने पर एक शुरुआत / पुनरारंभ चलाता है और जिम्मेदार को ईमेल में परिणाम देता है डेवलपर / उत्पाद-प्रबंधक आपकी कमबैक स्थिति है।


3
कहना आसान है करना मुश्किल। ;-) कभी-कभी आपके पास ऐसे एप्लिकेशन होते हैं जिन्हें आप चलाने के लिए मजबूर होते हैं, चाहे वे कितने भी अस्थिर या भद्दे क्यों न हों, और उन्हें चलाने के लिए आप जो कुछ भी कर सकते हैं वह 3am फोन कॉल को कम करने में मदद करेगा। किसी भी तरह से आदर्श नहीं है, लेकिन कभी-कभी यह उतना अच्छा होता है जितना कि यह हो जाता है।
क्रिस्टोफर काशेल

1
यह उत्तर प्रोसेसर पर्यवेक्षकों की दो विशेषताओं को याद करता है: एक एकल इकाई के रूप में प्रक्रियाओं के समूहों का प्रबंधन करने की क्षमता और निर्भरता का प्रबंधन करने की क्षमता। उदाहरण के लिए, आपकी वेब साइट में एक वेब सर्वर, डेटाबेस सर्वर और बाहरी प्रक्रियाओं के रूप में चलने वाले कई वेब अनुप्रयोग शामिल हो सकते हैं। इन प्रक्रियाओं में निर्भरताएं हो सकती हैं - उदाहरण के लिए, डेटाबेस को वेब एप्लिकेशन से पहले होना चाहिए। एक अच्छी प्रक्रिया पर्यवेक्षक आपको एक एकल कमांड के साथ प्रक्रियाओं के इस समूह को शुरू करने और रोकने देगा, और यह सुनिश्चित करेगा कि चीजें सही क्रम में शुरू हों।
लार्क्स

1
एक आदर्श दुनिया में, सब कुछ पूरी तरह से काम करेगा। दुर्भाग्य से यह सिर्फ एक आदर्श दुनिया नहीं है।
मैट

समस्या अक्सर विफल नहीं होती है। समस्या सप्ताह में एक बार विफल हो रही है और तुरंत पुनः आरंभ नहीं की जा रही है । यह वास्तविक उत्तर नहीं है।
dan3

@ChristopherCashell सही रास्ते पर है। एक ऐप के अंदर पर्यवेक्षण आमतौर पर ओवर-इंजीनियरिंग होता है (और यह यूनिक्स दर्शन के नहीं होने के लिए भी होता है।) सॉफ़्टवेयर को हमेशा अपूर्ण माना जा सकता है, चाहे हर दुर्घटना को ठीक करने के लिए कितना भी सक्रिय प्रयास किया जाए। पर्यवेक्षण एक अलग, बाहरी परत है ... एक बीमा पॉलिसी। यह बेहतर है कि प्रोडक्शन सर्विसेज को कोई फर्क न पड़े, भले ही वे "दुर्घटनाग्रस्त न हों," क्योंकि वास्तविकता श% t होती है। मैं एक सेवा पुनरारंभ करना चाहता हूं, अपवाद को लॉग इन करें और सुबह इसे ठीक करें। (सेवा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.