GH GambleHub

ინფრასტრუქტურის მონიტორინგი

ინფრასტრუქტურის მონიტორინგი

1) მიზნები და ჩარჩო

ინფრასტრუქტურის მონიტორინგი არის პლატფორმის ჯანმრთელობის, პროდუქტიულობის და ხელმისაწვდომობის სიგნალების სისტემა. მან უნდა:
  • გააფრთხილეთ მომხმარებლის წინაშე წარუმატებლობის შესახებ (ადრეული გამოვლენა).
  • მიეცით ძირითადი მიზეზის დიაგნოზი.
  • მხარი დაუჭირეთ SLO გეიტინგის გამოშვებებს და მანქანების გამოტოვებას.
  • იკვებეთ პოსტ-ინციდენტის ანალიზი.

დამხმარე პრინციპები: Observable by Design, ნაკლები ხმაური - მეტი სიგნალი, რეაქციების ავტომატიზაცია, ჭეშმარიტების ერთიანი პანელი.

2) დაკვირვებათა ტრიადა

მეტრიკები: სიჩქარე/მოთხოვნა/შეცდომები/გაჯერება (USE/RED).
ლოგიკა: ღონისძიების დეტალიზაცია კონტექსტით; არ შეიცავს საიდუმლოებებს/PII.
ტრეისი: განაწილებული განცხადებები მიზეზობრივი კავშირების შესახებ.

პლუს:
  • პროფილირება (CPU/heap/lock/io), eBPF სისტემის დონეზე.
  • მოვლენები/აუდიტი (K8s Events, კონფიგურაციის/საიდუმლოების ცვლილებები).

3) SLI/SLO/SLA - ხარისხის ენა

SLI (ინდიკატორი): 'availability', 'error _ rate', 'p95 _ latency', 'queue _ lag'.

SLO (მიზანი): "წარმატებული მოთხოვნები 99. 9% 30 დღეში."

Error Budget: დასაშვები გადახრა; გამოიყენება ავტომობილების გამოსვლის გაჩერებისთვის.

მაგალითი 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/Steal, RAM/Swap, Disk IOPS/Latence, Filesystem.
2. ქსელი/LB/DNS: RTT, პაკეტები/ფრენები, backlog, SYN/Timeout, health probes.
3. Kubernetes/Orchestrator: API სერვერი, etcd, კონტროლერები, სკედულერი; პოდები/კვანძები, pending/evicted, throttling, kube-events.
4. სერვისები/კონტეინერები: RED (Rate/Errors/Duration), readiness/liveness.
5. მონაცემთა ბაზები/ქეში: QPS, cock wait, რეპლიკა lag, buffer hit, slow queries.
6. რიგები/საბურავები: consumer lag, requeue/dead-letter, throughput.
7. საცავი/ღრუბელი: S3/Blob შეცდომები და ლატენტობა, პროვაიდერების 429/503.
8. პერიმეტრის საზღვრები: WAF/Rate Limits, 4xx/5xx მარშრუტებზე, CDN.
9. სინთეზური: HTTP სკრიპტის შემოწმება (ანაბარი/გამომავალი), TLS/სერთიფიკატები.
10. ეკონომიკა/შესაძლებლობები: cost სერვისის, utilization, headroom.

5) Whitebox и Blackbox

Whitebox: ექსპორტიორები/SDK სერვისების შიგნით (Prometheus, OpenTelemetry).
Blackbox: გარე ნიმუშები სხვადასხვა რეგიონიდან (availability, latence, TLS expiry).
დააკავშირეთ: „ნიშანი გარეთ“ + „დიაგნოზი შიგნით“.

მაგალითი 'blackbox _ exporter':
yaml modules:
https_2xx:
prober: http http:
method: GET preferred_ip_protocol: "ip4"

6) Kubernetes: საკვანძო სიგნალები

Кластер: `apiserver_request_total`, `etcd_server_has_leader`, etcd fsync.
Узлы: `container_cpu_cfs_throttled_seconds_total`, `node_pressure`.
Pending/CrashLoopBackOff, OOMKilled, restarts.
გეგმები/ლიმიტები: Requests vs Limits, PodDisruption Budget, HPA/VPA.
ქსელი: ქსელის პოლიტიკა, conntrack exhaustion.

Дашборды: «Cluster health», «Workload saturation», «Top erroring services».

7) BD და რიგები

