Ejja nħarsu lejn il-kunċett ta 'monitoraġġ Kubernetes, jiffamiljarizzaw ruħhom mal-għodda Prometheus, u nitkellmu dwar twissija.
Is-suġġett tal-monitoraġġ huwa voluminuż ma jistax jiġi kopert f'artikolu wieħed. L-iskop ta’ dan it-test huwa li jipprovdi ħarsa ġenerali lejn l-għodod, il-kunċetti u l-approċċi.
Il-materjal tal-oġġett huwa għafsa minn . Jekk trid tieħu taħriġ sħiħ, iffirma għal kors fuq .

Dak li huwa mmonitorjat fi cluster Kubernetes

Servers fiżiċi. Jekk cluster Kubernetes jiġi skjerat fuq is-servers tiegħu stess, għandek bżonn tissorvelja s-saħħa tagħhom. Zabbix jieħu ħsieb dan il-kompitu; jekk taħdem miegħu, allura m'hemmx bżonn li tirrifjuta, mhux se jkun hemm kunflitti. Huwa Zabbix li jimmonitorja l-istat tas-servers tagħna.
Ejja ngħaddu għall-monitoraġġ fil-livell tal-cluster.
Komponenti tal-Pjan ta' Kontroll: API, Scheduler u oħrajn. Bħala minimu, għandek bżonn tissorvelja li s-server API jew etcd huwa akbar minn 0. Etcd jista 'jipprovdi ħafna metriċi: fuq id-diski li fuqhom idawwar, fuq is-saħħa tal-cluster etcd tiegħu, u oħrajn.
Docker deher żmien twil ilu u kulħadd huwa konxju sew tal-problemi tiegħu: ħafna kontenituri jikkawżaw iffriżar u problemi oħra. Għalhekk, Docker innifsu, bħala sistema, għandu wkoll jiġi mmonitorjat, għall-inqas għad-disponibbiltà.
dns. Jekk id-DNS ifalli fi cluster, allura s-servizz Discovery kollu jfalli wkoll, u sejħiet minn pods għal pods jieqfu jaħdmu. Fil-prattika tiegħi, ma kienx hemm problemi bħal dawn, iżda dan ma jfissirx li l-istatus tad-DNS m'għandux għalfejn jiġi mmonitorjat. It-talba latency u xi metriċi oħra jistgħu jiġu ssorveljati fuq CoreDNS.
Dħul. Huwa meħtieġ li tiġi kkontrollata d-disponibbiltà tad-dħul (inkluż il-Kontrollur tad-Dħul) bħala punti ta 'dħul fil-proġett.
Il-komponenti ewlenin tal-cluster ġew żarmati - issa ejja mmorru aktar baxxi, għal-livell ta 'estrazzjonijiet.
Jidher li l-applikazzjonijiet jimxu fil-miżwed, li jfisser li jeħtieġ li jiġu kkontrollati, iżda fir-realtà ma jagħmlux dan. Il-miżwed huma effimeri: illum jaħdmu fuq server wieħed, għada fuq ieħor; Illum hemm 10 minnhom, għada 2. Huwa għalhekk li ħadd mhu qed jimmonitorja l-imżiewed. F'arkitettura ta' mikroservizz, huwa aktar importanti li tiġi kkontrollata d-disponibbiltà tal-applikazzjoni kollha kemm hi. B'mod partikolari, iċċekkja d-disponibbiltà tal-endpoints tas-servizz: xi ħaġa qed taħdem? Jekk l-applikazzjoni hija disponibbli, allura dak li qed jiġri warajha, kemm hemm repliki issa - dawn huma mistoqsijiet tat-tieni ordni. M'hemmx bżonn li tissorvelja każijiet individwali.
Fl-aħħar livell, għandek bżonn tissorvelja l-operat tal-applikazzjoni nnifisha, tieħu metriċi tan-negozju: in-numru ta 'ordnijiet, l-imġiba tal-utent, eċċ.
Prometheus
L-aħjar sistema għall-monitoraġġ ta 'cluster hija . Ma naf l-ebda għodda li tista 'tqabbel ma' Prometheus f'termini ta 'kwalità u faċilità ta' użu. Huwa tajjeb ħafna għall-infrastruttura b'aġilità, għalhekk meta n-nies jgħidu "monitoraġġ Kubernetes" normalment ifissru Prometheus.
Hemm ftit għażliet biex tibda bi Prometheus: billi tuża Helm, tista 'tinstalla Prometheus jew Prometheus Operator regolari.
- Prometheus regolari. Kollox huwa tajjeb miegħu, iżda għandek bżonn tikkonfigura l-ConfigMap - essenzjalment, ikteb fajls ta 'konfigurazzjoni tat-test, kif għamilna qabel, qabel l-arkitettura tal-mikroservizz.
- Prometheus Operator huwa ftit aktar estensiv, ftit aktar kumpless fil-loġika interna tiegħu, iżda huwa aktar faċli li taħdem magħhom: hemm oġġetti separati, astrazzjonijiet huma miżjuda mal-cluster, għalhekk huma ħafna aktar konvenjenti biex jikkontrollaw u kkonfigurati.
Biex tifhem il-prodott, nirrakkomanda li l-ewwel tinstalla Prometheus regolari. Ikollok tikkonfigura kollox permezz tal-konfigurazzjoni, iżda dan ikun ta 'benefiċċju: int se tifhem x'jappartjeni għal xiex u kif hija kkonfigurata. F'Prometheus Operator, inti immedjatament titla 'għal astrazzjoni ogħla, għalkemm jekk trid, tista' wkoll tidħol fil-fond.
Prometheus huwa integrat tajjeb ma 'Kubernetes: jista' jaċċessa u jinteraġixxi mas-Server API.
Prometheus huwa popolari u huwa appoġġjat minn numru kbir ta 'applikazzjonijiet u lingwi ta' programmar. L-appoġġ huwa meħtieġ minħabba li Prometheus għandu l-format tal-metriċi tiegħu stess, u biex tittrasferih għandek bżonn jew librerija ġewwa l-applikazzjoni jew esportatur lest. U hemm ħafna esportaturi bħal dawn. Pereżempju, hemm PostgreSQL Exporter: jieħu data minn PostgreSQL u jikkonvertiha f'format Prometheus sabiex Prometheus ikun jista' jaħdem magħha.
arkitettura Prometheus

