Loki - kohikohinga rangitaki ma te whakamahi i te huarahi Prometheus

Tena koutou e nga kainoho o Khabrovsk! I te ahiahi o te timatanga o te whakaurunga hou mo te akoranga "Nga mahi me nga taputapu DevOps" Kua whakaritea e matou he whakamaoritanga o nga mea whakamere mo koe.

He kupu whakataki poto tenei mo Loki. Kaupapa Loki tautokona e Grafana a ko te whainga ki te kohikohinga o nga poro rakau (mai i nga kaitoro, i nga ipu ranei).

Ko te tino hiringa mo Loki Prometheus me te whakaaro ki te whakamahi i ana huarahi ki te whakahaere takiuru:

  • te whakamahi tapanga hei penapena raraunga
  • te kai iti rawa

Ka hoki ano tatou ki te mahi a Prometheus me te whakaatu i etahi tauira o tana whakamahinga i roto i te horopaki o Kubernetes.

He kupu torutoru mo Prometheus

Kia tino marama ki te mahi a Loki, he mea nui ki te hoki whakamuri me te mahara iti mo Prometheus.

Ko tetahi o nga ahuatanga motuhake o Prometheus ko te tangohanga o nga inenga mai i nga kohinga kohinga (ma nga kaihokohoko) me te penapena i roto i te TSDB (Waahi Raraunga Raraunga Waahi), me te taapiri i nga metadata i te ahua o nga tapanga.

He aha koe e hiahia ai

Ina tata nei, kua noho a Prometheus hei paerewa pono i roto i te ao o nga ipu me nga Kubernetes: he tino ngawari tana whakaurunga, a ka tae mai te kahui Kubernetes me tetahi pito taketake mo Prometheus. Ka taea hoki e Prometheus te tango i nga inenga mai i nga tono ka tukuna ki roto i te ipu i te wa e penapena ana nga tapanga motuhake. Na reira, he tino ngawari ki te whakatinana i te aroturuki tono.

Heoi ano, karekau he otinga mo te whakahaere i te raarangi, a me rapu e koe he otinga mo koe:

  • te ratonga kapua whakahaere mo te whakauru i nga raarangi (AWS, Azure, Google ranei)
  • ratonga aroturuki "aroturuki hei ratonga" (hei tauira, Datadog)
  • te hanga i to ake ratonga kohinga rangitaki.

Mo te whiringa tuatoru, i whakamahia e ahau te Elasticsearch i nga wa katoa, ahakoa te mea kaore au i te harikoa ki a ia (ina koa te taumaha me te uaua o te whirihoranga).

I hoahoatia a Loki ki te whakangwari i te whakatinanatanga i runga i nga tikanga e whai ake nei:

  • kia ngawari ki te timata
  • pau noa nga rauemi
  • mahi takitahi me te kore tiaki motuhake
  • hei taapiri ki a Prometheus hei awhina i nga mahi tirotiro iro

Heoi, ka puta mai tenei ngawari i runga i te utu o etahi taupatupatu. Ko tetahi o enei ko te kore e tohu i nga ihirangi. Na reira, kaore i te tino pai, i te whai rawa ranei te rapu tuhinga, kaore hoki e whakaaehia nga tatauranga mo te ihirangi o te tuhinga. Engari i te mea kei te pirangi a Loki kia rite ki te grep me te taapiri ki a Prometheus, ehara tenei i te mea kino.

Whakatewhatewha aitua

Kia pai ake ai te maarama he aha te take kaore a Loki e hiahia ki te whakariterite, me hoki ano tatou ki te tikanga tirotiro i nga maiki i whakamahia e nga kaiwhakawhanake Loki:

Loki - kohikohinga rangitaki ma te whakamahi i te huarahi Prometheus
1 Matohi → 2 Papatohu → 3 Uiui Adhoc → 4 Te Whakakotahitanga Rangitaki → 5 Te Tiri Tiri → 6 Whakatika!
(1 Whakatupato → 2 Papatohu → 3 Uiui Adhoc → 4 Whakakotahitanga Rangitaki → 5 Tuarihia Aroturuki → 6 Whakatika!)

Ko te whakaaro ka whiwhi tatou i etahi momo matohi (Slack Notification, SMS, etc.) a muri iho:

  • titiro ki nga papatohu Grafana
  • tirohia nga inenga ratonga (hei tauira, i Prometheus)
  • titiro ki nga urunga rangitaki (hei tauira, i Elasticsearch)
  • Tena pea tirohia nga tohu kua tohatohahia (Jaeger, Zipkin, etc.)
  • ka mutu te whakatika i te raru tuatahi.

