GH GambleHub

ניטור תשתיות

ניטור תשתיות

1) מטרות ומסגרת

ניטור תשתיות הוא מערכת של אותות על בריאות, ביצועים וזמינות של פלטפורמה. הוא חייב:
  • הזהרה לפני קריסות המשתמש (גילוי מוקדם).
  • תן אבחנה של הגורם השורשי (מתסמין לגורם).
  • תמיכה ב-SLO גייטינג של שחרורים וגלגולים אוטומטיים.
  • הזן את הניתוח שלאחר התקרית (ראיות כנתונים).

עקרונות תומכים: ניתן לצפות בהם באמצעות עיצוב, פחות רעש - יותר אותות, אוטומציה של תגובות, לוח אחד של אמת.

2) שלישיית יכולת תצפית

TIMESERIES - קצב/דרישה/שגיאה/רוויה (USE/RED)

יומנים: פירוט אירועים עם הקשר; אין סודות/מח "ש.
עקבות: מקרים מבוזרים עם יחסים סיבתיים.

פלוס:
  • פרופיל (CPU/heap/lock/io), eBPF עבור רמת המערכת.
  • אירועים/ביקורת (אירועים K8s, שינויים בהגדרות/סודות).

3) SLI/SLO/SLA - שפה איכותית

SLI: ”זמינות”, ”טעות _ קצב”, ”p95 _ latency”, ”תור _ lag”.

"בקשות מוצלחות ל-99. 9% ב ־ 30 יום". ‏

תקציב שגיאה: סובלנות; משמש לשחרור אוטומטי.

SLO דוגמה (YAML):
yaml service: "api-gateway"
slis:
- name: success_rate query_good: sum(rate(http_requests_total{status!~"5.."}[5m]))
query_total: sum(rate(http_requests_total[5m]))
slo: 99. 9 window: 30d

4) מפת שכבות ניטור

1. מארחים/VM/צמתים: CPU/Load/Stup, RAM/Swap, Disk IOPS/Latency, Filesystem.
2. רשת/LB/DNS: RTT, חבילות/טיפות, גיבוב, SYN/Timeout, גשושיות בריאות.
3. קוברנטס/תזמורת: שרת API, etcd, בקרים, לוחות זמנים; תרמילים/צמתים, ממתינים/מפונים, חונקים, אירועי קובייה.
4. שירותים/מכולות: RED (קצב/שגיאות/משך), מוכנות/לביאה.
5. מסדי נתונים/מטמונים: QPS, מנעול המתנה, ריפוי שכפול, פגיעה בחוצץ, שאילתות איטיות.
6. תורים/אוטובוסים: פיגור צרכני, בקשה/אות מתה, דרך.
7. אחסון/ענן: שגיאות S3/Blob ואיחור, 429/503 מספקים.
8. גבולות היקפיים: WAF/Rate Limits, 4xx/5xx בדרך, CDN.
9. סינתטיים: בדיקת תסריט HTTP (הפקדה/פלט), תעודות TLS/.
10. כלכלה/קיבולת: עלות לכל שירות, ניצול, חדר ראש.

5) Backbox Blackbox

Whitebox: יצואנים/SDKs בתוך שירותים (Prometheus, OpenTelemetry).
בלקבוקס: דגימות חיצוניות מאזורים שונים (זמינות, איחוי, תפוגת TLS).
קומביין: ”תחתום בחוץ” + ”אבחון בפנים”.

דוגמה ל-blackbox _ exporter:
yaml modules:
https_2xx:
prober: http http:
method: GET preferred_ip_protocol: "ip4"

6) קוברנטס: אותות מפתח

Catizerver _ request _ total, etcd _ server _ has _ leader, etcd fsync.
Austust: ”container _ cpu _ cfs _ egrotled _ seconds _ total”, ”node _ bluster”.
כריות: ממתין/מזורז LoopBackOff, OOMKILLED, מחדש.
תוכניות/הגבלות: בקשות נגד הגבלות, תקציב PodGoogle, HPA/VPA.
רשת: Networkly Policy Dips, contrack assession.

”בריאות אשכול”, ”רוויית עומס עבודה”, ”שירותי שליחות עליונים”.

7) DB ותורים

PostGreSQL/MySQL: lag שכפול, deflocks, שאילתה איטית%, נקודת ביקורת I/O.
Redis/Memcased: יחס פגיעה, פינוי, חיבורים נדחים.
Kafka/RabbitMQ: lag צרכני, לא אותר, דרישה, תיווך ISR, שימוש בדיסק.

8) אדום/השתמש במדדים וקורלציות עסקיות