PostgreSQL/MySQL: replication lag, deadlocks, slow query %, checkpoint I/O.
Redis/Memcached: hit ratio, evictions, rejected connections.
Kafka/RabbitMQ: consumer lag, unacked, requeue, broker ISR, disk usage.

8) მეტრიკა RED/USE და ბიზნეს კორელაცია

RED: `rate` (RPS), `errors` (4xx/5xx), `duration` (p95/p99).
USE (რესურსებისთვის): Utilization, Saturation, Errors.
დაუკავშირდით პროდუქტს: ანაბრები/წარმატებები, ფროიდის დროშები, კონვერტაცია - ეს არის „მცველები“ კანარის გამოშვებისას.

9) ალერტინგის სტრუქტურა

Tier-1 (პეიჯი): ინციდენტები, რომლებიც გავლენას ახდენენ SLO- ზე (წვდომა, 5xx, ლატენტობა, კლასტერული კრიტიკული კომპონენტების უკმარისობა).
Tier-2 (ტიკეტი): ტევადობის დეგრადაცია, შეცდომების ზრდა SLO- ზე გავლენის გარეშე.
Tier-3 (ინფო): ტენდენციები, პრედიკულური კონტეინერი, სერთიფიკატების ამოწურვა.

ესკალაციის წესები: დუმილის დრო/დუბლიკატების შეკუმშვა, როტაცია on-call, „follow-the-sun“.

მაგალითი Alertmanager Routes:
yaml route:
group_by: ["service","severity"]
receiver: "pager"
routes:
- match: { severity: "critical" }
receiver: "pager"
- match: { severity: "warning" }
receiver: "tickets"

10) Prometheus- ის წესების მაგალითები

10. 1 შეცდომები 5xx c 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 error-budget დაწვა

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 სისტემური გაჯერება (CPU Throttling)

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) Logs: კოლექცია, ნორმალიზაცია, ჭრა

სტანდარტიზაცია: JSON logs: 'ts', 'level', 'service', 'trace _ id', 'user/tenant'.
Paipline: აგენტი (Fluent Bit/Vector) - ბუფერი, ინდექსი/საცავი.
რედაქტორები: PII/საიდუმლოებების ნიღაბი ზღვარზე.
Retenshn: სწრაფი შენახვის კლასი (7-14 დღე), „ცივი“ არქივი (30-180 დღე).
სემანტიკა: error budgets/დეპრესიები - ცალკეული არხები.

12) ტრეისი და OpenTelemetry

მიუთითეთ შეყვანის წერტილები, კლიენტი - გამოწვევის სერვისი, BD/ქეში/ხაზი.
მიბმული მეტრიკები ტრეისის ატრიბუტებზე (Exemplars) სწრაფი ნავიგაციისთვის.
OTel Collector, როგორც ცენტრალური კარიბჭე: ფილტრაცია, ნიმუში, შერჩეული ბეკენდების ექსპორტი.

OTel Collector- ის მაგალითი (ფრაგმენტი):
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/დომენი: სერთიფიკატის ვადა/CAA/DNS health.
რეგიონალურობა: ნიმუშები ძირითადი ქვეყნებიდან/პროვაიდერებიდან (მარშრუტიზაცია/ბლოკის ფურცლები).
სინთეტიკა უნდა იყოს ალერტული, თუ ეს არ არის ხელმისაწვდომი მომხმარებლისთვის, თუნდაც მწვანე შიდა ტელემეტრიით.

14) პროფილირება და eBPF

Continuous profiling: ცხელი ფუნქციების იდენტიფიცირება, დაბლოკვა.
eBPF: სისტემური მოვლენები (syscalls, TCP retransmits), გაყიდვებზე მინიმალური overhead.
პროფილის ალერტები stuncing (tickets) გარეშე, ხოლო გამოშვების შემდეგ რეგრესიებისთვის - როგორც დაბრუნების სიგნალი.

15) დაშბორდი და „სიმართლის პანელი“

მინიმალური ნაკრები:

1. Platform Overview: SLI/SLO საკვანძო სერვისებში, error-budget, ალერტები.

2. API RED: RPS/ERRORS/DURATION მარშრუტებზე.

3. K8s Cluster: control-plane, узлы, capacity headroom.

4. DB/Cache: lag/locks/slow query %, hit ratio.

5. Queues: backlog/lag, უარყოფითი/განმეორებითი.

