Loki - bailiú log ag baint úsáide as an gcur chuige Prometheus

Beannachtaí, cónaitheoirí Khabrovsk! Ar an oíche roimh thús clárúcháin nua don chúrsa "Cleachtais agus uirlisí DevOps" Tá aistriúchán d’ábhar suimiúil ullmhaithe againn duit.

Is réamhrá gairid é an t-alt seo ar Loki. Tionscadal Loki le tacaíocht ó Grafana agus tá sé dírithe ar bhailiú láraithe logaí (ó fhreastalaithe nó coimeádáin).

Ba é an príomh-inspioráid do Loki Prometheus leis an smaoineamh a chur chuige a chur i bhfeidhm maidir le bainistíocht loga:

  • ag baint úsáide as lipéid chun sonraí a stóráil
  • tomhaltas beag acmhainní

Fillfimid ar an gcaoi a n-oibríonn Prometheus agus tabharfaidh muid roinnt samplaí dá úsáid i gcomhthéacs Kubernetes.

Cúpla focal faoi Prometheus

Chun tuiscint iomlán a fháil ar an gcaoi a n-oibríonn Loki, tá sé tábhachtach céim siar a ghlacadh agus beagán cuimhneamh ar Prometheus.

Ceann de ghnéithe sainiúla Prometheus is ea méadracht a bhaint as pointí bailiúcháin (trí onnmhaireoirí) agus iad a stóráil in TSDB (Bunachar Sonraí Amshraith), agus meiteashonraí a chur leis i bhfoirm lipéid.

Cén fáth go bhfuil sé ag teastáil

Le déanaí, tháinig Prometheus ar an gcaighdeán de facto i saol na gcoimeádán agus Kubernetes: tá a shuiteáil an-simplí, agus tagann braisle Kubernetes le críochphointe dúchais do Prometheus. Is féidir le Prometheus méadracht a bhaint freisin as feidhmchláir a úsáidtear i gcoimeádán agus lipéid ar leith á stóráil. Dá bhrí sin, tá monatóireacht iarratais an-éasca a chur i bhfeidhm.

Ar an drochuair, níl aon réiteach turnkey ann fós maidir le bainistíocht loga, agus ní mór duit réiteach a aimsiú duit féin:

  • seirbhís néil bhainistithe chun logaí a lárú (AWS, Azure nó Google)
  • seirbhís monatóireachta “monatóireacht mar sheirbhís” (mar shampla, Datadog)
  • do sheirbhís bailithe loga féin a chruthú.

Maidir leis an tríú rogha, d'úsáid mé Elasticsearch go traidisiúnta, in ainneoin nach raibh mé sásta i gcónaí leis (go háirithe a thromchúis agus a chastacht cumraíochta).

Ceapadh Loki chun cur chun feidhme a shimpliú de réir na bprionsabal seo a leanas:

  • a bheith simplí le tosú
  • roinnt acmhainní a ithe
  • oibriú go neamhspleách gan aon chothabháil speisialta
  • feidhmíonn sé mar bhreis ar Prometheus chun cabhrú le himscrúduithe ar fhabht

Mar sin féin, tagann an simplíocht seo ar chostas roinnt comhréitigh. Is é ceann acu gan an t-ábhar a innéacsú. Mar sin, níl cuardach téacs an-éifeachtach nó saibhir agus ní cheadaíonn sé staitisticí ar ábhar an téacs. Ach ós rud é gur mian le Loki a bheith comhionann le grep agus comhlánú le Prometheus, ní míbhuntáiste é seo.

Imscrúdú Teagmhais

Chun tuiscint níos fearr a fháil ar an bhfáth nach bhfuil innéacsú ag teastáil ó Loki, déanaimis dul ar ais chuig an modh imscrúdaithe teagmhais a d'úsáid forbróirí Loki:

Loki - bailiú log ag baint úsáide as an gcur chuige Prometheus
1 Foláireamh → 2 Painéal → 3 Iarratas Adhoc → 4 Logchomhiomlánú → 5 Rianú Dáilte → 6 Deisigh!
(1 Rabhadh → 2 Painéal → 3 Cheist Adhoc → 4 Logchomhiomlánú → 5 Rianú Dáilte → 6 Fixing!)