אדום: ”קצב” (RPS), ”שגיאות” (4xx/5xx), ”משך” (p95/p99).
ניצול, רוויה, שגיאות.
להתרועע עם המוצר: הפקדות/תשלומים מצליחים, דגלי הונאה, המרה - אלה הם ”שומרים” לשחרור כנרית.

9) התראה על מבנה

Tier-1 (עמוד): תקריות המשפיעות על SLO (זמינות, 5xx, latency, כשל רכיב קריטי).
Tier-2 קיבולת, גידול שגיאות בלי להשפיע על SLO.
Tier-3 (הודעה): מגמות, יכולת ניבוי, תעודות פקיעה.

חוקי הסלמה: דממה זמן/שכפול דחיסה, סיבובים בכוננות, המשך השמש.

דוגמה לנתיבים מתריעים:
yaml route:
group_by: ["service","severity"]
receiver: "pager"
routes:
- match: { severity: "critical" }
receiver: "pager"
- match: { severity: "warning" }
receiver: "tickets"

10) דוגמאות כלל פרומתאוס

10. 1 שגיאות 5xx עם סף SLO

yaml groups:
- name: api rules:
- alert: HighErrorRate expr:
sum(rate(http_requests_total{status=~"5.."}[5m])) /
sum(rate(http_requests_total[5m])) > 0. 005 for: 10m labels: { severity: "critical", service: "api-gateway" }
annotations:
summary: "5xx > 0. 5% 10m"
runbook: "https://runbooks/api-gateway/5xx"

10. 2 שריפת שגיאה בתקציב (שריפת חלון מרובה)

yaml
- alert: ErrorBudgetBurn expr:
(1 - (
sum(rate(http_requests_total{status!~"5.."}[1m])) /
sum(rate(http_requests_total[1m]))
)) > (1 - 0. 999) 14 for: 5m labels: { severity: "critical", slo: "99. 9" }
annotations: { summary: "Fast burn >14x for 5m" }

10. רווית מערכת 3 (מצערת מעבד)

yaml
- alert: CPUThrottlingHigh expr: rate(container_cpu_cfs_throttled_seconds_total[5m]) > 0. 1 for: 10m labels: { severity: "warning" }
annotations: { summary: "CPU throttling >10%" }

11) יומנים: אוסף, נורמליזציה, שימור

תקן: יומן JSON: "ts'," level "," service "," trace _ id', "user/derant'.
Pipeline: agent (Floent Bit/Vector) # buffer ac index/storage.
עדכון: PII/סודות מיסוך בקצה.
שיעור אחסון מהיר (7-14 ימים), ארכיון קר (30-180 ימים).
סמנטיקה: תקציבי שגיאה/ירידה - ערוצים נפרדים.

12) שבילים ו ־ OpenTelemetry

נקודות קלט של מכשירים (gateway), קריאות kleyent servis, DB/caches/תורים.
קושרים מדדים לאיתור תכונות (מופת) לניווט מהיר.
אספן Otel כשער מרכזי: סינון, דגימה, ייצוא לקצוות אחוריים נבחרים.

דוגמה לאוסף אוטל (שבר):
yaml receivers: { otlp: { protocols: { http: {}, grpc: {} } } }
processors: { batch: {}, tail_sampling: { policies: [ { name: errors, type: status_code, status_codes: [ERROR] } ] } }
exporters: { prometheus: {}, otlp: { endpoint: "traces. sink:4317" } }
service:
pipelines:
metrics: { receivers: [otlp], processors: [batch], exporters: [prometheus] }
traces: { receivers: [otlp], processors: [tail_sampling,batch], exporters: [otlp] }

13) סינתטיים ובדיקות חיצוניות

HTTP מנהל תרחישים עסקיים (התחברות, הפקדה, משיכה, רכישה).
TLS/Domain: תעודת בריאות/CAA/DNS.
Regionality: דגימות ממדינות מפתח/ספקים (רשימות ניתוב/בלוקים).
הסינתטים צריכים להזהיר אם הם לא זמינים למשתמש, אפילו עם טלמטריה פנימית ירוקה.

14) פרופיל ו ־ eBPF

פרופיל רציף: זיהוי של פונקציות חמות, מנעולים.
EBPF: אירועי מערכת (syscalls, TCP retransmitts), על המוצר עם תקורה מינימלית.
פרופיל מתריע מבלי להתאמץ (כרטיסים), ובשביל רגרסיות לאחר השחרור - כאות של רולבק.

15) לוחות מחוונים ו ”לוח האמת” ‏

סט מינימלי:

1. סקירת פלטפורמה: SLI/SLO על ידי שירותי מפתח, תקצוב-שגיאה, התראות.