Server Prometheus — din hija l-parti tas-server, il-moħħ ta 'Prometheus. Dan huwa fejn il-metriċi huma maħżuna u pproċessati.
Il-metriċi huma maħżuna fid-database tas-serje taż-żmien (TSDB). TSDB mhix database separata, iżda pakkett Go li huwa mibni fi Prometheus. Bejn wieħed u ieħor, kollox huwa binarju wieħed.
Taħżinx data fit-TSDB għal żmien twil
L-infrastruttura Prometheus mhix adattata għall-ħażna fit-tul tal-metriċi. Il-perjodu tal-ħażna default huwa 15-il jum. Tista' taqbeż dan il-limitu, imma żomm f'moħħok: aktar ma taħżen dejta f'TSDB u iktar ma tagħmel dan, iktar se tikkonsma riżorsi. Il-ħażna tad-dejta storika fi Prometheus hija meqjusa bħala prattika ħażina.
Jekk għandek traffiku enormi, in-numru ta 'metriċi huwa fil-mijiet ta' eluf kull sekonda, allura huwa aħjar li tillimita l-ħażna tagħhom bl-ispazju tad-diska jew perjodu. Tipikament, TSDB jaħżen "dejta sħuna", metriċi litteralment għal ftit sigħat. Għal ħażna fit-tul, il-ħażna esterna tintuża f'dawk id-databases li huma verament adattati għal dan, pereżempju InfluxDB, ClickHouse, eċċ. Rajt aktar reviżjonijiet tajbin dwar ClickHouse.
Prometheus Server jaħdem skond il-mudell iġbed: hu stess imur għall-metriċi għall-endpoints li tajnah. Huma qalu: "mur fis-Server API," u jmur hemm kull numru nth ta 'sekondi u jieħu l-metriċi.
Għal oġġetti b'ħajja qasira (xogħol jew xogħol cron) li jistgħu jidhru bejn perjodi ta 'brix, hemm komponent Pushgateway. Metriċi minn oġġetti għal żmien qasir huma mbuttati fiha: ix-xogħol żdied, temm l-azzjoni, bagħat il-metriċi lil Pushgateway u tlesta. Wara xi żmien, Prometheus se jimxi bil-pass tiegħu u jieħu dawn il-metriċi minn Pushgateway.
Biex tikkonfigura n-notifiki fi Prometheus hemm komponent separat - Alertmanager. U r-regoli ta 'twissija. Pereżempju, għandek bżonn toħloq twissija jekk l-API tas-server tkun 0. Meta l-avveniment jiġi attivat, it-twissija tiġi mgħoddija lill-maniġer tat-twissija għal aktar trażmissjoni. Il-maniġer tat-twissijiet għandu settings tar-rotot pjuttost flessibbli: grupp wieħed ta 'twissijiet jista' jintbagħat liċ-chat tat-telegramma tal-amministraturi, ieħor liċ-chat tal-iżviluppaturi, u terz liċ-chat tal-infrastruttura. In-notifiki jistgħu jintbagħtu lil Slack, Telegram, email u kanali oħra.
U fl-aħħarnett, ngħidlek dwar il-karatteristika qattiel ta 'Prometheus - Skopri. Meta taħdem ma 'Prometheus, m'għandekx bżonn tispeċifika indirizzi speċifiċi ta' oġġetti li tissorvelja huwa biżżejjed li tispeċifika t-tip tagħhom. Jiġifieri, m'hemmx għalfejn tikteb "hawn hu l-indirizz IP, hawn il-port - monitor", minflok trid tiddetermina b'liema prinċipji ssib dawn l-oġġetti (miri - għanijiet). Prometheus innifsu, skont liema oġġetti huma attivi bħalissa, jiġbed dawk meħtieġa u jżidhom mal-monitoraġġ.
Dan l-approċċ jaqbel sew mal-istruttura ta 'Kubernetes, fejn kollox floating: illum hemm servers 10, għada 3. Sabiex ma nindikax l-indirizz IP tas-server kull darba, aħna darba ktibna kif issibha - u Discovering se tagħmel dan.
Il-lingwa Prometheus tissejjaħ PromQL. Billi tuża din il-lingwa, tista 'tikseb il-valuri ta' metriċi speċifiċi u mbagħad tittrasformahom u tibni kalkoli analitiċi bbażati fuqhom.
https://prometheus.io/docs/prometheus/latest/querying/basics/
Простой запрос
container_memory_usage_bytes
Математические операции
container_memory_usage_bytes / 1024 / 1024
Встроенные функции
sum(container_memory_usage_bytes) / 1024 / 1024
Уточнение запроса
100 - avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m]) * 100)Interfaċċja tal-web Prometheus
Prometheus għandu l-interface tal-web tiegħu, pjuttost minimalista. Adattat biss għal debugging jew dimostrazzjoni.