I konei, i te keehi o te Grafana + Prometheus + Elasticsearch + Zipkin stack, me whakamahi koe i nga taputapu rereke e wha. Hei whakaiti i te wa, he pai ki te mahi i enei mahi katoa ma te whakamahi i tetahi taputapu: Grafana. He mea tika kia mohio ko tenei huarahi ki te rangahau kua whakatinanahia i Grafana mai i te putanga 6. Na, ka taea te uru atu ki nga raraunga Prometheus mai i Grafana.

Loki - kohikohinga rangitaki ma te whakamahi i te huarahi Prometheus
I wehea te mata o Explorer i waenga i a Prometheus me Loki

Mai i tenei mata ka taea e koe te tiro i nga raarangi Loki e pa ana ki nga inenga Prometheus ma te whakamahi i te ariā mata wehe. Mai i te putanga 6.5, ka taea e Grafana te tarai i te tohu id i roto i nga urunga rangitaki Loki ki te whai hononga ki o taputapu tirotiro tohatoha tino pai (Jaeger).

Whakamatau Loki rohe

Ko te huarahi ngawari ki te whakamatautau i a Loki a rohe ko te whakamahi docker-compose. Ko te kōnae docker-compose kei roto i te putunga Loki. Ka taea e koe te tiki i te putunga ma te whakamahi i te whakahau e whai ake nei git:

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

Na me haere koe ki te raarangi whakaputa:

$ cd production

I muri i tenei ka taea e koe te tiki i te putanga hou o nga whakaahua Docker:

$ docker-compose pull

Ka mutu, ka whakarewahia te puranga Loki me te whakahau e whai ake nei:

$ docker-compose up

Loki hoahoanga

Anei tetahi hoahoa iti me te hoahoanga Loki:

Loki - kohikohinga rangitaki ma te whakamahi i te huarahi Prometheus
Loki Architecture Principles

Ko te kiritaki tukutuku e whakahaere ana i nga tono i runga i te tūmau, ka kohia e Promtail nga rakau ka tukuna ki a Loki, ka tukuna ano e te kiritaki tukutuku nga metadata ki a Loki. Ka whakahiatohia e Loki nga mea katoa ka tukuna ki a Grafana.
Ka whakarewahia a Loki. Hei tiro i nga waahanga e waatea ana, whakahaerehia te whakahau e whai ake nei:

$ docker ps

Mena he Docker hou kua whakauruhia, me whakahoki e te whakahau te hua e whai ake nei:

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

Ka kite tatou i nga waahanga e whai ake nei:

  • Promtail: te kaihoko te kawenga mo te whakauru i nga rakau
  • Grafana: he taputapu papatohu rongonui
  • Loki: Raraunga Centralization Daemon

Hei waahanga o te hanganga matarohia (hei tauira, i runga i nga miihini mariko), me tuku te kaihoko Promtail ki ia miihini. Ka taea te whakauru a Grafana me Loki ki te miihini kotahi.

Te tuku ki Kubernetes

Ko te whakauru i nga waahanga Loki ki runga i nga Kubernetes ka penei:

  • daemonSet mo te tuku i te kaihoko Promtail ki ia miihini i roto i te roopu tūmau
  • Tukuna Loki
  • a ko te mea whakamutunga ko te tohatoha o Grafana.

Waimarie, kei te waatea a Loki hei kete Helm, he ngawari ki te hora.

Tāuta mā te Heml

Me whakauru kē a Heml. Ka taea te tango mai i te rehitatanga GitHub o te kaupapa. Ka whakauruhia ma te wetewete i te purongo e rite ana ki to hoahoanga me te taapiri i te urungi $PATH.

Tuhipoka: Ko te putanga 3.0.0 o Helm i tukuna tata nei. I te mea he maha nga whakarereketanga, ka tohutohuhia te kaipanui kia tatari mo etahi wa i mua i te whakamahi..

Te taapiri i tetahi puna mo Helm

Ko te mahi tuatahi ko te taapiri i te putunga "loki" ma te whakamahi i te whakahau e whai ake nei:

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

I muri i tenei, ka taea e koe te rapu mo nga kohinga ko "loki":

$ helm search loki

Hua:

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...

Kei enei kete nga ahuatanga e whai ake nei:

  • пакет loki/loki e ōrite ana ki te tūmau Loki anake
  • пакет loki/rere-bit ka taea e koe te tuku i tetahi DaemonSet ma te whakamahi i te ipu-waahi ki te kohi rakau hei utu mo te Promtail
  • пакет loki/promtail kei roto he kaihoko kohikohi kōnae rangitaki
  • пакет loki/loki-stack, ka taea e koe te tuku tonu i a Loki me te Promtail.

Tāuta Loki

Hei tuku i a Loki ki nga Kubernetes, whakahaerehia te whakahau e whai ake nei i roto i te mokowā ingoa "aroturuki":

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

Hei tiaki ki te kōpae, tāpirihia te tawhā --set loki.persistence.enabled = true:

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

Tuhipoka: Mena kei te hiahia koe ki te tuku i te Grafana i te wa ano, ka taapirihia te tawhā --set grafana.enabled = true

