कई सर्वरों पर मॉनिटर प्रोग्राम की प्रगति


9

हमारे पास तीन सर्वर हैं जो पायथन प्रोग्राम चला रहे हैं जो एक tmuxसत्र के अंदर डेटा विश्लेषण कार्य चला रहे हैं । इस समय हम जिस विधि का उपयोग कर रहे हैं, उनमें से प्रत्येक tmuxसत्र को जोड़ने और कमांड लाइन पर आउटपुट देखने के लिए ssh'ing है ।

यह विधि थकाऊ है, इसलिए हम जो देख रहे हैं वह एक ऐसा समाधान है जो एक ही समय में कई सर्वरों के लिए प्रोग्राम प्रगति (सीएलआई पर आउटपुट) की निगरानी को स्वचालित करता है। हम आदर्श रूप से एक वेब यूआई समाधान चाहेंगे लेकिन एक सीएलआई भी पूरी तरह से उपयुक्त होगा।

पढ़ने के लिए धन्यवाद।


जवाबों:


8

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

स्थिति देखने के लिए सर्वर से कनेक्ट करने के बजाय, एक बेहतर तरीका यह है कि उस जानकारी को बाहर धकेल दिया जाए। यदि आप कस्टम कोड का एक गुच्छा लिखना चाहते हैं, तो आप कई प्रकार की चीजें कर सकते हैं, लेकिन सबसे सरल बात यह है कि शायद एक केंद्रीकृत लॉगिंग सिस्टम (syslog या खुद को ELK, या जो भी हो) के माध्यम से आउटपुट भेजना शुरू कर दें। इस तरह आप एक केंद्रीय स्थान से सब कुछ की निगरानी कर सकते हैं।

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


यह कोई एक बंद चीज नहीं है। मैं निगरानी के स्वचालन में समय लगाने और लॉगिंग को केंद्रीकृत करने के बारे में आपके विचार को पसंद करता हूं। क्या आपके पास ऐसे टूल के लिए कोई सुझाव है जो उपयोग करने के लिए स्वतंत्र हैं और जो प्रोग्राम चलाने वाले ubuntu मेजबानों के साथ अच्छी तरह से काम करता है?
गुआनो

@ मुझे लगता है कि विस्सम ने उन सभी विशिष्ट उपकरणों को कवर किया है जिनका मैं उल्लेख करूंगा, अलग से सेंसु जैसी किसी चीज़ का उपयोग करने से।
Xiong Chiamiov

4

Graylog

चूंकि पहले से ही दो लोगों ने आपको अपनी वर्तमान प्रक्रिया पर पुनर्विचार करने की सलाह दी थी (जो मैं दूसरी बार करता हूं क्योंकि यह आपको किसी बिंदु पर रातों की नींद हराम कर देगा;)), मैं एक अन्य मार्ग पर जाऊंगा और सॉफ्टवेयर के एक विशिष्ट टुकड़े की सिफारिश करूंगा - जो मेरी राय में - सबसे फिट बैठता है अपनी आवश्यकताओं: Graylog

मैंने लॉग एग्रीगेशन और बिजनेस इंटेलिजेंस दोनों के लिए ईएलके स्टैक्स के एक जोड़े को लागू किया और उपयोग किया और अपने वर्तमान नियोक्ता पर अब लगभग दो वर्षों तक ग्रेग्ल / रन बनाए / बनाए रखा। मैं ग्रेग्लॉग की सलाह देता हूं क्योंकि इसमें निम्नलिखित विशेषताएं अंतर्निहित और हैं - मेरी राय में - सेटअप और रखरखाव के लिए थोड़ा आसान:

  • एक वेब-इंटरफ़ेस
  • बहुउपयोगी क्षमताएं
  • सूचना देने वाले

जहां तक ​​मैं आपके परिदृश्य को समझता हूं, ऐसा लगता है जैसे आपको कुछ महत्वपूर्ण घटनाओं पर कार्य करने या सतर्क रहने की आवश्यकता है जो आपके लॉग संदेशों की धारा में दिखाई देते हैं। अगर हम ग्रेगल की विशेषताओं को देखें :

