Abojuto iṣupọ Kubernetes kan: Akopọ ati Ifihan si Prometheus

Jẹ ki a wo imọran ti ibojuwo Kubernetes, faramọ pẹlu irinṣẹ Prometheus, ati sọrọ nipa titaniji.

Koko-ọrọ ti ibojuwo jẹ iwọn; ko le ṣe bo ninu nkan kan. Idi ti ọrọ yii ni lati pese akopọ ti awọn irinṣẹ, awọn imọran, ati awọn isunmọ.

Ìwé ohun elo - jade lati ìmọ ọjọgbọn ni Slurm School. Ti o ba fẹ gba ikẹkọ ni kikun, forukọsilẹ fun ikẹkọ kan lori Abojuto ati gedu amayederun ni Kubernetes.

Abojuto iṣupọ Kubernetes kan: Akopọ ati Ifihan si Prometheus

Kini abojuto ni iṣupọ Kubernetes kan

Abojuto iṣupọ Kubernetes kan: Akopọ ati Ifihan si Prometheus

Awọn olupin ti ara. Ti iṣupọ Kubernetes ti wa ni ransogun lori awọn olupin tirẹ, o nilo lati ṣe atẹle ilera wọn. Zabbix mu iṣẹ yii ṣiṣẹ; ti o ba ṣiṣẹ pẹlu rẹ, lẹhinna ko si ye lati kọ, ko si awọn ija. O jẹ Zabbix ti o ṣe abojuto ipo awọn olupin wa.

Jẹ ki a tẹsiwaju si ibojuwo ni ipele iṣupọ.

Awọn paati Iṣakoso ofurufu: API, Iṣeto ati awọn miiran. Ni o kere ju, o nilo lati ṣe atẹle pe API olupin tabi etcd tobi ju 0. Etcd le pese ọpọlọpọ awọn metiriki: lori awọn disiki lori eyiti o yika, lori ilera ti iṣupọ etcd rẹ, ati awọn miiran.

Docker farahan ni igba pipẹ sẹhin ati pe gbogbo eniyan mọ awọn iṣoro rẹ daradara: ọpọlọpọ awọn apoti fa awọn didi ati awọn iṣoro miiran. Nitorinaa, Docker funrararẹ, gẹgẹbi eto, yẹ ki o tun ṣe abojuto, o kere ju fun wiwa.

dns. Ti DNS ba kuna ninu iṣupọ kan, lẹhinna gbogbo iṣẹ Awari yoo tun kuna, ati awọn ipe lati awọn adarọ-ese si awọn adarọ-ese yoo da iṣẹ duro. Ninu iṣe mi, ko si iru awọn iṣoro bẹ, ṣugbọn eyi ko tumọ si pe ipo DNS ko nilo lati ṣe abojuto. Ibere ​​idaduro ati diẹ ninu awọn metiriki miiran le ṣe tọpinpin lori CoreDNS.

Ibẹrẹ. O jẹ dandan lati ṣakoso wiwa ti awọn ingresses (pẹlu Alakoso Ingress) bi awọn aaye titẹsi sinu iṣẹ akanṣe naa.

Awọn paati akọkọ ti iṣupọ naa ti tuka - ni bayi jẹ ki a lọ si isalẹ, si ipele ti awọn abstractions.

Yoo dabi pe awọn ohun elo nṣiṣẹ ni awọn adarọ-ese, eyiti o tumọ si pe wọn nilo lati ṣakoso, ṣugbọn ni otitọ wọn ko ṣe. Pods jẹ ephemeral: loni wọn ṣiṣẹ lori olupin kan, ọla lori omiiran; Loni 10 wa ninu wọn, ọla 2. Eyi ni idi ti ko si ẹnikan ti o ṣe abojuto awọn podu. Ninu faaji microservice, o ṣe pataki diẹ sii lati ṣakoso wiwa ohun elo naa lapapọ. Ni pato, ṣayẹwo wiwa awọn aaye ipari iṣẹ: Njẹ ohunkohun n ṣiṣẹ? Ti ohun elo naa ba wa, lẹhinna kini o n ṣẹlẹ lẹhin rẹ, melo ni awọn ẹda ti o wa ni bayi - iwọnyi jẹ awọn ibeere aṣẹ-keji. Ko si ye lati ṣe atẹle awọn iṣẹlẹ kọọkan.

Ni ipele ti o kẹhin, o nilo lati ṣe atẹle iṣẹ ti ohun elo funrararẹ, mu awọn metiriki iṣowo: nọmba awọn aṣẹ, ihuwasi olumulo, ati bẹbẹ lọ.

Ipolowo

Eto ti o dara julọ fun mimojuto iṣupọ ni Ipolowo. Emi ko mọ ohun elo eyikeyi ti o le ṣe afiwe si Prometheus ni awọn ofin ti didara ati irọrun lilo. O jẹ nla fun awọn amayederun agile, nitorinaa nigbati eniyan ba sọ “abojuto Kubernetes” wọn nigbagbogbo tumọ si Prometheus.

