Monitro Clwstwr Kubernetes: Trosolwg a Chyflwyniad i Prometheus

Ystyriwch y cysyniad o fonitro Kubernetes, ymgyfarwyddwch ag offeryn Prometheus, a siaradwch am rybuddio.

Mae pwnc monitro yn swmpus, ni ellir ei ddadosod mewn un erthygl. Pwrpas y testun hwn yw rhoi trosolwg o'r offer, y cysyniadau a'r dulliau gweithredu.

Mae deunydd yr erthygl yn wasgfa o darlith agored yr ysgol "Slurm". Os ydych chi eisiau dilyn cwrs llawn - cofrestrwch ar gyfer cwrs ar Monitro a logio seilwaith yn Kubernetes.

Monitro Clwstwr Kubernetes: Trosolwg a Chyflwyniad i Prometheus

Beth sy'n cael ei fonitro mewn clwstwr Kubernetes

Monitro Clwstwr Kubernetes: Trosolwg a Chyflwyniad i Prometheus

gweinyddion corfforol. Os yw clwstwr Kubernetes yn cael ei ddefnyddio ar ei weinyddion, mae angen i chi fonitro eu hiechyd. Zabbix sy'n delio â'r dasg hon; os ydych chi'n gweithio gydag ef, yna nid oes angen i chi wrthod, ni fydd unrhyw wrthdaro. Zabbix sy'n monitro cyflwr ein gweinyddion.

Gadewch i ni symud ymlaen at fonitro ar lefel clwstwr.

Cydrannau Awyren Reoli: API, Trefnydd ac eraill. Ar y lleiaf, mae angen i chi sicrhau bod API gweinyddwyr neu ac ati yn fwy na 0. Gall ac ati ddychwelyd llawer o fetrigau: gan y disgiau y mae'n nyddu arnynt, gan iechyd ei glwstwr ac ati, ac eraill.

Docker ymddangos amser maith yn ôl ac mae pawb yn ymwybodol iawn o'i broblemau: mae llawer o gynwysyddion yn cynhyrchu rhew a phroblemau eraill. Felly, dylai Docker ei hun, fel system, gael ei reoli hefyd, o leiaf ar gyfer argaeledd.

dns. Os bydd DNS yn disgyn i ffwrdd yn y clwstwr, yna bydd y gwasanaeth Discovery cyfan yn disgyn ar ei ôl, bydd galwadau o godau i godennau'n rhoi'r gorau i weithio. Yn fy arfer, nid oedd unrhyw broblemau o'r fath, ond nid yw hyn yn golygu nad oes angen monitro cyflwr y DNS. Gellir olrhain hwyrni ceisiadau a rhai metrigau eraill ar CoreDNS.

Dod i mewn. Mae angen rheoli argaeledd mewnlifiadau (gan gynnwys y Rheolwr Mynediad) fel pwyntiau mynediad i'r prosiect.

Mae prif gydrannau'r clwstwr wedi'u datgymalu - nawr gadewch i ni fynd i lawr i lefel y tyniadau.

Mae'n ymddangos bod cymwysiadau'n rhedeg mewn codennau, sy'n golygu bod angen eu rheoli, ond mewn gwirionedd nid ydynt. Mae codennau'n fyrhoedlog: heddiw maent yn rhedeg ar un gweinydd, yfory ar un arall; heddiw mae 10 ohonyn nhw, yfory 2. Felly, does neb yn monitro'r codennau. O fewn pensaernïaeth microservice, mae'n bwysicach rheoli argaeledd y cais yn ei gyfanrwydd. Yn benodol, gwiriwch argaeledd pwyntiau terfyn gwasanaeth: a oes unrhyw beth yn gweithio? Os yw'r cais ar gael, yna beth sy'n digwydd y tu ôl iddo, faint o atgynhyrchiadau sydd nawr - cwestiynau o'r ail orchymyn yw'r rhain. Nid oes angen monitro achosion unigol.

Ar y lefel olaf, mae angen i chi fonitro gweithrediad y cais ei hun, cymryd metrigau busnes: nifer yr archebion, ymddygiad defnyddwyr, ac ati.

Prometheus

Y system orau ar gyfer monitro clwstwr yw Prometheus. Nid wyf yn gwybod am unrhyw offeryn a all gyd-fynd â Prometheus o ran ansawdd a rhwyddineb defnydd. Mae'n wych ar gyfer seilwaith hyblyg, felly pan fyddant yn dweud "Kubernetes monitro", maent fel arfer yn golygu Prometheus.