ट्रिगर क्रिया या जब किसी चीज़ पर ध्यान देने की आवश्यकता होती है, जैसे कि असफल लॉगिन प्रयास, अपवाद या प्रदर्शन में गिरावट।

विचार: अपनी टीम को एक ईमेल या सुस्त संदेश भेजें। प्रसंस्करण लोड को संतुलित करने के लिए एक नई मशीन स्पॉन करें। किसी हमले का पता चलने पर अपने फायरवॉल में आईपी को ब्लॉक करें।

ग्रेवलॉग देने के लिए मैं निम्नलिखित दो चरणों की सिफारिश करूंगा:

  • एक समर्पित होस्ट सेट करें, जो आप सभी के लिए उपलब्ध है जो ग्रेग्लोग चलाने के लिए होस्ट करता है (और इसकी निर्भरता MongoDB और ElasticSearch)
  • अपने एप्लिकेशन से ग्रेग्लॉग में लॉग भेजें (संभवतः GELF संदेशों के रूप में )

नोट: इन दो चरणों में सर्वोत्तम प्रथाओं के पृष्ठों और पृष्ठों को भरने की क्षमता है और कम से कम कुछ विचार प्राप्त करना चाहिए। यह उल्लेख नहीं करने के लिए कि ग्रेलाग एक निगरानी समाधान नहीं है और ग्रेग्लॉग को स्वयं एक उचित निगरानी उपकरण (जैसे कि इगिंगा, प्रोमेथियस, नागिओस नाम से कुछ ही नाम) द्वारा निगरानी की जानी चाहिए।


3

मैं @Xiong Chiamiov से सहमत हूं और मैं अधिक स्पष्ट विकल्प देना चाहता हूं। यदि आप चाहते हैं कि CLI की प्रत्येक पंक्ति की निगरानी की जाए, तो मैं सभी आउटपुट को विशिष्ट फ़ाइल और किसी अन्य फ़ाइल में त्रुटि पर पुनर्निर्देशित करने का सुझाव दूंगा , फिर इस दोनों फ़ाइलों को Elasticsearch को भेजने के लिए लॉगस्टैश या फ़ाइलबीट का उपयोग कर सकता हूं, फिर आप इनट्रील के साथ कॉन्फ़िगर कर सकते हैं किबना आपको देवो फ्रेंडली इंटरफेस के साथ रियल्टी में कई होस्ट्स से दृश्य, विश्लेषण, खोज और पूंछ लॉग ईवेंट देने के लिए


1

केंद्रीकृत tmux

जबकि अन्य उत्तर लंबे समय के लिए होशियार और समझदार हैं, मुझे लगता है कि त्वरित हैकी सीएलआई समाधान ध्यान देने योग्य है। tmuxएक सर्वर पर चलाएं जो दूसरों के सभी तक पहुंच सकता है। इसके लिए एक अच्छी जगह एक जंप बॉक्स या कुछ अन्य जगह होगी जो लोग आमतौर पर किसी भी तरह से लॉग इन करते हैं। इस "केंद्रीय" के भीतर tmuxएक अलग फलक में प्रत्येक बॉक्स में ssh और जो भी लॉग फाइल आवश्यक है उसे पूंछ दें। आप उपयोग कर सकते हैं ctrl- b "भीतर एक टैब में अधिक पैन पाने के लिए tmux। अब सभी को चीजों को जांचने के लिए "केंद्रीय" tmuxसत्र में संलग्न करना होगा और वे पूरे क्लस्टर को एक नज़र में देख सकते हैं।

मैंने वेब यूआई समाधानों के निर्माण में बहुत समय बिताया है जो आप की ओर काम कर रहे हैं, लेकिन अगर आपको इसकी आवश्यकता है तो आज एक साथ कुछ हैक करने tmuxसे दिन बच सकता है।

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