अपटाइम और दिल की धड़ कन की निगरानी
1) आपको इसकी आवश्यकता क्यों है
परिधि और अंदर (किनारे ↔ कोर) पर आउटेज का प्रारंभिक पता लगाना।
उपयोगकर्ता की उपलब्धता की पुष्टि (न केवल "फली जीवित हैं")।
एसएलए/एसएलओ संविदात्मक रिपोर्टिंग और कानूनी दायित्व।
दिल की धड़ कन के माध्यम से पृष्ठभूमि प्रक्रियाओं (क्रोन, ईटीएल, भुगतान चोट) की निगरानी।
कार्यप्रणाली: गोल्डन सिग्नल (विलंबता/यातायात/त्रुटियां/संतृप्ति), RED, SLO से लिंक और गलत बजट।
2) चेक के प्रकार (सिंथेटिक्स)
आईसीएमपी: बुनियादी नेटवर्किंग/आईपी उपलब्धता।
TCP: पोर्ट जिंदा/हैंडशेक है (जैसे। 443/5432).
टीएलएस: प्रमाणपत्रों की वैधता/शब्द/श्रृंखला।
HTTP (S): प्रतिक्रिया कोड, विलंबता, हेडर, शरीर में कुंजी सब्सट्रिंग।
DNS: रिज़ॉल्यूशन, TTL, NXDOMAIN/SERVFAIL।
हेडलेस ब्राउज़र (उपयोक्ता पथ): लॉगइन → क्रिया → लॉगआउट।
कस्टम जांच: सैंडबॉक्स पीएसपी में भुगतान प्राधिकरण, आंतरिक व्यापार सिंथेटिक्स (जमा सिमुलेशन)।
युक्तियाँ: किनारे और निजी समापन बिंदु (VPC/K8s के अंदर से) दोनों अलग-अलग जोखिम वाले डोमेन हैं।
3) अपटाइम मॉनिटरिंग आर्किटेक्चर
क्षेत्र द्वारा परीक्षण एजेंट (न्यूनतम 3 भू-बिंदु)।
HTTP/TCP/TLS/DNS के लिए ब्लैकबॉक्स निर्यातक।
पथ द्वारा सिंथेटिक्स (अनुक्रमिक चरण) अलग से; स्टोर स्क्रिप्ट
Prometheus/Mimir/Thanos: मैट्रिक्स, SLO/अलर्ट नियम एकत्र करना।
Alertmanager/Pager: रूटिंग P1/P2, एस्केलेशन।
स्थिति पृष्ठ: व्यवसाय/ग्राहकों के लिए पारदर्शी अद्यतन।
लॉग/ट्रेस: 'ट्रेस _ आईडी '/सहसंबंध द्वारा ड्रिलडाउन।
4) स्वास्थ्य-समापन बिंदु: डिजाइन
/ healthz (livensy) - "जीवित प्रक्रिया है।"
/ readyz (तत्परता) - "यातायात प्राप्त करने के लिए तैयार" (थ्रेसहोल्ड के साथ निर्भरता)।
/ startupz - "प्रारंभिक"।
/ जाँच - उन्नत व्यवसाय स्वास्थ्य (टाइमआउट और सर्किट-ब्रेकर के साथ आसान डेटाबेस/कैश जांच)।
शब्दार्थ स्वास्थ्य: कोड 200 केवल तभी जब महत्वपूर्ण निर्भरता कार्या → 503 का क्षरण।
नियम: टाइमआउट ≤ 2-3 एस, सीमित उप-चेक, प्रतिक्रियाओं में कोई पीआईआई, कैश भारी भागों में नहीं।
5) नौकरी और श्रमिकों के लिए दिल की धड़ कन
डेड मैन का स्विच मॉडल: यदि टिक समय पर नहीं आया, तो अलर्ट करें।
उपयोग: क्रोन/ईटीएल/चालान नौकरियां, ऑफ-चेन भुगतान जांच, पृष्ठभूमि श्रमिक।
तरीके:- पुश-हार्टबीट HTTP: काम जब समाप्त हो जाता है 'POST/दिल की धड़ कन/< नौकरी>' करता है।
- मेट्रिक्स-पुल: 'लास्ट _ सक्सेस _ टाइमस्टैम्प' को उजागर करें और "एन मिनट से पुराने" द्वारा सतर्क करें।
- वॉचडॉग: एजेंट से निरंतर संकेत; लापता - अलर्ट "मॉनिटरिंग ब्रेक"।
6) कॉन्फ़िगरेशन उदाहरण
6. 1 ब्लैकबॉक्स-निर्यातक (HTTP + TLS + DNS)
yaml modules:
http_2xx:
prober: http http:
method: GET preferred_ip_protocol: "ip4"
fail_if_not_ssl: true valid_http_versions: ["HTTP/1. 1","HTTP/2"]
tls_config:
insecure_skip_verify: false headers:
User-Agent: "uptime-probe"
body: ""
ip_protocol_fallback: false
tls_cert:
prober: tcp tcp:
query_response: []
tls: true tls_config:
insecure_skip_verify: false
dns:
prober: dns dns:
query_name: "api. example. com"
valid_rcodes: ["NOERROR"]
preferred_ip_protocol: "ip4"
6. 2 प्रोमेथियस: लक्ष्य और जैब्स
yaml scrape_configs:
- job_name: 'blackbox-http'
metrics_path: /probe params:
module: [http_2xx]
static_configs:
- targets:
- https://api. example. com/healthz
- https://pay. example. com/readyz relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- target_label: __address__
replacement: blackbox-exporter:9115
- source_labels: [__param_target]
target_label: instance
6. 3 दिल की धड़ कन नौकरी मेट्रिक्स (प्रोमेथियस निर्यातक)
मीट्रिक को उजागर करें:
job_last_success_timestamp_seconds{job="settlement"} 1. 730000e+09
अलर्ट:
promql
(time() - job_last_success_timestamp_seconds{job="settlement"}) > 900
6. 4 वॉचडॉग (डेड मैन का स्विच)
Alertmanager में, 'वॉचडॉग' (हमेशा फायरिंग) के लिए मार्ग सक्षम करें - यदि अलर्ट नहीं आता है, तो निगरानी टूट जाती है।
7) अपटाइम के लिए PromQL उदाहरण
HTTP उपलब्धता (0/1):promql probe_success{job="blackbox-http"} == 1
नमूना द्वारा p95 विलंबता:
promql histogram_quantile(0. 95, sum by (le, instance) (rate(probe_http_duration_seconds_bucket[5m])))
टीएलएस की अवधि समाप्त होती है <7 दिन:
promql
(min_over_time(probe_ssl_earliest_cert_expiry[5m]) - time()) < 7243600
DNS त्रुटि:
promql rate(probe_dns_rcode{rcode!="NOERROR"}[5m]) > 0
अपटाइम एसएलआई (रोलिंग 28 डी):
promql sum_over_time((probe_success==1)[28d]) / (28246060)
8) अलर्टिंग: थ्रेसहोल्ड और एंटी-शोर
बहु-क्षेत्र कोरम: ट्रिगर अगर ≥2 क्षेत्र एक बूंद देखते हैं।
मल्टी-विंडो: 1-5 मिनट (फास्ट चैनल) + 30-60 मिनट (स्थिर प्रवृत्ति)।
संवेदनशीलता: डिबोउंस/फॉर: फ्लैपिंग के खिलाफ 2-5 मिनट।
सहसंबंध: चमड़े के मैट्रिक्स (किनारे, डीएनएस, डब्ल्यूएएफ, मूल) के साथ सहयोगी अपटाइम अलर्ट।
रखरखाव विंडो: 'रखरखाव = सही' टैग द्वारा अलर्ट को दबाना।
उदाहरण नियम:promql
≥2 regions simultaneously failed sum by (target) (max_over_time (probe _ success = = 0) [3m]))> = 2
9) बहु-क्षेत्र और बहु-विक्रेता जांच
न्यूनतम 3 भौगोलिक (ईयू/एनए/एपीएसी) और विभिन्न एएसएन।
डुप्लिकेट: खुद के नमूने + बाहरी अपटाइम प्रदाता।
IPv4/IPv6, HTTP/2/3, अलग-अलग सीडीएन पॉप और डब्ल्यूएएफ प्रोफाइल।
10) सुरक्षा जांच
WAF/LB पर नमूनों की IP रेंज की अनुमति दें।
स्वास्थ्य समापन बिंदुओं/जांच के लिए दर-सीमा और कैप्चा-बाईपास।
निजी स्वास्थ्य के लिए शीर्षक हस्ताक्षर (एचएमएसी)।
अलग डोमेन: सार्वजनिक नमूने और निजी (/आंतरिक/स्वास्थ्य)।
आंतरिक संस्करण/कॉन्फ़िग को/healthz पर वापस न करें; केवल स्थिति।
11) एसएलओ और अपटाइम रिपोर्टिंग
SLI उपलब्धता: 2xx/3xx HTTP जांच सफलता दर।
एसएलओ उदाहरण: ≥ 99। अधिकांश क्षेत्रों में 28 दिनों में 95%।
गलत बजट: '1 SLO' रिलीज का प्रबंधन करता है।
बर्न-रेट अलर्ट: नमूना विफलताओं के अनुपात के लिए तेज/धीमा चैनल।
12) भुगतान और महत्वपूर्ण नौकरियों के लिए दिल की
नौकरियां "पैसे के आसपास" (हस्तांतरण, रजिस्ट्रियां) - डबल कंट्रोल: दिल की धड़ कन + बिजनेस काउंटर (कितने रिकॉर्ड संसाधित हैं)।
"मौन" (कोई नई घटना> एन मिनट) और अंतराल (वास्तविक समय के पीछे अंतराल) द्वारा अलर्ट।
13) स्थिति पृष्ठ
अलग-अलग घटक (एपीआई, भुगतान, बैकेंड, सीडीएन)।
अलर्ट से स्वचालित अपडेट, कॉम्स भूमिका के माध्यम से मैनुअल टिप्पणियां।
हादसा इतिहास, पोस्टमार्टम लिंक, योजनाबद्ध काम।
14) घटना प्रक्रिया के साथ एकीकरण
कोरम नियमों + अवधि द्वारा अलर्ट एसईवी।
एक घटना कार्ड, युद्ध-कक्ष, आईसी असाइनमेंट का ऑटो-निर्माण।
संचार टेम्पलेट (आंतरिक/बाहरी), यदि आवश्यक हो तो कानूनी पकड़।
सत्यापन के बाद: सिंथेटिक्स ग्रीन ≥ एक्स मिनट "हल"।
15) प्रदर्शन और लागत
नमूना आवृत्ति: महत्वपूर्ण - हर 30-60 एस; द्वितीयक - 1-5 मिनट।
भंडारण: लंबी खिड़कियों के लिए डाउनसैम्पलिंग/रिकॉर्डिंग
बाहरी प्रदाताओं का बजट: उन्नत ब्राउज़र स्क्रिप्ट को अनुसूची में सीमित करें।
16) क्वालिटी चेकलिस्ट
- स्पष्ट शब्दार्थ के साथ/healthz ,/readyz ,/startupz हैं।
- ≥3 क्षेत्रों/ASN, IPv4/IPv6 से नमूने।
- टीएलएस/डीएनएस जांच और अलर्ट T-30/T-7/T-1 दिन।
- सभी महत्वपूर्ण नौकरियों (और व्यापार "चुप्पी") को दिल की धड़ कन।
- मल्टी विंडो + कोरम, कोई फड़फड़ाना नहीं।
- ड्रिलडाउन: लॉग/ट्रैक/डैशबोर्ड के लिए बटन।
- स्थिति पृष्ठ और संचार टेम्पलेट।
- एसएलओ/मैट्रिक्स और मालिकों का प्रलेखन।
17) कार्यान्वयन योजना (3 पुनरावृत्ति)
1. सप्ताह 1: HTTP/TLS/DNS ब्लैकबॉक्स जांच महत्वपूर्ण डोमेन, स्थिति पृष्ठ, मूल अलर्ट द्वारा।
2. सप्ताह 2: बहु-क्षेत्रीयता, कोरम नियम, दिल की धड़ कन शीर्ष नौकरी, वॉचडॉग।
3. सप्ताह 3: हेडलेस स्क्रिप्ट (लॉगिन/डिपॉजिट), एसएलओ रिपोर्टिंग, घटना प्रक्रिया के साथ एकीकरण।
18) मिनी-एफएक्यू
बाहरी नमूने आंतरिक लोगों से बेहतर क्यों हैं?
बाहरी उपयोगकर्ता वास्तविक उपयोगकर्ता पथ (DNS/CDN/WAF) देखते हैं, आंतरिक उपयोगकर्ता मूल स्थिति देखते हैं। हम दोनों की जरूरत है।
क्या मुझे भुगतान किए गए पीएसपी की जांच करने की आवश्यकता है?
हां: सैंडबॉक्स में सिंथेटिक्स और स्टेटस पेज मॉनिटरिंग; गिरावट के मामले में - स्वचालित स्मार्ट-राउटिंग।
शोर कैसे कम करें?
कोरम, मल्टी-विंडो, फॉर-देरी, रखरखाव पर दमन, स्पष्ट एसएलओ थ्रेसहोल्ड और स्वामित्व।
कुल
अपटाइम मॉनिटरिंग केवल पिंग नहीं है। यह एक प्रणाली है: बहु-क्षेत्रीय सिंथेटिक्स + उच्च गुणवत्ता वाले स्वास्थ्य समापन बिंदु + दिल की धड़ कन नौकरी + SLO/अलर्ट + स्थिति पृष्ठ। चेक को मानकीकृत करें, शोर को कम करें, नमूनों की रक्षा करें और घटना प्रक्रिया से सब कुछ जोड़ें - इस तरह आप एमटीटीआर को कम करते हैं और गलत बजट को बचाते हैं।