Tista' tikteb mistoqsija fi PromQL fil-linja ta' Espressjoni.
It-tab Twissijiet fiha regoli ta’ twissija, u għandhom tliet status:
- inattiv - jekk it-twissija mhix attiva fil-mument, jiġifieri, kollox huwa tajjeb magħha, u ma ħadimx;
- pendenti - dan jekk it-twissija kienet attivata, iżda l-bgħit ikun għadu ma seħħx. Id-dewmien huwa ssettjat biex jikkumpensa għat-teptip tan-netwerk: jekk is-servizz speċifikat żdied fi żmien minuta, allura m'hemmx bżonn li tinstema 'l-allarm;
- l-isparar huwa t-tielet status, meta t-twissija tixgħel u tibgħat messaġġi.
Fil-menu Status issib aċċess għal informazzjoni dwar x'inhu Prometheus. Hemm ukoll tranżizzjoni għall-għanijiet li tkellimna dwarhom hawn fuq.

Għal ħarsa ġenerali aktar dettaljata tal-interface Prometheus, ara .
Integrazzjoni ma' Grafana
Fl-interface tal-web Prometheus ma ssibx graffs sbieħ u li jinftiehmu li minnhom tista 'tiġbed konklużjonijiet dwar l-istat tal-cluster. Biex tibnihom, Prometheus jintegra ma’ Grafana. Dawn huma d-dashboards li jkollna.

It-twaqqif tal-integrazzjoni ta 'Prometheus u Grafana mhu diffiċli xejn istruzzjonijiet jistgħu jinstabu fid-dokumentazzjoni: , ukoll, jien ser nispiċċa b'dan.
Fl-artikoli li ġejjin se nkomplu s-suġġett tal-monitoraġġ: se nitkellmu dwar il-ġbir u l-analiżi ta 'zkuk bl-użu ta' Grafana Loki u għodod alternattivi.
Awtur: Marcel Ibraev, amministratur Kubernetes iċċertifikat, inġinier prattikanti fil-kumpanija , kelliem u żviluppatur tal-kors Slurm.
Sors: www.habr.com