Awọn aṣayan meji wa fun ibẹrẹ pẹlu Prometheus: lilo Helm, o le fi Prometheus deede tabi oniṣẹ Prometheus sori ẹrọ.

  1. Prometheus deede. Ohun gbogbo dara pẹlu rẹ, ṣugbọn o nilo lati tunto ConfigMap - pataki, kọ awọn faili iṣeto ọrọ, bi a ti ṣe tẹlẹ, ṣaaju faaji microservice.
  2. Oluṣeto Prometheus jẹ iwọn diẹ sii, eka diẹ sii ninu ọgbọn inu rẹ, ṣugbọn o rọrun lati ṣiṣẹ pẹlu: awọn nkan lọtọ wa, awọn abstractions ti wa ni afikun si iṣupọ, nitorinaa wọn rọrun pupọ lati ṣakoso ati tunto.

Lati loye ọja naa, Mo ṣeduro fifi Prometheus deede sori ẹrọ ni akọkọ. Iwọ yoo ni lati tunto ohun gbogbo nipasẹ atunto, ṣugbọn eyi yoo jẹ anfani: iwọ yoo loye ohun ti o jẹ ti kini ati bii o ṣe tunto. Ni Prometheus Operator, o dide lẹsẹkẹsẹ si abstraction ti o ga julọ, botilẹjẹpe ti o ba fẹ, o tun le lọ sinu awọn ijinle.

Prometheus ti ṣepọ daradara pẹlu Kubernetes: o le wọle ati ṣe ajọṣepọ pẹlu olupin API.

Prometheus jẹ olokiki ati atilẹyin nipasẹ nọmba nla ti awọn ohun elo ati awọn ede siseto. A nilo atilẹyin nitori Prometheus ni ọna kika metiriki tirẹ, ati lati gbe lọ o nilo boya ile-ikawe inu ohun elo tabi olutaja ti o ti ṣetan. Ati pe ọpọlọpọ iru awọn olutaja naa wa. Fun apẹẹrẹ, PostgreSQL Exporter wa: o gba data lati PostgreSQL o si yi pada si ọna kika Prometheus ki Prometheus le ṣiṣẹ pẹlu rẹ.

Prometheus faaji

Abojuto iṣupọ Kubernetes kan: Akopọ ati Ifihan si Prometheus

Olupin Prometheus - Eyi ni apakan olupin, ọpọlọ ti Prometheus. Eyi ni ibi ti awọn metiriki ti wa ni ipamọ ati ti ni ilọsiwaju.

Awọn metiriki naa wa ni ipamọ ni aaye data jara akoko (TSDB). TSDB kii ṣe aaye data lọtọ, ṣugbọn Go package ti a ṣe sinu Prometheus. Ni aijọju sọrọ, ohun gbogbo wa ni alakomeji kan.

Ma ṣe tọju data ni TSDB fun pipẹ

Awọn amayederun Prometheus ko dara fun ibi ipamọ igba pipẹ ti awọn metiriki. Akoko ipamọ aiyipada jẹ awọn ọjọ 15. O le kọja opin yii, ṣugbọn ni lokan: diẹ sii data ti o fipamọ sinu TSDB ati bi o ṣe gun to, awọn orisun diẹ sii yoo jẹ. Titoju data itan ni Prometheus jẹ iwa buburu.

Ti o ba ni ijabọ nla, nọmba awọn metiriki wa ni awọn ọgọọgọrun egbegberun fun iṣẹju kan, lẹhinna o dara lati ṣe idinwo ibi ipamọ wọn nipasẹ aaye disk tabi iye akoko. Ni deede, TSDB tọju “data gbigbona”, awọn metiriki lati gangan awọn wakati diẹ. Fun ibi ipamọ igba pipẹ, ibi ipamọ ita ni a lo ninu awọn apoti isura infomesonu ti o dara fun eyi, fun apẹẹrẹ InfluxDB, ClickHouse, ati bẹbẹ lọ. Mo rii awọn atunyẹwo to dara diẹ sii nipa ClickHouse.

Prometheus Server ṣiṣẹ ni ibamu si awoṣe Fa: on tikararẹ lọ fun awọn metiriki si awọn aaye ipari ti a fun u. Wọn sọ pe: “lọ si olupin API,” o si lọ sibẹ ni gbogbo nọmba nth ti awọn aaya ati gba awọn metiriki naa.

Fun awọn nkan ti o ni igbesi aye kukuru (iṣẹ tabi iṣẹ cron) ti o le han laarin awọn akoko fifọ, paati Pushgateway wa. Awọn wiwọn lati awọn nkan igba kukuru ni a tẹ sinu rẹ: iṣẹ naa dide, pari iṣẹ naa, firanṣẹ awọn metiriki si Pushgateway ati pari. Lẹhin akoko diẹ, Prometheus yoo lọ ni iyara tirẹ ati mu awọn metiriki wọnyi lati Pushgateway.

