Ka em li konsepta çavdêriya Kubernetes binêrin, bi amûra Prometheus re nas bikin û li ser hişyariyê biaxivin.
Mijara çavdêriyê pir mezin e; Mebesta vê nivîsê ew e ku li ser amûr, têgeh û nêzîkatiyan nêrînek giştî pêşkêş bike.
Materyalên gotarê ji squeeze ye . Heke hûn dixwazin perwerdehiya tevahî bistînin, ji bo qursek li ser qeyd bikin .

Tiştê ku di komek Kubernetes de tê şopandin

Pêşkêşkerên fîzîkî. Ger komek Kubernetes li ser serverên xwe were bicîh kirin, hûn hewce ne ku tenduristiya wan bişopînin. Zabbix vî karî dike; heke hûn bi wî re bixebitin, wê hingê ne hewce ye ku red bikin, dê nakokî nebin. Ew Zabbix e ku rewşa serverên me dişopîne.
Werin em di asta komê de biçin çavdêriyê.
Parçeyên Plana Kontrolê: API, Scheduler û yên din. Bi kêmanî, hûn hewce ne ku çavdêriyê bikin ku server API an etcd ji 0-ê mezintir e. Etcd dikare gelek metrîkan peyda bike: li ser dîskên ku ew li ser dizivire, li ser tenduristiya koma wê ya etcd û yên din.
Docker demeke dirêj berê xuya bû û her kes ji pirsgirêkên wê baş dizane: gelek konteyneran dibin sedema cemidan û pirsgirêkên din. Ji ber vê yekê, Docker bixwe jî, wekî pergalek, divê bi kêmanî ji bo hebûna xwe were şopandin.
dns. Ger DNS di komekê de têk biçe, wê hingê dê tevahiya karûbarê Discovery jî têk biçe, û bangên ji pods bo pods dê bixebitin. Di pratîka min de, pirsgirêkên weha tune bûn, lê ev nayê vê wateyê ku statûya DNS ne hewce ye ku were şopandin. Derengiya daxwazê û hin metrîkên din dikarin li ser CoreDNS werin şopandin.
Ingress. Pêdivî ye ku meriv hebûna têketinê (tevî Kontrolkerê Kevirê) wekî xalên têketina projeyê kontrol bike.
Pêkhateyên sereke yên komê hatine hilweşandin - naha em biçin jêr, berbi asta abstractions.
Wusa dixuye ku serîlêdan di pods de têne xebitandin, ku tê vê wateyê ku ew hewce ne ku werin kontrol kirin, lê di rastiyê de ew na. Pod domdar in: îro ew li ser serverek dixebitin, sibê li ser serverek din; Îro 10 ji wan hene, sibê 2. Ji ber vê yekê kes çavdêriya podan nake. Di mîmariya mîkroxizmetê de, kontrolkirina hebûna serîlêdanê bi tevahî girîngtir e. Bi taybetî, hebûna xalên dawiya karûbarê kontrol bikin: tiştek dixebite? Ger serîlêdan hebe, wê hingê çi li pişt wê diqewime, çend kopiyên naha hene - ev pirsên rêza duyemîn in. Ne hewce ye ku meriv bûyerên takekesî bişopîne.
Di asta paşîn de, hûn hewce ne ku operasyona serîlêdanê bixwe bişopînin, pîvanên karsaziyê bigirin: hejmara fermanan, tevgera bikarhêner, hwd.
Prometheus
Pergala çêtirîn ji bo şopandina komekê ye . Ez tu hacetekî nas nakim ku ji hêla kalîte û hêsaniya karanîna Prometheus ve were berhev kirin. Ew ji bo binesaziya zirav mezin e, ji ber vê yekê gava ku mirov dibêjin "şopandina Kubernetes" ew bi gelemperî tê wateya Prometheus.
Ji bo destpêkirina Prometheus çend vebijark hene: Bi karanîna Helm, hûn dikarin Prometheus an Operatorê Prometheus bi rêkûpêk saz bikin.
- Prometheus Regular. Her tişt bi wê re baş e, lê hûn hewce ne ku ConfigMap-ê mîheng bikin - bi bingehîn, pelên veavakirina nivîsê binivîsin, wekî ku me berê kir, berî mîmariya mîkro-service.
- Prometheus Operator di mantiqa xweya hundurîn de piçek berfirehtir e, hinekî tevlihevtir e, lê karkirina pê re hêsantir e: tiştên ji hev cihê hene, abstractions li komê têne zêdekirin, ji ber vê yekê ew ji bo kontrolkirin û mîhengkirinê pir hêsantir in.
Ji bo fêmkirina hilberê, ez pêşniyar dikim ku pêşî Prometheus bi rêkûpêk saz bikin. Pêdivî ye ku hûn her tiştî bi konfigurasyonê vesaz bikin, lê ev ê sûdmend be: hûn ê fêm bikin ka çi girêdayî çi ye û ew çawa tête mîheng kirin. Di Operatorê Prometheus de, hûn tavilê berbi abstrakasyonek bilindtir radibin, her çend hûn bixwazin, hûn dikarin di kûran de jî bigerin.
Prometheus bi Kubernetes re baş yekgirtî ye: ew dikare bigihîje Pêşkêşkara API-ê û bi hev re têkilî daynin.
Prometheus populer e û ji hêla gelek serlêdan û zimanên bernamesaziyê ve tê piştgirî kirin. Piştgirî hewce ye ji ber ku Prometheus xwedan formata xweya metrîka ye, û ji bo veguheztina wê hûn an pirtûkxaneyek di hundurê serîlêdanê de an jî hinardekek amade hewce ne. Û hinardekarên wisa jî pir in. Mînakî, PostgreSQL Exporter heye: ew daneyan ji PostgreSQL digire û vediguherîne forma Prometheus da ku Prometheus bikaribe pê re bixebite.
Mîmariya Prometheus