Ina whakahaere koe i tenei whakahau me whiwhi koe i nga putanga e whai ake nei:

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.

Ma te titiro ki te ahua o nga pene i roto i te waahi ingoa "aroturuki", ka kite tatou kua tukuna nga mea katoa:

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

Hua:

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

Kei te rere nga poti katoa. Inaianei kua tae ki te waa ki te mahi i etahi whakamatautau!

Te hono atu ki a Grafana

Hei hono atu ki a Grafana i raro i a Kubernetes, me whakatuwhera koe i tetahi kohanga ki tona pona. Kei raro nei te whakahau ki te whakatuwhera i te tauranga 3000 mo te Pod Grafana:

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

Ko tetahi atu mea nui ko te hiahia ki te whakaora i te kupuhipa a te kaiwhakahaere o Grafana. Ka huna te kupuhipa loki-grafana i te mara .data.admin-user i te whakatakotoranga turanga64.

Hei whakaora, me whakahaere e koe te whakahau e whai ake nei:

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

Whakamahia tenei kupuhipa me te kaute kaiwhakahaere taunoa (admin).

Te tautuhi i te puna raraunga Loki i Grafana

Tuatahi, kia mohio kua hangahia te puna raraunga Loki (Whakaritenga/Raraunga).
Anei he tauira:

Loki - kohikohinga rangitaki ma te whakamahi i te huarahi Prometheus
He tauira mo te whakarite puna raraunga mo Loki

Ma te panui "Whakamatau" ka taea e koe te tirotiro i te hononga ki a Loki.

Te tono ki a Loki

Inaianei haere ki Grafana ki te waahanga "Tirotiro". Ina whiwhi rangitaki mai i nga ipu, ka taapirihia e Loki nga metadata mai i Kubernetes. Na, ka taea te tiro i nga raarangi o tetahi ipu motuhake.

Hei tauira, ki te kowhiri i nga raarangi ipu promtail, ka taea e koe te whakamahi i te patai e whai ake nei: {container_name = "promtail"}.
I konei ka mahara ano ki te kowhiri i te puna raraunga Loki.

Ma tenei patai ka whakahoki mahi ipu penei e whai ake nei:

Loki - kohikohinga rangitaki ma te whakamahi i te huarahi Prometheus
Ko te hua patai i Grafana

Tāpirihia ki te papatohu

Ka tiimata me te Grafana 6.4, ka taea e koe te tuu tika i nga korero takiuru ki runga i te papatohu. I muri i tenei, ka taea e te kaiwhakamahi te huri tere i waenga i te maha o nga tono i runga i tana papaanga me nga tohu tono.

Kei raro nei he tauira o te papatohu e whakatinana ana i tenei taunekeneke:

Loki - kohikohinga rangitaki ma te whakamahi i te huarahi Prometheus
Tauira papatohu me nga inenga Prometheus me nga raarangi Loki

Te heke mai o Loki

I timata ahau ki te whakamahi i a Loki i te marama o Mei/Hune me te putanga 0.1. I tenei ra ko te putanga 1, tae noa ki te 1.1 me te 1.2 kua tukuna.

Me whakaae ko te putanga 0.1 kaore i tino pumau. Engari ko te 0.3 kua whakaatu i nga tohu tino o te pakeketanga, a ko nga putanga o muri mai (0.4, ka 1.0) i whakapakari noa i tenei whakaaro.

I muri i te 1.0.0, karekau he tangata e whai take kia kaua e whakamahi i tenei taputapu whakamiharo.

Ko etahi atu whakapainga kaua e pa ki a Loki, engari ko tana whakaurunga ki te Grafana tino pai. Inaa, he pai te whakaurunga a Grafana 6.4 me nga papatohu.

Ko te Grafana 6.5, i tukuna i mua tata nei, ka whakapai ake i tenei whakaurunga ma te mohio aunoa i nga ihirangi rangitaki kei te whakatakotoranga JSON.

Ko te ataata i raro nei e whakaatu ana i tetahi tauira iti o tenei tikanga:

Loki - kohikohinga rangitaki ma te whakamahi i te huarahi Prometheus
Ma te whakamahi i nga aho Loki e kitea ana i Grafana

Ka taea te whakamahi i tetahi o nga mara JSON, hei tauira, mo:

  • hononga ki te taputapu o waho
  • tātari ihirangi rangitaki

Hei tauira, ka taea e koe te paato i te traceId kia haere ki a Zipkin, ki a Jaeger ranei.

Ka rite ki o mua, ka tumanako matou ki o korero me te tono kia haere mai koe webinar tuwhera, i reira ka korero tatou mo te whakawhanaketanga o te umanga DevOps i te tau 2019 me te matapaki i nga huarahi whanaketanga mo te 2020.

Source: will.com