Siveyans yon Cluster Kubernetes: Yon Apèsi ak Entwodiksyon nan Prometheus

Konsidere konsèp siveyans Kubernetes, fè konesans ak zouti Prometheus la, epi pale sou alèt.

Sijè a nan siveyans se volumineuz, li pa ka demonte nan yon sèl atik. Objektif tèks sa a se bay yon apèsi sou zouti, konsèp ak apwòch yo.

Materyèl la nan atik la se yon peze soti nan konferans ouvè nan lekòl la "Slurm". Si ou vle pran yon kou konplè - enskri pou yon kou sou Siveyans ak anrejistreman enfrastrikti nan Kubernetes.

Siveyans yon Cluster Kubernetes: Yon Apèsi ak Entwodiksyon nan Prometheus

Ki sa ki kontwole nan yon gwoup Kubernetes

Siveyans yon Cluster Kubernetes: Yon Apèsi ak Entwodiksyon nan Prometheus

sèvè fizik yo. Si gwoup Kubernetes la deplwaye sou sèvè li yo, ou bezwen kontwole sante yo. Zabbix okipe travay sa a; si ou travay avè l ', Lè sa a, ou pa bezwen refize, pa pral gen konfli. Li se Zabbix ki kontwole eta a nan serveurs nou yo.

Ann ale nan siveyans nan nivo gwoup la.

Konpozan avyon kontwòl: API, Scheduler ak lòt moun. Nan yon minimòm, ou bezwen asire w ke API a nan serveurs oswa etcd pi gran pase 0. Etcd ka retounen yon anpil nan mezi: pa disk yo sou ki li ap vire, pa sante nan gwoup etcd li yo, ak lòt moun.

Koupre parèt yon bon bout tan de sa ak tout moun byen okouran de pwoblèm li yo: yon anpil nan resipyan jenere jele ak lòt pwoblèm. Se poutèt sa, Docker tèt li, kòm yon sistèm, ta dwe tou kontwole, omwen pou disponiblite.

dns. Si DNS tonbe nan gwoup la, Lè sa a, tout sèvis Dekouvèt la pral tonbe apre li, apèl soti nan gous nan gous yo ap sispann travay. Nan pratik mwen an, pa te gen okenn pwoblèm sa yo, men sa pa vle di ke eta a nan DNS la pa bezwen kontwole. Demann latansi ak kèk lòt mezi ka swiv sou CoreDNS.

Antre. Li nesesè pou kontwole disponiblite antre (ki gen ladan Ingress Controller) kòm pwen antre nan pwojè a.

Konpozan prensipal yo nan gwoup la yo te demoute - kounye a ann desann nan nivo nan abstraksyon.

Li ta sanble ke aplikasyon yo kouri nan gous, ki vle di yo bezwen kontwole, men an reyalite yo pa. Gous yo efemèr: jodi a yo kouri sou yon sèvè, demen sou yon lòt; jodi a gen 10 ladan yo, demen 2. Se poutèt sa, pèsonn pa kontwole gous yo. Nan yon achitekti mikwosèvis, li pi enpòtan pou kontwole disponiblite aplikasyon an kòm yon antye. An patikilye, tcheke disponiblite a nan pwen final sèvis yo: fè anyen travay? Si aplikasyon an disponib, Lè sa a, sa k ap pase dèyè li, konbyen kopi yo kounye a - sa yo se kesyon nan dezyèm lòd la. Pa gen okenn nesesite pou kontwole ka endividyèl yo.

Nan dènye nivo a, ou bezwen kontwole operasyon an nan aplikasyon an tèt li, pran mezi biznis: kantite lòd, konpòtman itilizatè, ak sou sa.

Prometheus

Pi bon sistèm pou kontwole yon gwoup se Prometheus. Mwen pa konnen okenn zouti ki ka matche ak Prometheus an tèm de bon jan kalite ak fasilite nan itilize. Li bon pou enfrastrikti fleksib, kidonk lè yo di "siveyans Kubernetes", anjeneral yo vle di Prometheus.

