مراقبة وقت التشغيل ونبضات القلب
1) لماذا تحتاجه
الكشف المبكر عن الانقطاعات في المحيط والداخل (الحافة ↔ النواة).
تأكيد توافر المستخدم (ليس فقط «القرون حية»).
الإبلاغ التعاقدي والالتزامات القانونية لجيش تحرير السودان/جيش تحرير السودان.
مراقبة عمليات الخلفية (cron، ETL، كدمات الدفع) عن طريق دقات القلب.
المنهجيات: الإشارات الذهبية (زمن الوصول/حركة المرور/الأخطاء/التشبع)، RED، الارتباط بـ SLO والميزانية الخاطئة.
2) أنواع الفحوصات (المواد التركيبية)
ICMP: basic networking/IP availability.
TCP: الميناء حي/مصافحة (على سبيل المثال 443/5432).
TLS: صلاحية/مدة/سلسلة الشهادات.
HTTP (S): رمز الاستجابة، الكمون، الرؤوس، الركائز الرئيسية في الجسم.
DNS: قرار، TTL، NXDOMAIN/SERVFAIL.
متصفح مقطوع الرأس (مسار المستخدم): تسجيل الدخول → → تسجيل الدخول.
المجسات المخصصة: إذن الدفع في صندوق الرمل PSP، المواد التركيبية الداخلية للأعمال (محاكاة الودائع).
النصائح: تحقق من كل من نقاط النهاية الحافة والخاصة (من داخل VPC/K8s) هي مجالات مخاطر مختلفة.
3) بنية مراقبة وقت التشغيل
وكلاء المحاكمات حسب المنطقة (3 نقاط جغرافية على الأقل).
مصدر Blackbox لـ HTTP/TCP/TLS/DNS.
المواد التركيبية بواسطة المسارات (الخطوات المتتالية) بشكل منفصل ؛ نصوص المتجر.
Prometheus/Mimir/Thanos: جمع المقاييس، SLO/قاعدة التنبيه.
Alertmanager/Pager: P1/P2 التوجيه والتصعيد.
صفحة الحالة: تحديثات شفافة للأعمال/العملاء.
السجلات/الآثار: الحفر بواسطة 'trace _ id '/الارتباط.
4) نقاط النهاية الصحية: التصميم
/ healthz (الحياة) - «هي العملية حية».
/ readyz (الاستعداد) - «جاهز لاستقبال حركة المرور» (التبعيات ذات العتبات).
/ startupz - «بدأ».
/ التحقق - صحة الأعمال المتقدمة (عمليات فحص سهلة لقاعدة البيانات/ذاكرة التخزين المؤقت مع المهلات وقاطع الدوائر).
الصحة الدلالية: رمز 200 فقط عندما تكون التبعيات الحرجة وظيفية ؛ تدهور → 503.
القواعد: المهلة ≤ 2-3، الفحوصات الفرعية المحدودة، لا PII في الردود، تخزين الأجزاء الثقيلة.
5) نبضات القلب للعمل والعاملين
نموذج Dead Man's Switch: إذا لم يصل القراد في الوقت المحدد، فتنبيه.
الاستخدام: وظائف cron/ETL/الفاتورة، شيكات الدفع خارج السلسلة، عمال الخلفية.
- ضربات القلب HTTP: الوظيفة عند الانتهاء تفعل «POST/heartbeat/< job>».
- Metrics-pull: كشف «آخر _ نجاح _ timestamp» والتنبيه بـ «أقدم من N minutes».
- الرقيب: إشارة مستمرة من الوكيل ؛ مفقود - تنبيه «استراحة مراقبة».
6) أمثلة التكوين
6. 1 Blackbox-exporter (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 Watchdog (Dead Man's Switch)
في Alertmanager، قم بتمكين مسار التنبيه «Watchdog» (دائمًا ما يتم إطلاق النار) → إذا لم يأتي التنبيه، يتم كسر المراقبة.
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])))
تنتهي صلاحية TLS أقل من 7 أيام:
promql
(min_over_time(probe_ssl_earliest_cert_expiry[5m]) - time()) < 7243600
أخطاء DNS:
promql rate(probe_dns_rcode{rcode!="NOERROR"}[5m]) > 0
Uptime SLI (rolling 28d):
promql sum_over_time((probe_success==1)[28d]) / (28246060)
8) التنبيه: العتبات ومكافحة الضوضاء
النصاب متعدد المناطق: يتم تشغيله إذا شهدت المناطق ≥2 انخفاضًا.
نافذة متعددة: 1-5 دقائق (قناة سريعة) + 30-60 دقيقة (اتجاه ثابت).
الحساسية: debounce/لمدة: 2-5 دقائق ضد الخفقان.
الارتباط: ربط تنبيه وقت التشغيل بمقاييس الجلد (الحافة، DNS، WAF، الأصل).
نوافذ الصيانة: قمع التنبيهات بعلامات «الصيانة = الحقيقية».
promql
≥2 regions simultaneously failed sum by (target) (max_over_time (probe _ success = = 0) [3m]))> = 2
9) فحوصات متعددة المناطق ومتعددة البائعين
3 مناطق جغرافية دنيا (الاتحاد الأوروبي/NA/APAC) ومختلف ASNs.
مكرر: عينات خاصة + مزود خارجي لوقت التشغيل.
IPv4/IPv6، HTTP/2/3، ومختلف الملوثات العضوية الثابتة CDN وموجزات WAF.
10) الفحوصات الأمنية
السماح لنطاقات IP من العينات على WAF/LB.
حدود المعدل وتجاوز الكابتشا لنقاط/مجسات الصحة.
توقيع العنوان (HMAC) للصحة الخاصة.
المجالات المنفصلة: العينات العامة والخاصة (/الداخلية/الصحية).
لا تعيد الإصدارات/التكوينات الداخلية إلى/healthz ؛ فقط.
11) SLO وتقارير وقت التشغيل
توافر SLI: معدل نجاح مسبار 2xx/3xx HTTP.
مثال SLO: ≥ 99. 95٪ في 28 يومًا في معظم المناطق.
الميزانية الخاطئة: «1 − SLO» → يدير الإصدارات.
تنبيهات معدل الحرق: قناة سريعة/بطيئة لنسبة فشل العينة.
12) نبضات القلب للدفع والوظائف الحرجة
الوظائف «حول المال» (التحويلات، السجلات) - التحكم المزدوج: نبضات القلب + عدادات الأعمال (عدد السجلات التي تتم معالجتها).
تنبيهات عن طريق «الصمت» (لا توجد أحداث جديدة> N minutes) وبتأخير (متأخر عن الوقت الفعلي).
13) صفحات الحالة
مكونات منفصلة (APIs، مدفوعات، خلفيات، CDNs).
تحديثات تلقائية من التنبيهات والتعليقات اليدوية عبر دور Comms.
تاريخ الحادث، وصلات ما بعد الوفاة، والعمل المخطط له.
14) التكامل مع عملية الحادث
تنبيه SEV حسب قواعد النصاب + المدة.
الإنشاء التلقائي لبطاقة الحادث، غرفة الحرب، مهمة IC.
نماذج الاتصالات (الداخلية/الخارجية)، عقد قانوني إذا لزم الأمر.
ما بعد التحقق: المواد التركيبية الخضراء ≥ X دقائق إلى «حل».
15) الأداء والتكلفة
تواتر أخذ العينات: حرج - كل 30-60 ثانية ؛ ثانوي - 1-5 دقائق.
التخزين: تقليل/تسجيل القواعد للنوافذ الطويلة.
ميزانية مقدمي الخدمات الخارجيين: قصر نصوص المتصفح المتقدمة على الجدول الزمني.
16) قائمة مراجعة الجودة
- هناك/healthz ،/readyz ،/startupz مع دلالات واضحة.
- عينات من مناطق ≥3/ASN، IPv4/IPv6.
- فحص وتنبيهات TLS/DNS T-30/T-7/T-1 أيام.
- نبض القلب في جميع الوظائف الحرجة (و «الصمت» التجاري).
- نافذة متعددة + نصاب، لا رفرفة.
- الحفر: أزرار لسجلات/مسارات/لوحات القيادة.
- صفحة الحالة ونماذج الاتصالات.
- توثيق المعايير والمقاييس والمالكين.
17) خطة التنفيذ (3 تكرارات)
1. الأسبوع 1: تحقيقات HTTP/TLS/DNS blackbox حسب المجالات الحرجة، صفحة الحالة، التنبيهات الأساسية.
2. الأسبوع 2: تعدد المناطق، قواعد النصاب، أعلى وظيفة في نبضات القلب، Watchdog.
3. الأسبوع 3: نصوص مقطوعة الرأس (تسجيل الدخول/الإيداع)، تقارير SLO، التكامل مع عملية الحادث.
18) الأسئلة الشائعة المصغرة
لماذا العينات الخارجية أفضل من العينات الداخلية ؟
يرى المستخدمون الخارجيون مسار المستخدم الحقيقي (DNS/CDN/WAF)، ويرى المستخدمون الداخليون حالة المنشأ. نحن بحاجة لكليهما.
هل أحتاج إلى التحقق من PSPs المدفوعة ؟
نعم: المواد التركيبية في صندوق الرمل ورصد صفحة الحالة ؛ في حالة التدهور - التوجيه الذكي التلقائي.
كيف تقلل الضوضاء ؟
النصاب القانوني، متعدد النوافذ، للتأخير، قمع الصيانة، إزالة عتبات SLO والملكية.
المجموع
مراقبة وقت التشغيل ليست فقط ping. هذا نظام: المواد التركيبية متعددة المناطق + نقاط النهاية الصحية عالية الجودة + وظيفة نبضات القلب + SLO/alert + صفحات الحالة. قم بتوحيد الفحوصات وتقليل الضوضاء وحماية العينات وربط كل شيء بعملية الحادث - وبهذه الطريقة تقلل MTTR وتوفر الميزانية الخاطئة.