6. Per-release: მეტრის შედარება/შემდეგ (კანარის ფანჯრები).

7. FinOps: cost per namespace/service, idle/oversized ресурсы.

16) ინციდენტები, ალერტული ხმაური და ესკალაცია

დედუპლიკაცია: სამსახურის/მიზეზის ჯგუფი, კასკადების ჩახშობა.
სიჩუმე/maintenance: გამოშვებები/მიგრაცია არ უნდა „დახატოს“ ყველაფერი წითლად.
Runbooks: თითოეული კრიტიკული ალერტა, რომელსაც აქვს დიაგნოზის ნაბიჯები და გამოტოვების „ღილაკი“.
Postmortem: დრო, რაც მათ ისწავლეს, რა სიგნალები დაამატეს/გაიწმინდა.

17) უსაფრთხოების მონიტორინგი

RBAC წესების/datasors- ის კითხვისთვის/შესწორებისთვის.
საიდუმლოებები: ექსპორტიორების/აგენტების ნიშნები - საიდუმლო მენეჯერის მეშვეობით.
იზოლაცია: მომხმარებელთა/ტენანტების მეტრიკა - ცალკეულ სივრცეებში/ეტიკეტებში.
მთლიანობა: აგენტის/ბილეთების ხელმოწერა, კონფიგურაცია GitOps- ის მეშვეობით (merge revie).

18) ფინანსები და შესაძლებლობები (FinOps)

კვოტები და ბიუჯეტები; ალერტები არანორმალურ ზრდაზე.
Right-sizing: მოთხოვნების/ლიმიტების ანალიზი, CPU/RAM- ის განკარგვა, არ არის კრიტიკული დავალებების სპოტი.
„Cost per request/tenant“, როგორც KPI ეფექტურობა.

19) ანტი შაბლონები

მხოლოდ ინფრასტრუქტურული მეტრიკა მომხმარებლის SLI- ს გარეშე.
100 + ალერტა „ყველასთვის“ - სიბრმავე on-call.
ლოგოები, როგორც ერთადერთი წყარო (მეტრიკის და ტრეიზის გარეშე).
მუტაბელური დაშბორდები ვერსიის/review- ის გარეშე.
სინთეზის ნაკლებობა: „ყველაფერი მწვანეა“, მაგრამ ფრონტი მიუწვდომელია.
გამოშვებასთან კავშირი არ არსებობს: თქვენ არ შეგიძლიათ უპასუხოთ „რა შეიცვალა X მომენტში“.

20) განხორციელების სიის სია (0-60 დღე)

0-15 დღე

განსაზღვრეთ SLI/SLO 3-5 ძირითადი მომსახურებისთვის.
ჩართეთ ძირითადი ექსპორტიორები/აგენტები, სტანდარტიზებული JSON ლოგები.
Tier-1 Alerta- ს კონფიგურაცია (availability, 5xx, p95).

16-30 დღე

დაამატეთ სინთეტიკა კრიტიკულ სცენარებზე.
ჩართეთ ბილიკები (OTel) შეყვანის/კრიტიკულ სერვისებში.
დაშბორდები „Per-release“ და error-budget burn წესები.

31-60 დღე

დაფარეთ BD/რიგები/ქეში მოწინავე სიგნალებით.
შემოიღეთ eBPF/პროფილირება მაღალი CPU სერვისებისთვის.
GitOps წესების/დაშბორდების/ალერტებისთვის, რეგულარული ხმაურის გაწმენდა.

21) სიმწიფის მეტრიკა

SLO საკვანძო სერვისების დაფარვა 95% -ს შეადგენს.
MTTA/MTTR (მიზანი: წთ/ათეული წუთი).
Alerta- ს წილი Tier-1, რომელიც დახურულია მანქანის მოქმედებით ან სწრაფი გამოტოვებით.
„სასარგებლო „/“ ხმაურიანი “ალერტების თანაფარდობა> 3:1.
ყველა „ფულადი“ ბილიკის სინთეზის დაფარვა = 100%.

22) პროგრამები: მინი შაბლონები

Prometheus - სტატუს კლასების ხელმისაწვდომობა

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))

Alertmanager - მოვალეობა და დუმილი

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 არასავალდებულო
ფორმატი: ქვეყნის კოდი და ნომერი (მაგალითად, +995XXXXXXXXX).

ღილაკზე დაჭერით თქვენ ეთანხმებით თქვენი მონაცემების დამუშავებას.