Gen yon koup nan opsyon pou kòmanse ak Prometheus: lè l sèvi avèk Helm, ou ka enstale yon Prometheus oswa yon Operatè Prometheus regilye.

  1. Prometheus regilye. Tout bagay anfòm avè l ', men ou bezwen konfigirasyon ConfigMap - an reyalite, ekri dosye konfigirasyon ki baze sou tèks, jan nou te fè anvan, anvan achitekti mikwosèvis la.
  2. Operatè Prometheus se yon ti kras plis gaye, yon ti kras pi konplike an tèm de lojik entèn, men li pi fasil pou travay avèk li: gen objè separe, abstraksyon yo ajoute nan gwoup la, kidonk yo pi pratik kontwole ak konfigirasyon.

Pou konprann pwodwi a, mwen rekòmande enstale Prometheus regilye a an premye. Ou pral oblije configured tout bagay atravè konfigirasyon an, men sa a pral benefisye: ou pral konnen ki sa ki fè pati ki sa ak ki jan li se configuré. Nan Operatè Prometheus, ou imedyatman monte nan yon abstraksyon pi wo, byenke ou ka tou fouye nan fon lanmè yo si ou vle.

Prometheus byen entegre ak Kubernetes: li ka jwenn aksè ak kominike avèk sèvè API a.

Prometheus se popilè, se poutèt sa yon gwo kantite aplikasyon ak lang pwogram sipòte li. Sipò nesesè, paske Prometheus gen pwòp fòma metrik li yo, epi pou transfere li, ou bezwen swa yon bibliyotèk andedan aplikasyon an oswa yon ekspòtatè pare. E gen anpil ekspòtatè sa yo. Pou egzanp, gen PostgreSQL Exporter: li pran done ki soti nan PostgreSQL epi konvèti li nan fòma Prometheus pou Prometheus ka travay avèk li.

Achitekti Prometheus

Siveyans yon Cluster Kubernetes: Yon Apèsi ak Entwodiksyon nan Prometheus

Sèvè Prometheus se fen dèyè, sèvo Prometheus. Paramèt yo estoke ak trete isit la.

Paramèt yo estoke nan baz done seri tan (TSDB). TSDB se pa yon baz done separe, men se yon pake nan lang Go ki entegre nan Prometheus. Apeprè pale, tout bagay se nan yon sèl binè.

Pa estoke done nan TSDB pou yon tan long

Enfrastrikti Prometheus la pa apwopriye pou depo mezi alontèm. Peryòd retansyon default la se 15 jou. Ou ka depase limit sa a, men kenbe nan tèt ou: plis ou estoke done nan TSDB ak plis ou fè li, plis resous li pral konsome. Sere done istorik nan Prometheus konsidere kòm move pratik.

Si ou gen gwo trafik, kantite mezi se dè santèn de milye pou chak segonn, Lè sa a, li pi bon pou limite depo yo pa espas ki gen kapasite oswa pa peryòd. Anjeneral, "done cho" yo estoke nan TSDB, mezi nan jis kèk èdtan. Pou depo pi long, yo itilize depo ekstèn nan baz done sa yo ki vrèman apwopriye pou sa a, pou egzanp, InfluxDB, ClickHouse, ak sou sa. Mwen te wè plis bon revi sou ClickHouse.

Prometheus Server ap travay sou modèl la rale: li ale pou metrik nan pwen final sa yo ke nou te ba l '. Yo te di: "ale nan sèvè API a", epi li ale la chak n-yèm kantite segonn epi li pran mezi yo.

Pou objè ki gen yon lavi kout (travay oswa travay cron) ki ka parèt ant peryòd grate, gen yon eleman Pushgateway. Metric ki soti nan objè a kout tèm yo pouse nan li: travay la te monte, fè yon aksyon, voye mezi nan Pushgateway epi fini. Apre yon ti tan, Prometheus pral desann nan pwòp vitès li epi ranmase mezi sa yo nan Pushgateway.