Lati tunto awọn iwifunni ni Prometheus paati lọtọ wa - Alakoso Itaniji. Ati awọn ofin gbigbọn. Fun apẹẹrẹ, o nilo lati ṣẹda titaniji ti API olupin ba jẹ 0. Nigbati iṣẹlẹ naa ba fa, titaniji naa ti kọja si oluṣakoso gbigbọn fun fifiranṣẹ siwaju sii. Oluṣakoso titaniji naa ni awọn eto ipa-ọna rọ pupọ: ẹgbẹ kan ti awọn titaniji le firanṣẹ si iwiregbe teligram ti admins, miiran si iwiregbe awọn olupilẹṣẹ, ati ẹkẹta si iwiregbe awọn oṣiṣẹ amayederun. Awọn iwifunni le firanṣẹ si Slack, Telegram, imeeli ati awọn ikanni miiran.

Ati nikẹhin, Emi yoo sọ fun ọ nipa ẹya apaniyan ti Prometheus - sawari. Nigbati o ba n ṣiṣẹ pẹlu Prometheus, iwọ ko nilo lati pato awọn adirẹsi pato ti awọn nkan lati ṣe atẹle; o to lati pato iru wọn. Iyẹn ni, ko si iwulo lati kọ “Eyi ni adiresi IP, eyi ni ibudo - atẹle”, dipo o nilo lati pinnu nipasẹ awọn ipilẹ wo lati wa awọn nkan wọnyi (afojusun - afojusun). Prometheus funrararẹ, ti o da lori iru awọn nkan ti n ṣiṣẹ lọwọlọwọ, fa awọn ti o ṣe pataki ati ṣafikun wọn si ibojuwo.

Ọna yii ni ibamu daradara pẹlu eto Kubernetes, nibiti ohun gbogbo tun ṣafo: loni awọn olupin 10 wa, ọla 3. Ni ibere ki o ma ṣe tọka adirẹsi IP olupin ni gbogbo igba, a kowe ni ẹẹkan bi o ṣe le rii - ati wiwa yoo ṣe.

Ede Prometheus ni a npe ni PromQL. Lilo ede yii, o le gba awọn iye ti awọn metiriki kan pato lẹhinna yi wọn pada ki o kọ awọn iṣiro itupalẹ ti o da lori wọn.

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)

Oju opo wẹẹbu Prometheus

Prometheus ni tirẹ, dipo oju opo wẹẹbu minimalistic. Dara nikan fun n ṣatunṣe aṣiṣe tabi ifihan.

Abojuto iṣupọ Kubernetes kan: Akopọ ati Ifihan si Prometheus

O le kọ ibeere kan ni PromQL ni laini Ikosile.

Awọn Itaniji taabu ni awọn ofin titaniji, ati pe wọn ni awọn ipo mẹta:

  1. aiṣiṣẹ - ti itaniji ko ba ṣiṣẹ ni akoko, iyẹn ni, ohun gbogbo dara pẹlu rẹ, ati pe ko ṣiṣẹ;
  2. ni isunmọtosi ni - eyi jẹ ti itaniji ba jẹ okunfa, ṣugbọn fifiranṣẹ ko tii waye. A ṣeto idaduro naa lati sanpada fun sisẹ nẹtiwọọki: ti iṣẹ ti a sọ pato ba ti dide laarin iṣẹju kan, lẹhinna ko si iwulo lati dun itaniji sibẹsibẹ;
  3. ibọn ni ipo kẹta, nigbati itaniji ba tan imọlẹ ati firanṣẹ awọn ifiranṣẹ.

Ninu akojọ ipo iwọ yoo wa iraye si alaye nipa kini Prometheus jẹ. Iyipada tun wa si awọn ibi-afẹde ti a ti sọrọ nipa loke.

Abojuto iṣupọ Kubernetes kan: Akopọ ati Ifihan si Prometheus

Fun alaye diẹ sii Akopọ ti wiwo Prometheus, wo ni Slurm ká ọjọgbọn lori mimojuto a Kubernetes iṣupọ.

Integration pẹlu Grafana

Ni wiwo oju opo wẹẹbu Prometheus iwọ kii yoo rii awọn aworan lẹwa ati oye lati eyiti o le fa awọn ipinnu nipa ipo iṣupọ naa. Lati kọ wọn, Prometheus ṣepọ pẹlu Grafana. Awọn wọnyi ni awọn dasibodu ti a gba.

Abojuto iṣupọ Kubernetes kan: Akopọ ati Ifihan si Prometheus

Ṣiṣeto isọpọ ti Prometheus ati Grafana ko nira rara; awọn ilana ni a le rii ninu iwe naa: GRAFANA support FUN PROMETHEUSdaradara, Emi yoo pari pẹlu eyi.

Ninu awọn nkan atẹle a yoo tẹsiwaju koko-ọrọ ti ibojuwo: a yoo sọrọ nipa ikojọpọ ati itupalẹ awọn igbasilẹ nipa lilo Grafana Loki ati awọn irinṣẹ omiiran.

Onkọwe: Marcel Ibraev, oluṣakoso Kubernetes ti a fọwọsi, ẹlẹrọ adaṣe ni ile-iṣẹ naa Southbridge, agbọrọsọ ati Slurm dajudaju developer.

orisun: www.habr.com

Fi ọrọìwòye kun