Server Prometheus - ev beşa server, mêjiyê Prometheus e. Li vir metrîk têne hilanîn û hilanîn.
Metrîk di databasa rêzikên demê (TSDB) de têne hilanîn. TSDB ne databasek cihê ye, lê pakêtek Go ye ku di Prometheus de hatî çêkirin. Bi gelemperî, her tişt di yek binary de ye.
Daneyên di TSDB-ê de demek dirêj hilînin
Binesaziya Prometheus ji bo hilanîna metrîkên demdirêj ne guncaw e. Dema hilanînê ya xwerû 15 roj e. Hûn dikarin vî sînorî derbas bikin, lê ji bîr mekin: çiqas bêtir daneya ku hûn di TSDB de hilînin û her ku hûn wiya bikin, ew ê bêtir çavkaniyan bixwe. Di Prometheus de tomarkirina daneyên dîrokî wekî pratîkek xirab tê dîtin.
Ger we seyrûseferek mezin heye, hejmara metrîkan di saniyeyê de bi sed hezaran e, wê hingê çêtir e ku hûn hilanîna wan ji hêla cîhê dîskê an heyamê ve sînordar bikin. Bi gelemperî, TSDB "daneyên germ", metrîkan bi rastî çend demjimêran hilîne. Ji bo hilanîna demdirêj, hilanîna derveyî di wan databasên ku bi rastî ji bo vê yekê guncan in, tê bikar anîn, mînakî InfluxDB, ClickHouse, û hwd. Min di derbarê ClickHouse de bêtir nirxandinên baş dît.
Servera Prometheus li gorî modelê dixebite kişandin: ew bi xwe ji bo metrîkan diçe xalên dawî yên ku me dane wî. Wan got: "biçe Servera API," û ew her n-mîn saniyeyan diçe wir û pîvanan digire.
Ji bo tiştên xwedan jiyanek kurt (kar an karek kronî) ku dibe ku di navbera heyamên qirkirinê de xuya bibin, pêkhateyek Pushgateway heye. Metrîkên ji tiştên kurt-kurt di nav wê de têne avêtin: kar rabû, çalakî qedand, metrîk şandin Pushgateway û qedand. Piştî demekê, Prometheus dê bi leza xwe biçe û van metrikan ji Pushgateway bigire.
Ji bo mîhengkirina ragihandinan di Prometheus de hêmanek cûda heye - Alertmanager. Û qaîdeyên hişyariyê. Mînakî, heke server API 0 be divê hûn hişyariyek biafirînin. Dema ku bûyer were destpêkirin, hişyarî ji bo şandina bêtir ji rêveberê hişyariyê re tê şandin. Rêvebirê hişyariyê xwedan mîhengên rêveçûnê pir maqûl e: komek hişyarî dikare ji sohbeta telegramê ya rêvebiran re, ya din ji sohbeta pêşdebiran re, û ya sêyemîn jî ji sohbeta xebatkarên binesaziyê re were şandin. Agahdarî dikarin ji Slack, Telegram, e-name û kanalên din re bêne şandin.
Û di dawiyê de, ez ê ji we re behsa taybetmendiya kujerê Prometheus bikim - kifşkirina. Dema ku hûn bi Prometheus re dixebitin, ne hewce ye ku hûn navnîşanên taybetî yên ji bo çavdêriyê diyar bikin, bes e ku hûn celebê wan diyar bikin. Ango, ne hewce ye ku hûn binivîsin "li vir navnîşana IP-yê ye, li vir port - çavdêr e", li şûna wê hûn hewce ne ku hûn bi kîjan prensîban diyar bikin ku hûn van tiştan bibînin (armanca - armanc). Prometheus bixwe, li gorî kîjan tiştên ku niha çalak in, yên pêwîst dikişîne û li çavdêriyê zêde dike.
Ev nêzîkatî bi strukturên Kubernetes re baş li hev tê, ku her tişt jî diherike: îro 10 pêşkêşker hene, sibê 3. Ji bo ku her car navnîşana IP-ya serverê destnîşan nekin, me carekê nivîsand ku meriv wê çawa bibîne - û Discovering dê wiya bike.
Ji zimanê Prometheus re tê gotin PromQL. Bi karanîna vî zimanî, hûn dikarin nirxên metrîkên taybetî bistînin û dûv re wan veguherînin û li ser bingeha wan hesabên analîtîk ava bikin.
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)Navbera malperê ya Prometheus
Prometheus xwedan navgîniya webê ya xweya hindiktirîn e. Tenê ji bo debugging an xwenîşandanê maqûl e.

