EC2 का उपयोग करते समय आप नागियोस / कैपिस्ट्रानो कॉन्फ़िगर के साथ कैसे रहते हैं?


11

मैं अपने मोबाइल ऐप के लिए Amazon EC2 का उपयोग करता हूं। एक निश्चित समय पर आवेदन के भार के आधार पर, मैं नए उदाहरणों को स्पॉन कर सकता हूं और फिर लागत बचाने के लिए लोड कम होने पर उन्हें नीचे ले जा सकता हूं।

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

यह VPS / डायनामिक इंस्टेंस की अद्भुत दुनिया के साथ कैसे किया जाता है?

जवाबों:


9

हम एक कॉन्फ़िगरेशन प्रबंधन उपकरण (हमारे मामले में बावर्ची) का उपयोग करते हैं जो नोड जानकारी से नागोइस कॉन्फ़िगरेशन लिखता है।


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

3

अपने स्वयं के छोटे सेट php स्क्रिप्ट लिखे जो एक फ़ाइल में nagios कॉन्फ़िगरेशन लिखते हैं। Nagios आसान है क्योंकि इसकी सिर्फ एक पाठ फ़ाइल है, इसलिए आपको प्रत्येक प्रकार के सर्वर के लिए एक टेम्पलेट बनाना होगा। फिर जब सर्वर टेम्पलेट का उपयोग करके एक फ़ाइल जोड़ना शुरू करता है। फ़ाइल में परिवर्तन करने वाला एकमात्र डेटा होस्ट आईपी और नाम है।

अधिक स्थिर सर्वरों के लिए मैंने एक स्क्रिप्ट बनाई जो चलाता है ec2-describe-instancesऔर लौटे प्रत्येक उदाहरण के लिए एक फ़ाइल बनाता है। प्रत्येक उदाहरण को टैग के साथ चिह्नित किया जाता है: उद्देश्य = XXXX इसलिए मुझे पता है कि कौन सा टेम्पलेट लागू करना है।

हमारे ऑटो-स्केलिंग समूहों के लिए हम एक as-put-notification-configurationकमांड का उपयोग करके एक अधिसूचना सेट करते हैं जो एक SQS कतार में एक संदेश भेजता है। Php स्क्रिप्ट को crontab द्वारा निष्पादित किया जाता है। जब स्क्रिप्ट निष्पादित होती है तो यह किसी भी नए सर्वर के लिए कतार की जाँच करता है। जब भी यह एक नया सर्वर पाता है यह एक नई फ़ाइल बनाता है। सर्वर हटा दिए जाने पर भी ऐसा ही होता है। यदि आप पहले से ही इसका उपयोग कर रहे हैं तो संभवतः शेफ या किसी चीज़ का उपयोग करना आसान है, लेकिन यदि आप कुछ दिनों में खान जैसी साधारण php सेवा नहीं लिख सकते हैं।


1

हम ऑप्सव्यू का उपयोग करते हैं , जो अभी तक एक और नागो + डेटाबेस + बाकी-एपी रैपर है। मुझे नहीं पता कि यह सभी के लिए सबसे अच्छा समाधान है (या यहां तक ​​कि हमारे लिए) लेकिन यह हमें नोड से (या अन्य प्रशासनिक नोड) नोड से एक सरल रीस्ट एपीआई के माध्यम से नागोइस सर्वर को गतिशील रूप से कॉन्फ़िगर करने की अनुमति देता है जब यह ऊपर आता है और इसे हटा देता है कॉन्फ़िगरेशन जब यह किया जाता है। मैं ऑप्सव्यू (/ Nagios) सर्वर के कठपुतली मेनिफेस्ट के मॉनिटर के रूप में होस्ट टेम्प्लेट की परिभाषाओं का उपयोग करता हूं और मॉनिटर किए गए मेजबानों को इसके साथ रजिस्टर करना और अपने पपेट मेनिफेस्ट के हिस्से के रूप में सही होस्ट टेम्प्लेट में शामिल होना।

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

मेरा सुझाव है कि फॉरेंसिक उद्देश्यों के लिए आप नोड के कॉन्फ़िगरेशन को पूरी तरह से हटा नहीं सकते हैं जब इसे नीचे ले जाया जाता है, लेकिन इसे संग्रहीत करने के दौरान इसे संग्रहित करने और इसके बारे में एकत्र की गई जानकारी की निगरानी करने का प्रयास करें।


1

तरीकों की जोड़ी।

  • अमेज़ॅन EC2 टेम्प्लेट्स के पूर्व-कॉन्फ़िगर का उपयोग करना।

  • कठपुतली के रूप में कठपुतलियों का उपयोग करना।

  • अपने nagios नेटवर्क और अपने amazon VM के बीच एक वीपीएन सेट करें। तब आपके सभी amazon VM में स्टेटिक्स आईपी होंगे, आप उन पर एक DNS भी सेट कर सकते हैं। हमारे पास अपने सभी अमेज़ॅन उदाहरणों को चलाने और निगरानी करने के लिए एक नागिन है। हम भी एक लोचदार आईपी की जरूरत नहीं है। हम वीपीएन के लिए ओपनवीएनपी का उपयोग करते हैं।

  • बाहरी कमांड को सुनने और उसके अनुसार कॉन्फ़िगरेशन को अपडेट करने वाले नागों का निर्माण करें। आखिरकार मशीनें नागाओं पर स्वयं को फिर से पंजीकृत, अपंजीकृत, निलंबित कर सकती हैं, उन्हें फिर से शुरू कर सकती हैं।


0

इस समस्या के समाधान के लिए मेरे पास चांदी की गोली नहीं है। लेकिन capistrano के लिए capify-ec2 है , capistrano के लिए एक एक्सटेंशन जो अमेज़ॅन टैगिंग क्षमताओं का उपयोग करके सर्वर रोल सूचियों को हल करता है।

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