Is é an smaoineamh go bhfaighimid foláireamh de chineál éigin (Fógra Dríodair, SMS, etc.) agus ina dhiaidh sin:

  • féach ar dheachláir Grafana
  • breathnú ar mhéadracht seirbhíse (mar shampla, i Prometheus)
  • féach ar iontrálacha loga (mar shampla, in Elasticsearch)
  • b'fhéidir breathnú ar rianta dáilte (Jaeger, Zipkin, etc.)
  • agus ar deireadh an fhadhb bhunaidh a shocrú.

Anseo, i gcás cruachta Grafana + Prometheus + Elasticsearch + Zipkin, beidh ort ceithre uirlis éagsúla a úsáid. Chun am a laghdú, bheadh ​​sé deas a bheith in ann na céimeanna seo go léir a dhéanamh ag baint úsáide as uirlis amháin: Grafana. Is fiú a thabhairt faoi deara go bhfuil an cur chuige seo maidir le taighde curtha i bhfeidhm i Grafana ó leagan 6. Mar sin, is féidir sonraí Prometheus a rochtain go díreach ó Grafana.

Loki - bailiú log ag baint úsáide as an gcur chuige Prometheus
Scoilt scáileáin Explorer idir Prometheus agus Loki

Ón scáileán seo is féidir leat logaí Loki a bhaineann le méadracht Prometheus a fheiceáil ag baint úsáide as coincheap an scáileáin scoilte. Ó leagan 6.5 ar aghaidh, ceadaíonn Grafana duit an rian-aitheantas a pharsáil in iontrálacha logála Loki chun naisc chuig na huirlisí rianaithe dáilte is fearr leat (Jaeger) a leanúint.

Tástáil áitiúil Loki

Is é an bealach is éasca chun Loki a thástáil go háitiúil ná docker-compose a úsáid. Tá an comhad docker-compose suite i stór Loki. Is féidir leat an stór a fháil leis an ordú seo a leanas git:

$ git clone https://github.com/grafana/loki.git

Ansin ní mór duit dul chuig an eolaire táirgeachta:

$ cd production

Ina dhiaidh seo is féidir leat an leagan is déanaí d’íomhánna Docker a fháil:

$ docker-compose pull

Ar deireadh, seoltar an Loki stack leis an ordú seo a leanas:

$ docker-compose up

ailtireacht Loki

Seo léaráid bheag leis an ailtireacht Loki:

Loki - bailiú log ag baint úsáide as an gcur chuige Prometheus
Prionsabail Ailtireachta Loki

Ritheann an cliant gréasáin feidhmchláir ar an bhfreastalaí, bailíonn Promtail logaí agus cuireann sé chuig Loki iad, seolann an cliant gréasáin meiteashonraí chuig Loki freisin. Déanann Loki gach rud a chomhiomlánú agus a tharchur chuig Grafana.
Seoltar Loki. Chun na comhpháirteanna atá ar fáil a fheiceáil, rith an t-ordú seo a leanas:

$ docker ps

I gcás Docker nua-shuiteáilte, ba cheart don ordú an toradh seo a leanas a thabhairt ar ais:

IMAGE               PORTS                  NAMES
grafana/promtail:                          production_promtail_1
grafana/grafana: m  0.0.0.0:3000->3000/tcp production_grafana_1
grafana/loki: late  80/tcp,0.0.0.0:3100... production_loki_1

Feicimid na comhpháirteanna seo a leanas:

  • Promtail: gníomhaire atá freagrach as logaí a lárú
  • Grafana: uirlis cháiliúil deais
  • Loki: Deamhan Láraithe Sonraí

Mar chuid de bhonneagar clasaiceach (mar shampla, bunaithe ar mheaisíní fíorúla), ní mór an gníomhaire Promtail a imscaradh ar gach meaisín. Is féidir Grafana agus Loki a shuiteáil ar an meaisín céanna.

Imscaradh chuig Kubernetes

Beidh suiteáil comhpháirteanna Loki ar Kubernetes mar seo a leanas:

  • daemonSet chun an gníomhaire Promtail a imscaradh ar gach ceann de na meaisíní sa bhraisle freastalaí
  • Imscaradh Loki
  • agus is é an ceann deireanach imscaradh Grafana.