Mae yna ddau opsiwn ar gyfer dechrau gyda Prometheus: gan ddefnyddio Helm, gallwch chi osod Prometheus neu Weithredydd Prometheus rheolaidd.

  1. Prometheus Rheolaidd. Mae popeth yn iawn gydag ef, ond mae angen i chi ffurfweddu ConfigMap - mewn gwirionedd, ysgrifennwch ffeiliau cyfluniad yn seiliedig ar destun, fel y gwnaethom o'r blaen, cyn y bensaernïaeth microservice.
  2. Mae Gweithredwr Prometheus ychydig yn fwy gwasgaredig, ychydig yn fwy cymhleth o ran rhesymeg fewnol, ond mae'n haws gweithio gydag ef: mae gwrthrychau ar wahân, mae tyniadau'n cael eu hychwanegu at y clwstwr, felly maent yn llawer mwy cyfleus i'w rheoli a'u ffurfweddu.

Er mwyn deall y cynnyrch, rwy'n argymell gosod y Prometheus rheolaidd yn gyntaf. Bydd yn rhaid i chi ffurfweddu popeth trwy'r ffurfwedd, ond bydd hyn yn fuddiol: byddwch chi'n darganfod beth sy'n perthyn i beth a sut mae wedi'i ffurfweddu. Yn Prometheus Operator, rydych yn codi ar unwaith i dyniad yn uwch, er y gallwch chi hefyd dreiddio i'r dyfnder os dymunwch.

Mae Prometheus wedi'i integreiddio'n dda â Kubernetes: gall gyrchu a rhyngweithio â'r Gweinydd API.

Mae Prometheus yn boblogaidd ac yn cael ei gefnogi gan nifer fawr o gymwysiadau ac ieithoedd rhaglennu. Mae angen cefnogaeth oherwydd bod gan Prometheus ei fformat metrigau ei hun, ac i'w drosglwyddo mae angen naill ai llyfrgell y tu mewn i'r rhaglen neu allforiwr parod. Ac mae yna lawer iawn o allforwyr o'r fath. Er enghraifft, mae PostgreSQL Exporter: mae'n cymryd data o PostgreSQL ac yn ei drosi i fformat Prometheus fel y gall Prometheus weithio gydag ef.

pensaernïaeth Prometheus

Monitro Clwstwr Kubernetes: Trosolwg a Chyflwyniad i Prometheus

Gweinydd Prometheus yw pen ôl, ymennydd Prometheus. Mae metrigau yn cael eu storio a'u prosesu yma.

Mae'r metrigau'n cael eu storio yn y gronfa ddata cyfres amser (TSDB). Nid cronfa ddata ar wahân yw TSDB, ond pecyn yn yr iaith Go sydd wedi'i fewnosod yn Prometheus. Yn fras, mae popeth mewn un deuaidd.

Peidiwch â storio data yn TSDB am amser hir

Nid yw seilwaith Prometheus yn addas ar gyfer storio metrigau yn y tymor hir. Y cyfnod cadw rhagosodedig yw 15 diwrnod. Gallwch fynd dros y terfyn hwn, ond cofiwch: po fwyaf o ddata rydych chi'n ei storio yn TSDB a pho hiraf y byddwch chi'n ei wneud, y mwyaf o adnoddau y bydd yn eu defnyddio. Ystyrir bod storio data hanesyddol yn Prometheus yn arfer gwael.

Os oes gennych draffig enfawr, mae nifer y metrigau yn gannoedd o filoedd yr eiliad, yna mae'n well cyfyngu ar eu storio yn ôl gofod disg neu gyfnod. Fel arfer, mae “data poeth” yn cael ei storio yn TSDB, metrigau mewn ychydig oriau yn unig. Ar gyfer storio hirach, defnyddir storio allanol yn y cronfeydd data hynny sy'n wirioneddol addas ar gyfer hyn, er enghraifft, InfluxDB, ClickHouse, ac ati. Gwelais fwy o adolygiadau da am ClickHouse.

Mae Prometheus Server yn gweithio yn ôl y model tynnu: mae'n mynd am fetrigau i'r pwyntiau terfyn hynny a roddasom iddo. Dywedon nhw: “ewch i'r Gweinydd API”, ac mae'n mynd yno bob n-fed nifer o eiliadau ac yn cymryd y metrigau.

Ar gyfer gwrthrychau ag oes fer (swydd swydd neu cron) a all ymddangos rhwng cyfnodau crafu, mae yna gydran Pushgateway. Mae metrigau o wrthrychau tymor byr yn cael eu gwthio i mewn iddo: mae'r swydd wedi codi, wedi cyflawni gweithred, wedi anfon metrigau i Pushgateway ac wedi'i chwblhau. Ar ôl ychydig, bydd Prometheus yn dod i lawr ar ei gyflymder ei hun ac yn codi'r metrigau hyn o Pushgateway.

