HAProxy स्वास्थ्य जांच: httpchk का उपयोग करें और निरीक्षण करें?


10

मैं निम्नलिखित बैकएंड कॉन्फ़िगरेशन के साथ HAProxy 1.4.18 का उपयोग कर रहा हूं

backend staging
  option httpchk HEAD /check.txt HTTP/1.0
  http-check disable-on-404
  default-server error-limit 1 on-error mark-down
  server staging01 x.x.x.x:80 check observe layer7
  server staging02 x.x.x.x:80 check observe layer7

सर्वर अपाचे / यात्री पर कई एप्लिकेशन चला रहे हैं।

Httpchk और विकलांग-पर -404 का संयोजन सुशोभित शटडाउन और सर्वर से एलबी को काफी आसानी से हटाने की अनुमति देता है जबकि अभी भी सीधे (परीक्षण के लिए) का उपयोग करने में सक्षम है।

जब कोई एप्लिकेशन काम नहीं कर रहा हो तो मैं सर्वर को डिसेबल करने के लिए ऑब्जर्वेशन सेटअप करने की कोशिश कर रहा हूं। मैंने स्टेजिंग 02 पर एप्लिकेशन कॉन्फ़िगरेशन को तोड़ दिया है, इसलिए यह हमेशा एक 500 लौटाता है। इसे पहले 500 के बाद सही ढंग से चिह्नित किया गया है, लेकिन फिर अगले httpchk पर UP को चिह्नित किया गया है।

यहाँ लॉग फ़ाइल है:

Server staging/staging02 is DOWN, reason: Health analyze, info: "Detected 1 consecutive errors, last one was: Wrong http response". 1 active and 1 backup servers left. 2 sessions active, 0 requeued, 0 remaining in queue.
Server staging/staging02 is DOWN, reason: Health analyze, info: "Detected 1 consecutive errors, last one was: Wrong http response". 1 active and 1 backup servers left. 1 sessions active, 0 requeued, 0 remaining in queue.
Server staging/staging02 is UP, reason: Layer7 check passed, code: 200, info: "OK", check duration: 0ms. 2 active and 1 backup servers online. 0 sessions requeued, 0 total in queue.

क्या उन दो चेक को मिलाने का कोई तरीका है?


बस यह निश्चित होना चाहिए कि HAProxy निश्चित रूप से समस्या है, क्या आप अपने बैकएंड अपाचे सर्वर से तीन मिलान लॉग लाइनों को ढूंढ सकते हैं और उन्हें अपने प्रश्न में जोड़ सकते हैं?
लदाददादा Lad

अपाचे सर्वर में से एक को जानबूझकर गलत तरीके से बनाया गया है ताकि उस पर सभी एप्लिकेशन 500 त्रुटि कोड लौटा दें। हालाँकि /check.txt हमेशा काम करता है जब तक कि मैं फ़ाइल को नहीं हटाता। मैं चाहता हूं कि अपाचे सर्वर को निष्क्रिय कर दिया जाए, अगर यह 500 त्रुटि देता है, भले ही चेकटेक्स्ट फ़ाइल अभी भी है।
Ouranos

जवाबों:


4

भेद अब मैं समझता हूँ कि /check.txt है करता है वास्तव में एक 200 प्रतिक्रिया लेकिन आवेदन करने के लिए सभी अनुरोधों को लौट लौट एक 500 HAProxy 500s प्रॉक्सी अनुरोध से वापस आ रहा देखता है और पूल से बाहर सर्वर लेता है, लेकिन फिर अपनी ही शुरू की चेक करें, 200 प्राप्त करता है और सर्वर को पूल में वापस रखता है।

समाधान में से एक करना होगा:

  1. अपाचे को कॉन्फ़िगर करें, बजाय एप्लिकेशन के, ताकि प्रत्येक अनुरोध 500 प्रतिसाद, यहां तक ​​कि स्थिर फ़ाइल लौटाए /check.txt
  2. /check.txtएक रूबी ऐप में बदलें जिसमें उपयुक्त होने पर 200 और 500 प्रतिक्रिया के बीच चयन करने के लिए सिर्फ पर्याप्त तर्क हो।
  3. interमान को 3600 जैसी किसी हास्यास्पद चीज़ पर सेट करें । यह आपको अपना परीक्षण करने के लिए एक घंटे का समय देना चाहिए (या यदि सर्वर अपने आप नीचे चला गया है) समस्या का पता लगाएं और इसे वापस लाएं।
  4. सेट inter60 जैसे छोटे कुछ करने के लिए मूल्य लेकिन सेट rise60 की तरह अधिक कुछ करने के लिए मूल्य यह भी पहले सर्वर पूल के लिए वापस जोड़ा गया है आप एक घंटे देना होगा। (ध्यान दें, इन दोनों को अंतिम रूप से सूचीबद्ध किया गया है क्योंकि वे शायद बहुत बुरे विचार हैं।)

हां यही हो रहा है। मुझे लगता है कि मुझे /check.txtएक आवेदन से httpchk से छुटकारा पाना होगा । check.txtजल्दी और शान से सभी HAProxy से एक सर्वर (एचए सेटअप में केवल एक सक्रिय उनमें से 3,) को हटाने के लिए फ़ाइल काम था। यह भी लगता है कि disable serverपुनः लोड के बीच नहीं रहता है।
Ouranos
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.