2. API אדום: RPS/טעויות/משך דרך.

3. אשכול K8s: מטוס שליטה, חדר קיבולת.

4. DB/Cache: lag/locks/slow query%, יחס פגיעה.

5. תורים: backlog/lag, כשל/חזרה.

6. פר-שחרור: השוואה של לפני/אחרי מדידות (חלונות קנריים).

7. FinOps: עלות לכל שם/שירות, סרק/גדול מדי

16) אירועים, רעש התראה והסלמה

שכפול - שירות/קיבוצים סיבה, דיכוי מפל

שתיקה/תחזוקה: שחרור/נדידה לא צריך ”לצייר” הכל אדום.
ריצות: כל התראה קריטית עם צעדי אבחון ו רולבק ”כפתור”.
לאחר המוות: ציר זמן, מה הם למדו, אילו אותות הוסיפו/ניקו.

17) בטיחות בניטור

RBAC לקריאה/עריכה של כללים/מסורות נתונים.
סודות: אסימונים אקספורטר/סוכן - באמצעות מנהל חשאי.
בידוד: מדדי לקוח/דייר - לרווחים/לשוניות נפרדים.
אמינות: חתימה של סוכנים/מבנים, הגדרות באמצעות GitOps (סקירת מיזוג).

18) מימון וקיבולת (FinOps)

מכסות ותקציבים; התראות לגדילה חריגה.
הגדרה נכונה: ניתוח בקשות/הגבלות, ניצול מעבד/RAM, איתור מקרים עבור משימות שאינן קריטיות.
”עלות לכל בקשה/דייר” בתור KPIs ביצועים.

19) אנטי דפוסים

מדדי תשתית רק בלי סלים מותאמים אישית.
100 + התראות ”על הכל” לאזן עיוורון בכוננות.
יומנים כמקור היחיד (ללא מדדים ואיתור).
לוחות מחוונים ממוטטים ללא הסבה/סקירה.
מחסור בסינתטים: ”הכל ירוק”, אבל החזית אינה זמינה.
אין קשר לשחרורים: אי אפשר לענות על ”מה השתנה ברגע X”.

20) רשימת מימושים (0-60 יום)

0-15 ימים

הגדר SLI/SLO עבור 3-5 שירותי מפתח.
אפשר יצואנים/סוכנים בסיסיים, תקן יומני JSON.
הגדרת התראות Tier-1 (זמינות, 5xx, p95).

16-30 ימים

הוסף סינתטיים לתרחישים קריטיים.
אפשר Otel על שירותי קלט/קריטי.
לוחות מחוונים ”פר-שחרור” וחוקי שרפה בתקציב-שגיאה.

31-60 ימים

כסה תורים/תורים/מטמון עם אותות מתקדמים.
יישום eBPF/פרופיל עבור שירותי מעבד גבוהים.
GitOps לחוקים/לוחות מחוונים/התראות, ניקוי רעש רגיל.

21) מדדי בגרות

כיסוי SLO של שירותי מפתח 95%.
MTTA/MTR (מטרה: מין/עשרות דקות).
פרופורציה של התראות Tier-1 סגור על ידי פעולה אוטומטית או rollback מהיר.
היחס בין התראות ”שימושיות ”/” רועשות ”הוא> 3:1.
כיסוי סינתטי של כל נתיבי ”כסף” = 100%.

22) יישומים: תבניות קטנות

פרומתאוס - זמינות במעמד

yaml
- record: job:http:availability:ratio_rate5m expr: sum(rate(http_requests_total{status!~"5.."}[5m])) / sum(rate(http_requests_total[5m]))

Grafana - עצה לקנריות


expr: histogram_quantile(0. 95, sum(rate(http_request_duration_seconds_bucket{version=~"stable    canary"}[5m])) by (le,version))

Elertmanager - חובה ושתיקה

yaml receivers:
- name: pager slack_configs:
- channel: "#oncall"
send_resolved: true inhibit_rules:
- source_match: { severity: "critical" }
target_match: { severity: "warning" }
equal: ["service"]

23) מסקנה

ניטור אינו מערכת גרפים, אלא מערכת ההפעלה SRE: SLI/SLO כחוזה איכות, מדדים/שבילים/לוגים כמקורות אמת, מתריעים כאות מבוקר, סינתטיים כ ”קול משתמש”, GitOps כמשמעת של שינוי. לבנות לולאה אחת מארח ל API, לקשור אותו לשחרורים וגלגולים - והפלטפורמה היא צפויה, מהירה וחסכונית.

Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

בלחיצה על הכפתור אתם מסכימים לעיבוד הנתונים שלכם.