I ffurfweddu hysbysiadau yn Prometheus mae cydran ar wahân - Rheolwr rhybuddion. A'r rheolau rhybuddio. Er enghraifft, mae angen i chi greu rhybudd os yw API y gweinydd yn 0. Pan fydd y digwyddiad yn tanio, caiff y rhybudd ei drosglwyddo i'r rheolwr rhybuddio i'w anfon ymhellach. Mae gan y rheolwr rhybuddio osodiadau llwybro eithaf hyblyg: gellir anfon un grŵp o rybuddion i sgwrs telegram y gweinyddwyr, un arall i sgwrs y datblygwyr, a thraean i sgwrs y gweithwyr seilwaith. Gellir anfon hysbysiadau i Slack, Telegram, e-bost, a sianeli eraill.

Ac yn olaf, dywedaf wrthych am nodwedd llofrudd Prometheus - Darganfod. Wrth weithio gyda Prometheus, nid oes angen i chi nodi cyfeiriadau penodol o wrthrychau ar gyfer monitro, mae'n ddigon i osod eu math. Hynny yw, nid oes angen i chi ysgrifennu "dyma'r cyfeiriad IP, dyma'r porthladd - monitor", yn lle hynny, mae angen i chi benderfynu yn ôl pa egwyddorion i ddod o hyd i'r gwrthrychau hyn (targedau - nodau). Mae Prometheus ei hun, yn dibynnu ar ba wrthrychau sy'n weithredol ar hyn o bryd, yn tynnu'r rhai angenrheidiol i fyny ac yn eu hychwanegu at fonitro.

Mae'r dull hwn yn cyd-fynd yn dda â strwythur Kubernetes, lle mae popeth hefyd yn arnofio: heddiw mae gweinyddwyr 10, yfory 3. Er mwyn peidio â nodi cyfeiriad IP y gweinydd bob tro, ysgrifennon nhw unwaith sut i ddod o hyd iddo - a bydd Darganfod yn ei wneud .

Gelwir yr iaith Prometheus PromQL. Gan ddefnyddio'r iaith hon, gallwch gael gwerthoedd metrigau penodol ac yna eu trosi, adeiladu cyfrifiadau dadansoddol yn seiliedig arnynt.

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)

Rhyngwyneb gwe Prometheus

Mae gan Prometheus ei ryngwyneb gwe eithaf minimalaidd ei hun. Dim ond yn addas ar gyfer dadfygio neu arddangosiad.

Monitro Clwstwr Kubernetes: Trosolwg a Chyflwyniad i Prometheus

Yn y llinell Mynegiant, gallwch ysgrifennu ymholiad yn iaith PromQL.

Mae'r tab Rhybuddion yn cynnwys rheolau rhybuddio, ac mae ganddyn nhw dri statws:

  1. anactif - os nad yw'r rhybudd yn weithredol ar hyn o bryd, hynny yw, mae popeth yn iawn ag ef, ac ni weithiodd;
  2. yn yr arfaeth - mae hyn os yw'r rhybudd wedi'i sbarduno, ond nid yw'r anfon wedi digwydd eto. Mae'r oedi wedi'i osod i wneud iawn am amrantu rhwydwaith: os yw'r gwasanaeth penodedig wedi codi o fewn munud, yna nid oes angen seinio'r larwm eto;
  3. tanio yw'r trydydd statws pan fydd y rhybudd yn goleuo ac yn anfon negeseuon.

Yn y ddewislen Statws fe welwch fynediad i wybodaeth am beth yw Prometheus. Mae yna hefyd drawsnewidiad i'r nodau y soniasom amdanynt uchod.

Monitro Clwstwr Kubernetes: Trosolwg a Chyflwyniad i Prometheus

Am drosolwg manylach o ryngwyneb Prometheus, gw yn narlith Slurm ar fonitro clwstwr Kubernetes.

Integreiddio â Grafana

Yn y rhyngwyneb gwe Prometheus, ni fyddwch yn dod o hyd i graffiau hardd a dealladwy y gallwch ddod i gasgliad am gyflwr y clwstwr ohonynt. Er mwyn eu hadeiladu, mae Prometheus wedi'i integreiddio â Grafana. Rydym yn cael dangosfyrddau o'r fath.

Monitro Clwstwr Kubernetes: Trosolwg a Chyflwyniad i Prometheus

Nid yw sefydlu integreiddiad Prometheus a Grafana yn anodd o gwbl; gellir dod o hyd i gyfarwyddiadau yn y ddogfennaeth: CEFNOGAETH GRAFANA I PROMETHEUSWel, fe ddiweddaf gyda hyn.

Yn yr erthyglau canlynol, byddwn yn parhau â'r pwnc monitro: byddwn yn siarad am gasglu a dadansoddi logiau gan ddefnyddio Grafana Loki ac offer amgen.

Awdur: Marcel Ibraev, gweinyddwr ardystiedig Kubernetes, peiriannydd gweithredol yn y cwmni Southbridge, siaradwr a datblygwr cwrs Slurm.

Ffynhonnell: hab.com

Ychwanegu sylw