Ar ámharaí an tsaoil, tá Loki ar fáil mar phacáiste Helm, rud a fhágann go bhfuil sé éasca é a imscaradh.

Suiteáil trí Heml

Ba cheart go mbeadh Heml suiteáilte agat cheana féin. Is féidir é a íoslódáil ó stór GitHub an tionscadail. Suiteáiltear é tríd an gcartlann a fhreagraíonn do d'ailtireacht a dhíphacáil agus trí stiúradh a chur leis $PATH.

Tabhair faoi deara: scaoileadh leagan 3.0.0 de Helm le déanaí. Ós rud é go bhfuil go leor athruithe déanta air, moltar don léitheoir fanacht beagán sula n-úsáidfear é..

Ag cur foinse le haghaidh Helm

Is é an chéad chéim ná an stór “loki” a chur leis ag baint úsáide as an ordú seo a leanas:

$ helm add loki https://grafana.github.io/loki/charts

Ina dhiaidh seo, is féidir leat pacáistí darb ainm “loki” a chuardach:

$ helm search loki

Toradh:

loki/loki       0.17.2 v0.4.0 Loki: like Prometheus, but for logs.
loki/loki-stack 0.19.1 v0.4.0 Loki: like Prometheus, but for logs.
loki/fluent-bit 0.0.2  v0.0.1 Uses fluent-bit Loki go plugin for...
loki/promtail   0.13.1 v0.4.0 Responsible for gathering logs and...

Tá na gnéithe seo a leanas ag na pacáistí seo:

  • pacáiste loki/loki a mheaitseálann freastalaí Loki amháin
  • pacáiste loki/beagán líofa ligeann sé seo duit DaemonSet a imscaradh ag úsáid bosca bruscair líofa chun logaí a bhailiú in ionad Promtail
  • pacáiste loki/promtail ina bhfuil gníomhaire bailiúcháin logchomhaid
  • pacáiste loki/loki-stack, ligeann duit Loki a imscaradh láithreach in éineacht le Promtail.

Suiteáil Loki

Chun Loki a imscaradh go Kubernetes, rith an t-ordú seo a leanas san ainmspás “monatóireacht”:

$ helm upgrade --install loki loki/loki-stack --namespace monitoring

Chun an diosca a shábháil, cuir an paraiméadar leis --set loki.persistence.enabled = true:

$ helm upgrade --install loki loki/loki-stack 
              --namespace monitoring 
              --set loki.persistence.enabled=true

Tabhair faoi deara: más mian leat Grafana a imscaradh ag an am céanna, ansin cuir an paraiméadar leis --set grafana.enabled = true

Nuair a ritheann tú an t-ordú seo ba cheart duit an t-aschur seo a leanas a fháil:

LAST DEPLOYED: Tue Nov 19 15:56:54 2019
NAMESPACE: monitoring
STATUS: DEPLOYED
RESOURCES:
==> v1/ClusterRole
NAME AGE
loki-promtail-clusterrole 189d
…
NOTES:
The Loki stack has been deployed to your cluster. Loki can now be added as a datasource in Grafana.
See <a href="http://docs.grafana.org/features/datasources/loki/">http://docs.grafana.org/features/datasources/loki/</a> for more details.

Ag féachaint ar staid na pods san ainmspás “monatóireacht”, is féidir linn a fheiceáil go bhfuil gach rud imlonnaithe:

$ kubectl -n monitoring get pods -l release=loki

Toradh:

NAME                 READY  STATUS   RESTARTS  AGE
loki-0               1/1    Running  0         147m
loki-promtail-9zjvc  1/1    Running  0         3h25m
loki-promtail-f6brf  1/1    Running  0         11h
loki-promtail-hdcj7  1/1    Running  0         3h23m
loki-promtail-jbqhc  1/1    Running  0         11h
loki-promtail-mj642  1/1    Running  0         62m
loki-promtail-nm64g  1/1    Running  0         24m

Tá na pods ar fad ag rith. Anois tá sé in am roinnt tástálacha a dhéanamh!

Ag nascadh le Grafana

Chun ceangal le Grafana faoi Kubernetes, ní mór duit tollán a oscailt dá pod. Seo thíos an t-ordú chun port 3000 a oscailt don pod Grafana:

