2012-05-18 14 views
5

मुझे डेमोंटोल्स पर्यवेक्षक को स्क्रिप्ट कैसे करना चाहिए?daemontools के साथ एक वेबसर्वर की निगरानी कैसे करें?

मैंने कुछ प्रक्रियाओं को चलाने के लिए डी जे बर्नस्टिन्स 'डेमोंटोल्स का उपयोग करना शुरू कर दिया है और ठीक काम कर रहा है। लेकिन अब मुझे उन प्रक्रियाओं पर कुछ अतिरिक्त स्थितियों की निगरानी करने की आवश्यकता है और मैं इसे कैसे करना है इस बारे में अच्छी जानकारी प्राप्त करने में विफल रहा हूं।

मेरा परिदृश्य यह है कि मेरे पास एक वेब ऐप (फ़ारो स्मॉलटॉक आभासी मशीनों) के लिए कुछ प्रक्रियाएं चल रही हैं और वे http, प्रत्येक को अपने पोर्ट में लोड करते हैं (जो लोडबेलेंस के लिए है)। मैं किसी भी तरह से यह सत्यापित करने के लिए पिंग करना चाहता हूं कि वे न केवल चल रहे हैं बल्कि http अनुरोधों का जवाब दे रहे हैं। अगर वे 30 से अधिक के अनुरोध के लिए किसी निश्चित तरीके से प्रतिक्रिया नहीं देते हैं तो उन्हें दुर्घटनाग्रस्त माना जाना चाहिए और बस पुनरारंभ किया जाना चाहिए।

क्या यह डेमोंटोल्स के साथ भी संभव है? यदि हां, तो मुझे यह स्क्रिप्ट कैसे लिखनी चाहिए और मुझे इसे कहां रखना चाहिए? या इस पर दस्तावेज कहां है? यदि सेवा उत्तरदायी है

उत्तर

6

सबसे आसान समाधान एक स्क्रिप्ट के साथ एक और डेमोंटोल कार्य बनाना है जो 30 सेकंड तक सोता है और फिर सेवा की उपस्थिति के लिए परीक्षण करता है (उदाहरण के लिए wget या curl का उपयोग करके)। यदि सेवा समय पर प्रतिक्रिया नहीं देती है तो आप सेवा को पुनः प्रारंभ कर सकते हैं (svc -t yourapp) और/या एक अधिसूचना भेजें। नई सेवा के रन-स्क्रिप्ट इस के रूप में सरल दे सकता है:

#!/bin/sh 
sleep 30 
if ! wget --quiet --timeout=5 --delete-after "http://yourapp.com/" ; then 
    svc -t /etc/service/yourapp 
fi 

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

+0

Thanx। लेकिन पर्यवेक्षक में ऐसा करने का कोई तरीका नहीं है? – pauel

+0

हां, मेरे उत्तर का पहला पैराग्राफ देखें। –

+0

हाँ मुझे यह मिला। यह सिर्फ इतना है कि मैंने सोचा कि पर्यवेक्षक जो डिमन चलाता है वह किसी भी तरह से ऐसा कर सकता है। वैसे भी आपका समाधान मुझे बहुत मदद करता है। बहुत धन्यवाद – pauel

3

का पता लगाने के लिए, आपको कर्ल (HTTP और कमांड लाइन के लिए एक सही फिट/शेल स्क्रिप्ट)

curl --connect-timeout 10 http://8.8.8.8 
curl: (28) connect() timed out! 

उपयोग कर सकते हैं और आप की जाँच प्रतिक्रिया है कि तरह है, और अधिक परिष्कृत बातें लिख सकते हैं 200 (ठीक है) आदि

संबंधित मुद्दे