Hûn dikarin pirsek li PromQL di xeta Expression de binivîsin.
Tabloya Alerts qaîdeyên hişyarkirinê dihewîne, û sê statûyên wan hene:
- neçalak - heke hişyarî di vê gavê de ne çalak be, ango, her tişt pê re baş e, û ew nexebitî;
- li bendê - ev e ku heke hişyarî hatibe dest pê kirin, lê şandin hîn pêk nehatiye. Dereng ji bo telafîkirina lêxistina torê tê danîn: heke karûbarê diyarkirî di nav deqîqeyek de rabe, wê hingê hîna ne hewce ye ku alarmê were lêdan;
- gulebarana statûya sêyemîn e, dema ku hişyar ronî dibe û peyaman dişîne.
Di menuya Rewşê de hûn ê bigihîjin agahdariya ku Prometheus çi ye. Di heman demê de veguheztinek ji bo armancên ku me li jor behs kir jî heye.

Ji bo hûrguliyek berfirehtir a pêwendiya Prometheus, binêre .
Yekbûnek bi Grafana re
Di navbeynkariya webê ya Prometheus de hûn ê grafikên xweşik û têgihîştî yên ku hûn dikarin li ser rewşa komê encaman derxînin nabînin. Ji bo avakirina wan, Prometheus bi Grafana re yek dike. Ev tabloyên ku em digirin ev in.

Sazkirina entegrasyona Prometheus û Grafana qet ne dijwar e ku di belgeyê de têne dîtin: , erê, ez ê li vir biqedînim.
Di gotarên jêrîn de em ê mijara çavdêriyê bidomînin: em ê li ser berhevkirin û analîzkirina têketin bi karanîna Grafana Loki û amûrên alternatîf biaxivin.
Nivîskar: Marcel Ibraev, rêveberê pejirandî Kubernetes, di pargîdaniyê de endezyar pratîk , axaftvan û pêşdebirê qursa Slurm.
Source: www.habr.com