$ kubectl -n port-forward monitoring svc/loki-grafana 3000:80

Pointe tábhachtach eile is ea an gá atá le pasfhocal riarthóra Grafana a ghnóthú. Coinnítear an pasfhocal faoi rún loki-grafana sa réimse .data.admin-user i bhformáid base64.

Chun é a chur ar ais, ní mór duit an t-ordú seo a leanas a rith:

$ kubectl -n monitoring get secret loki-grafana 
 --template '{{index .data "admin-password" | base64decode}}'; echo

Úsáid an pasfhocal seo in éineacht leis an gcuntas riarthóra réamhshocraithe (admin).

Foinse sonraí Loki a shainiú i Grafana

Ar an gcéad dul síos, déan cinnte go bhfuil an fhoinse sonraí Loki cruthaithe (Cumraíocht / Foinse Sonraí).
Seo sampla:

Loki - bailiú log ag baint úsáide as an gcur chuige Prometheus
Sampla de fhoinse sonraí a bhunú do Loki

Trí chliceáil ar “Tástáil” is féidir leat an nasc le Loki a sheiceáil.

Iarratais a dhéanamh chuig Loki

Anois téigh go Grafana chuig an rannán “Explore”. Nuair a fhaigheann Loki logaí ó choimeádáin, cuireann Loki meiteashonraí ó Kubernetes. Mar sin, is féidir breathnú ar logaí coimeádán ar leith.

Mar shampla, chun na logaí coimeádán promtail a roghnú, is féidir leat an cheist seo a leanas a úsáid: {container_name = "promtail"}.
Anseo cuimhnigh freisin foinse sonraí Loki a roghnú.

Tabharfaidh an cheist seo gníomhaíocht coimeádáin ar ais mar a leanas:

Loki - bailiú log ag baint úsáide as an gcur chuige Prometheus
Toradh ceiste i Grafana

Cuir leis an deais

Ag tosú le Grafana 6.4, is féidir leat faisnéis logála a chur go díreach ar an deais. Tar éis seo, beidh an t-úsáideoir in ann aistriú go tapa idir líon na n-iarratas ar a shuíomh agus rianta iarratais.

Seo thíos sampla de chlár a chuireann an idirghníomhaíocht seo i bhfeidhm:

Loki - bailiú log ag baint úsáide as an gcur chuige Prometheus
Deais shamplach le méadracht Prometheus agus logaí Loki

Todhchaí Loki

Thosaigh mé ag úsáid Loki ar ais i mBealtaine/Meitheamh le leagan 0.1. Sa lá atá inniu tá leagan 1, agus fiú 1.1 agus 1.2 eisithe cheana féin.

Ní mór a admháil nach raibh leagan 0.1 seasmhach go leor. Ach léirigh 0.3 comharthaí fíor aibíochta cheana féin, agus níor neartaigh leaganacha ina dhiaidh sin (0.4, ansin 1.0) ach an tuiscint seo.

Tar éis 1.0.0, ní féidir le haon duine aon leithscéal gan an uirlis iontach seo a úsáid.

Níor cheart go mbainfeadh feabhsuithe breise le Loki, ach lena chomhtháthú leis an Grafana den scoth. Go deimhin, tá comhtháthú maith ag Grafana 6.4 le deais cheana féin.

Feabhsaítear an comhtháthú seo le Grafana 6.5, a eisíodh le déanaí, trí inneachar logála a aithint go huathoibríoch i bhformáid JSON.

Léiríonn an físeán thíos sampla beag den mheicníocht seo:

Loki - bailiú log ag baint úsáide as an gcur chuige Prometheus
Ag baint úsáide as teaghráin Loki nochta i Grafana

Is féidir ceann de na réimsí JSON a úsáid, mar shampla, le haghaidh:

  • naisc chuig uirlis sheachtrach
  • ag scagadh inneachar an loga

Mar shampla, is féidir leat cliceáil ar traceId chun dul go Zipkin nó Jaeger.

Mar is gnách, táimid ag tnúth le do thuairimí agus tugaimid cuireadh duit webinar oscailte, áit a labhróimid faoi mar a d’fhorbair tionscal DevOps le linn 2019 agus pléifimid bealaí forbartha féideartha do 2020.

Foinse: will.com