Pou konfigirasyon notifikasyon nan Prometheus gen yon eleman separe - Alertmanager. Ak règ alèt yo. Pou egzanp, ou bezwen kreye yon alèt si API sèvè a se 0. Lè evènman an dife, alèt la pase bay manadjè alèt la pou plis dispatch. Manadjè alèt la gen anviwònman routage byen fleksib: yon gwoup alèt ka voye nan chat telegram admin yo, yon lòt nan chat devlopè yo, ak yon twazyèm nan chat travayè enfrastrikti yo. Yo ka voye notifikasyon nan Slack, Telegram, imel, ak lòt chanèl.

Epi finalman, mwen pral di ou sou karakteristik nan asasen Prometheus - Dekouvri. Lè w ap travay ak Prometheus, ou pa bezwen presize adrès espesifik objè pou kontwole, li ase yo mete kalite yo. Sa vle di, ou pa bezwen ekri "isit la se adrès IP la, isit la se pò a - kontwole", olye de sa, ou bezwen detèmine pa ki prensip yo jwenn objè sa yo (objektif - objektif). Prometheus tèt li, tou depann de ki objè yo aktif kounye a, rale moute sa ki nesesè yo epi ajoute yo nan siveyans.

Apwòch sa a adapte byen ak estrikti Kubernetes la, kote tout bagay tou flote: jodi a gen 10 serveurs, demen 3. Yo nan lòd yo pa presize adrès IP sèvè a chak fwa, yo te ekri yon fwa ki jan yo jwenn li - ak Discovering pral fè li. .

Yo rele lang Prometheus PromQL. Sèvi ak langaj sa a, ou ka jwenn valè yo nan metrik espesifik ak Lè sa a, konvèti yo, bati kalkil analyse ki baze sou yo.

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)

Entèfas entènèt Prometheus

Prometheus gen pwòp koòdone entènèt li yo, san patipri minimalist. Sèlman apwopriye pou debug oswa demonstrasyon.

Siveyans yon Cluster Kubernetes: Yon Apèsi ak Entwodiksyon nan Prometheus

Nan liy ekspresyon an, ou ka ekri yon rechèch nan lang PromQL.

Tab Avètisman an gen règ avètisman, epi yo gen twa estati:

  1. inaktif - si alèt la pa aktif nan moman sa a, se sa ki, tout bagay anfòm ak li, epi li pa t 'travay;
  2. annatant - sa a se si alèt la te travay, men voye a poko pase. Reta a fikse pou konpanse pou rezo clignotant: si sèvis espesifye a te monte nan yon minit, alam la pa ta dwe ankò sonnen;
  3. tire se twazyèm estati a lè alèt la limen epi voye mesaj.

Nan meni Status la ou pral jwenn aksè a enfòmasyon sou kisa Prometheus ye. Genyen tou yon tranzisyon nan objektif yo (sib), ki nou te pale sou pi wo a.

Siveyans yon Cluster Kubernetes: Yon Apèsi ak Entwodiksyon nan Prometheus

Pou yon BECA pi detaye sou koòdone Prometheus la, gade nan konferans Slurm a sou siveyans yon gwoup Kubernetes.

Entegrasyon ak Grafana

Nan koòdone entènèt Prometheus la, ou p ap jwenn graf bèl ak konprann ki soti nan ki ou ka tire yon konklizyon sou eta a nan gwoup la. Pou konstwi yo, Prometheus entegre ak Grafana. Nou jwenn tablodbò sa yo.

Siveyans yon Cluster Kubernetes: Yon Apèsi ak Entwodiksyon nan Prometheus

Mete kanpe entegrasyon Prometheus ak Grafana pa difisil ditou, ou ka jwenn enstriksyon nan dokiman an: GRAFANA SIPÒ POU PROMETHEUSOke, mwen pral fini ak sa a.

Nan atik sa yo, nou pral kontinye sijè a nan siveyans: nou pral pale sou kolekte ak analize mòso bwa lè l sèvi avèk Grafana Loki ak zouti altènatif.

Otè: Marcel Ibraev, sètifye administratè Kubernetes, pratike enjenyè nan konpayi an pon sid, oratè ak pwomotè kou Slurm.

Sous: www.habr.com

Add nouvo kòmantè