Мониторинги инфрасохтор
Мониторинги инфрасохтор
1) Ҳадафҳо ва чаҳорчӯба
Мониторинги инфрасохтор як системаи сигналҳо дар бораи саломатӣ, фаъолият ва мавҷудияти платформа мебошад. Ӯ бояд:- Огоҳӣ пеш аз суқути корванд (муайянкунии барвақт).
- Сабаби решаро ташхис диҳед (аз аломат то сабаб).
- Дастгирии дарвозаҳои SLO ва релизҳои худкор.
- Таҳлили пас аз ҳодисаро таъом диҳед (далелҳо ҳамчун маълумот).
Принсипҳои дастгирӣ: Бо тарроҳӣ мушоҳида кардан, садои камтар - сигналҳои бештар, автоматизатсияи реаксияҳо, панели ягонаи ҳақиқат.
2) Сегонаи мушоҳида
Вақтсанҷҳо - Меъёри/талабот/Хатогӣ/Сатр (USE/RED)
Гузоришҳо: тафсилоти ҳодиса бо матн; дорои асрори/PII нест.
Нишонаҳо: ҳолатҳои тақсимшуда бо муносибатҳои сабабӣ.
- Профил (CPU/heap/lock/io), EBPF барои сатҳи система.
- Ҳодисаҳо/аудит (K8s Ҳодисаҳо, тағйирот дар конфигуратсияҳо/асрҳо).
3) SLI/SLO/SLA - забони босифат
SLI: 'мавҷудият', 'хатогӣ _ дараҷа', 'p95 _ latency', 'quenue _ lag'.
SLO (ҳадаф): "дархостҳои бомуваффақият ≥ 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/Бор/Дуздӣ, RAM/Своп, Диски IOPS/Latency, Системаи файлӣ.
2. Шабака/LB/DNS: RTT, бастаҳо/қатраҳо, ақибмонӣ, SYN/Timeout, санҷишҳои саломатӣ.
3. Kubernetes/Orchestrator: сервери API, etcd, контроллерҳо, ҷадвал; pods/гиреҳҳо, интизорӣ/хориҷшуда, дротлинг, kube-чорабиниҳо.
4. Хизматрасонӣ/контейнерҳо: RED (Меъёри/Хатогиҳо/Давомнокӣ), омодагӣ/зинда будан.
5. Пойгоҳи додаҳо/кэшҳо: QPS, интизории қулф, ақибмонии такрорӣ, зарбаи буферӣ, дархостҳои суст.
6. Навбатҳо/автобусҳо: ақибмонии истеъмолкунандагон, дархост/мактуб, интиқол.
7. Нигоҳдорӣ/абр: S3/Blob хатогиҳо ва таъхир, 429/503 аз провайдерҳо.
8. Ҳудуди периметрӣ: Маҳдудиятҳои WAF/Меъёри, 4xx/5xx бо масир, CDN.
9. Синтетика: Санҷиши скрипти HTTP (амонат/баромад), TLS/сертификатҳо.
10. Иқтисод/қобилият: арзиши як хидмат, истифода, сарпӯш.
5) Whitebox i Blackbox
Whitebox: содиркунандагон/SDK-ҳо дар доираи хидматҳо (Prometheus, Open-Telemetry).
Қуттии сиёҳ: намунаҳои беруна аз минтақаҳои гуногун (мавҷудият, таъхир, мӯҳлати TLS).
Якҷоя: "дар берун имзо гузоред" + "ташхис дар дохили".
yaml modules:
https_2xx:
prober: http http:
method: GET preferred_ip_protocol: "ip4"
6) Кубернетҳо: сигналҳои калидӣ
Кластер: 'apiserver _ request _ total', 'etcd _ server _ has _ leader' ва ғайра fsync.
Узлы: 'контейнер _ cpu _ cfs _ throttled _ seconds _ total', 'node _ pressure'.
Ҷойпӯшҳо: Интизорӣ/Crash
Нақшаҳо/Маҳдудиятҳо: Дархостҳо vs Маҳдудиятҳо, Pod
Шабака: Тарки шабака, фарсудашавии пайвастшавӣ.
Дашборды: "Саломатии кластерӣ", "Пур кардани сарбории корӣ", "Хадамоти хатогиҳои болоӣ".
7) DB ва навбатҳо
Postgre SQL/My-SQL: ақибмонии такрорӣ, монеаҳо, дархости суст%, нуқтаи гузаргоҳи I/O.
Redis/Memcached: таносуби хит, кӯчдиҳӣ, пайвастшавиро рад карданд.
Кафка/RabbitMQ: ақибмонии истеъмолкунанда, unacked, requue, брокери ISR, истифодаи диск.
8) Нишондиҳандаҳои RED/USE ва таносуби тиҷорат
RED: 'дараҷа' (RPS), 'хатогиҳо' (4xx/5xx), 'давомнокӣ' (p95/p99).
ИСТИФОДА (барои захираҳо): Истифода, қаноатмандӣ, хатогиҳо.
Бо маҳсулот шарик шавед: муваффақияти амонатҳо/пардохтҳо, парчамҳои қаллобӣ, табдили - инҳо "посбонҳо" барои озод кардани канарейка мебошанд.
9) Сохтори огоҳкунанда
Сатҳи 1 (саҳифа): ҳодисаҳое, ки ба SLO таъсир мерасонанд (мавҷудият, 5xx, ниҳонӣ, нокомии ҷузъи муҳими кластер).
Tier-2 (чипта): таназзули қобилият, афзоиши хатогӣ бидуни таъсир ба SLO.
Tier-3 (иттилоъ): тамоюлҳо, иқтидори пешгӯишаванда, гузаштани мӯҳлати сертификатҳо.
Қоидаҳои авҷгирӣ: хомӯш кардани вақт/фишурдани такрорӣ, гардиши занг, пайгирии офтоб.
Намунаи хатсайрҳои Alertmanager: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 Пур кардани система (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) Гузоришҳо: ҷамъоварӣ, муътадилсозӣ, нигоҳдорӣ
Стандартизатсия: гузоришҳои JSON: 'ts', 'level', 'service', 'trace _ id', 'корбар/иҷорагир'.
Қубур: агент (Fluent Bit/Vector) → буфер → индекс/анбор.
Бознигарӣ: PII/асрори ниқоб дар канор.
Нигоҳдорӣ: синфи нигаҳдории зуд (7-14 рӯз), бойгонии хунук (30-180 рӯз).
Семантика: буҷет/амортизатсия - каналҳои алоҳида.
12) Роҳҳо ва Open-Telemetry
Нуқтаҳои вуруди асбобҳо (дарвоза), зангҳои kliyent → servis, DB/caches/навбатҳо.
Нишондиҳандаҳоро барои пайгирии атрибутҳо (Намунаҳо) барои паймоиши зуд пайваст кунед.
OTEel 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.
Минтақа: намунаҳо аз кишварҳои асосӣ/провайдерҳо (рӯйхати масир/блок).
Синтетика бояд ҳушдор диҳад, ки агар барои корбар дастрас набошад, ҳатто бо телеметрияи дохилии сабз.
14) Профилактика ва электронии BPF
Профили доимӣ: муайян кардани функсияҳои гарм, қуфлҳо.
EBPF: рӯйдодҳои система (syscalls, retransmitts TCP), дар маҳсулот бо ҳадди ақали сарборӣ.
Огоҳии профил бидуни шиддат (чиптаҳо) ва барои регрессия пас аз озод шудан - ҳамчун сигнали бозгашт.
15) Панели панелҳо ва "панели ҳақиқат"
Маҷмӯи минимум:1. Шарҳи платформа: SLI/SLO аз ҷониби хидматҳои асосӣ, буҷаи хатогӣ, огоҳиҳо.
2. API RED: RPS/Хатогиҳо/DURATION бо масир.
3. K8s Кластер: назорати ҳавопаймо, узлы, сартарошхона.
4. DB/Кэш: ақибмонӣ/қуфлҳо/дархости суст%, таносуби зарба.
5. Навбатҳо: ақибмонӣ/ақибмонӣ, нокомӣ/такрорӣ.
6. Озодкунӣ: муқоисаи ченакҳои пеш/баъд аз (тирезаҳои канарӣ).
7. FIN Ops: арзиши як фазои номӣ/хидмат, ресурсы бекорхобида/калонҳаҷм.
16) Ҳодисаҳо, садои ҳушдор ва шиддат
Deduplication - Хизматрасонӣ/Гурӯҳбандии сабабҳо, қатъи каскад
Хомӯшӣ/нигоҳдорӣ: релизҳо/муҳоҷират набояд ҳама чизро сурх "ранг кунанд".
Китобчаҳо: ҳар як ҳушдори интиқодӣ бо қадамҳои ташхисӣ ва бозгашти "тугма".
Постмортем: ҷадвал, он чизе ки онҳо омӯхтанд, кадом сигналҳо илова/тоза карда шуданд.
17) Бехатарӣ дар мониторинг
RBAC барои қоидаҳои хондан/таҳрир кардан/додаҳо.
Асрҳо: Нишонаҳои содиркунанда/агент - тавассути менеҷери махфӣ.
Ҷудокунӣ: ченакҳои муштарӣ/иҷорагир - дар фазо/ҷадвалҳои алоҳида.
Беайбӣ: имзои агентҳо/сохтан, конфигуратсияҳо тавассути GIT (баррасии якҷоя).
18) Молия ва тавонмандӣ (FIN)
Квотаҳо ва буҷетҳо; ҳушдор медиҳад, ки афзоиши ғайримуқаррарӣ.
Андозаи рост: таҳлили дархостҳо/маҳдудиятҳо, истифодаи CPU/RAM, ҳолатҳои мушаххас барои вазифаҳои ғайримуқаррарӣ.
"Арзиши як дархост/иҷорагир" ҳамчун иҷрои KPI.
19) Анти-намунаҳо
Нишондиҳандаҳои инфрасохтор танҳо бе SLI-ҳои фармоишӣ.
100 + огоҳиҳо "дар бораи ҳама чиз" → нобиноӣ ҳангоми занг.
Гузоришҳо ҳамчун манбаи ягона (бе ченак ва пайгирӣ).
Панелҳои мутавозин бидуни таҳрир/баррасӣ.
Набудани синтетика: "ҳама чиз сабз аст", аммо пеши он дастрас нест.
Бо релизҳо ҳеҷ иртиботе вуҷуд надорад: ҷавоб додан "он чизе, ки дар айни замон X. тағир ёфтааст" ғайриимкон аст.
20) Рӯйхати санҷиши амалисозӣ (0-60 рӯз)
0-15 рӯз
SLI/SLO-ро барои 3-5 хидматҳои асосӣ муайян кунед.
Ба содиркунандагон/агентҳои асосӣ фаъол созед, гузоришҳои JSON-ро стандартӣ кунед.
Танзимоти огоҳиҳои дараҷаи 1 (мавҷудият, 5xx, p95).
16-30 рӯз
Барои сенарияҳои интиқодӣ синтетикаро илова кунед.
Даргиронидани OTHel дар хидматҳои вурудӣ/интиқодӣ.
Панели панелҳои "Per-release" ва қоидаҳои сӯзондани буҷа.
31-60 рӯз
DB/навбатҳо/кэшро бо сигналҳои пешрафта пӯшонед.
Амалисозии EBPF/профил барои хизматрасониҳои баландсифати CPU.
GIT-ҳо барои қоидаҳо/панели панелҳо/огоҳиҳо, тозакунии мунтазами садо.
21) Нишондиҳандаҳои камолот
Фарогирии SLO хидматҳои калидӣ ≥ 95%.
MTTA/MTTR (ҳадаф: дақиқа/даҳҳо дақиқа).
Таносуби огоҳиҳои Tier-1, ки бо амали худкор ё бозгашти зуд баста мешаванд.
Таносуби огоҳиҳои "муфид "/" ғавғо "> 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]))
Графана - нӯги канарейка
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 созед, онро ба релизҳо ва роликҳо пайваст кунед - ва платформа пешгӯишаванда, зуд ва сарфакорона аст.