Fàilte, luchd-còmhnaidh Khabrovsk! Air an oidhche ro thoiseach clàradh ùr airson a’ chùrsa
Tha an artaigil seo na ro-ràdh goirid mu Loki. Pròiseact Loki
B 'e am prìomh bhrosnachadh airson Loki
- cleachdadh leubail airson dàta a stòradh
- caitheamh beagan ghoireasan
Tillidh sinn gu mar a tha Prometheus ag obair agus bheir sinn seachad eisimpleirean air a chleachdadh ann an co-theacsa Kubernetes.
Beagan fhaclan mu Prometheus
Gus làn thuigse fhaighinn air mar a tha Loki ag obair, tha e cudromach ceum air ais a ghabhail agus beagan cuimhne a chumail air Prometheus.
Is e aon de na feartan sònraichte aig Prometheus a bhith a’ toirt a-mach meatrach bho àiteachan cruinneachaidh (tro às-mhalairt) agus gan stòradh ann an TSDB (Stòr Dàta Sreath Ùine), le meata-dàta ann an cruth bhileagan.
Carson a tha feum agad air
O chionn ghoirid, tha Prometheus air a thighinn gu bhith na inbhe de facto ann an saoghal soithichean agus Kubernetes: tha an stàladh gu math sìmplidh, agus tha cruinneachadh Kubernetes a ’tighinn le àite crìochnachaidh dùthchasach airson Prometheus. Faodaidh Prometheus cuideachd meatrach a thoirt a-mach à tagraidhean a tha air an cleachdadh ann an soitheach fhad ‘s a tha iad a’ stòradh bileagan sònraichte. Mar sin, tha sgrùdadh tagraidh gu math furasta a bhuileachadh.
Gu mì-fhortanach, chan eil fuasgladh turnkey ann fhathast airson riaghladh logaichean, agus feumaidh tu fuasgladh a lorg dhut fhèin:
- seirbheis sgòth air a riaghladh airson logaichean a mheadhanachadh (AWS, Azure no Google)
- seirbheis sgrùdaidh “cumail sùil mar sheirbheis” (mar eisimpleir, Datadog)
- cruthaich an t-seirbheis cruinneachadh log agad fhèin.
Airson an treas roghainn, chleachd mi Elasticsearch gu traidiseanta, a dh ’aindeoin nach robh mi an-còmhnaidh toilichte leis (gu sònraichte cho trom agus cho iom-fhillte’ sa bha an rèiteachadh).
Chaidh Loki a dhealbhadh gus buileachadh a dhèanamh nas sìmplidhe a rèir nam prionnsapalan a leanas:
- bi sìmplidh airson tòiseachadh
- glè bheag de ghoireasan ithe
- ag obair gu neo-eisimeileach às aonais cumail suas sònraichte sam bith
- a bhith na chuideachadh do Prometheus gus cuideachadh le rannsachaidhean air bugaichean
Ach, thig an sìmplidh seo gu cosgais cuid de cho-rèiteachaidhean. Is e aon dhiubh gun a bhith a’ clàradh an t-susbaint. Mar sin, chan eil sgrùdadh teacsa gu math èifeachdach no beairteach agus chan eil e a’ ceadachadh staitistig air susbaint an teacsa. Ach leis gu bheil Loki ag iarraidh a bhith co-ionann ri grep agus taic ri Prometheus, chan e ana-cothrom a tha seo.
Rannsachadh Tachartas
Gus tuigse nas fheàrr fhaighinn air carson nach eil feum aig Loki air clàr-amais, rachamaid air ais chun dòigh sgrùdaidh tachartais a chleachd luchd-leasachaidh Loki:
1 Alert → 2 Dashboard → 3 Adhoc Ceist → 4 Log Aggregation → 5 Distribution Tracing → 6 Fix!
(1 Rabhadh → 2 Dashboard → 3 Adhoc Ceist → 4 Log Aggregation → 5 Distribution Tracing → 6 Fixing!)
Is e am beachd gum faigh sinn rabhadh de sheòrsa air choreigin (Fios Slack, SMS, msaa) agus às deidh sin:
- thoir sùil air deas-bhòrd Grafana
- thoir sùil air tomhasan seirbheis (mar eisimpleir, ann am Prometheus)
- thoir sùil air inntrigidhean log (mar eisimpleir, ann an Elasticsearch)
- is dòcha gun toir thu sùil air lorgan sgaoilte (Jaeger, Zipkin, msaa.)
- agus mu dheireadh a 'fuasgladh na duilgheadas tùsail.
An seo, a thaobh stac Grafana + Prometheus + Elasticsearch + Zipkin, feumaidh tu ceithir innealan eadar-dhealaichte a chleachdadh. Gus ùine a lughdachadh, bhiodh e math a bhith comasach air na ceumannan sin uile a choileanadh le bhith a’ cleachdadh aon inneal: Grafana. Is fhiach a bhith mothachail gu bheil an dòigh-obrach seo airson rannsachadh air a bhith air a bhuileachadh ann an Grafana bho dhreach 6. Mar sin, bidh e comasach faighinn gu dàta Prometheus gu dìreach bho Grafana.
Sgrion Explorer air a sgaradh eadar Prometheus agus Loki
Bhon sgrion seo chì thu logaichean Loki co-cheangailte ri metrics Prometheus a’ cleachdadh bun-bheachd sgrion roinnte. Bho dhreach 6.5, leigidh Grafana leat an id lorg a pharsadh ann an inntrigidhean log Loki gus ceanglaichean a leantainn gu na h-innealan lorg sgaoilte as fheàrr leat (Jaeger).
Deuchainn ionadail Loki
Is e an dòigh as fhasa air Loki a dhearbhadh gu h-ionadail a bhith a’ cleachdadh docker-compose. Tha am faidhle docker-compose suidhichte ann an stòr Loki. Gheibh thu an stòr leis an àithne a leanas git
:
$ git clone https://github.com/grafana/loki.git
An uairsin feumaidh tu a dhol chun eòlaire riochdachaidh:
$ cd production
Às deidh seo gheibh thu an dreach as ùire de dhealbhan Docker:
$ docker-compose pull
Mu dheireadh, thèid an Loki stack a chuir air bhog leis an òrdugh a leanas:
$ docker-compose up
Loki ailtireachd
Seo diagram beag le ailtireachd Loki:
Prionnsabalan ailtireachd Loki
Bidh an neach-dèiligidh lìn a’ ruith thagraidhean air an fhrithealaiche, bidh Promtail a’ cruinneachadh logaichean agus gan cur gu Loki, bidh an neach-dèiligidh lìn cuideachd a’ cur meata-dàta gu Loki. Bidh Loki a’ cruinneachadh a h-uile càil agus ga chuir gu Grafana.
Tha Loki air a chuir air bhog. Gus na pàirtean a tha rim faighinn fhaicinn, ruith an àithne a leanas:
$ docker ps
Ann an cùis Docker a tha air ùr-shuidheachadh, bu chòir don àithne an toradh a leanas a thilleadh:
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
Chì sinn na co-phàirtean a leanas:
- Promtail: àidseant le uallach airson meadhanachadh logaichean
- Grafana: inneal deas-bhòrd ainmeil
- Loki: Daemon meadhanachadh dàta
Mar phàirt de bhun-structar clasaigeach (mar eisimpleir, stèidhichte air innealan brìgheil), feumar an neach-ionaid Promtail a chuir a-steach air gach inneal. Faodar Grafana agus Loki a chuir a-steach air an aon inneal.
Gluasad gu Kubernetes
Bidh stàladh co-phàirtean Loki air Kubernetes mar a leanas:
- daemonSet airson an àidseant Promtail a chuir a-steach air gach inneal ann am buidheann an fhrithealaiche
- Cleachdadh Loki
- agus is e an tè mu dheireadh cleachdadh Grafana.
Gu fortanach, tha Loki ri fhaighinn mar phasgan Helm, ga dhèanamh furasta a chleachdadh.
Stàladh tro Heml
Bu chòir dhut Heml a chuir a-steach mu thràth. Faodar a luchdachadh sìos bho stòr GitHub a’ phròiseict. Tha e air a chuir a-steach le bhith a’ dì-phapadh an tasglann a fhreagras air an ailtireachd agad agus a’ cur stiùir ris $PATH
.
Note: dreach 3.0.0 de Helm fhoillseachadh o chionn ghoirid. Leis gu bheil mòran atharrachaidhean air a bhith ann, thathas a’ comhairleachadh don leughadair feitheamh beagan mus cleachd thu e..
A’ cur ri stòr airson Helm
Is e a’ chiad cheum an stòr “loki” a chur ris a’ cleachdadh an àithne a leanas:
$ helm add loki https://grafana.github.io/loki/charts
Às deidh seo, faodaidh tu pacaidean leis an ainm “loki” a lorg:
$ 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...
Tha na feartan a leanas aig na pacaidean sin:
- пакет loki/loki a’ maidseadh frithealaiche Loki a-mhàin
- пакет loki/fluent-bit a’ leigeil leat DaemonSet a chleachdadh le bhith a’ cleachdadh bin fileanta gus logaichean a chruinneachadh an àite Promtail
- пакет loki/promtail tha àidseant cruinneachadh faidhle log ann
- пакет loki/loki-stack, a’ leigeil leat Loki a chuir a-steach sa bhad còmhla ri Promtail.
A stàladh Loki
Gus Loki a chuir gu Kubernetes, ruith an àithne a leanas anns an ainm “sgrùdadh”:
$ helm upgrade --install loki loki/loki-stack --namespace monitoring
Gus sàbhaladh air diosc, cuir am paramadair ris --set loki.persistence.enabled = true:
$ helm upgrade --install loki loki/loki-stack
--namespace monitoring
--set loki.persistence.enabled=true
Note: ma tha thu airson Grafana a chuir a-steach aig an aon àm, cuir am paramadair ris
--set grafana.enabled = true
Nuair a ruitheas tu an àithne seo bu chòir dhut an toradh a leanas fhaighinn:
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.
A 'coimhead air staid nam pods anns an ainm "cumail sùil", chì sinn gu bheil a h-uile càil air a chleachdadh:
$ 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
Tha na pods uile a’ ruith. A-nis tha an t-àm ann beagan deuchainnean a dhèanamh!
A 'ceangal ri Grafana
Gus ceangal ri Grafana fo Kubernetes, feumaidh tu tunail fhosgladh don pod aige. Gu h-ìosal tha an àithne airson port 3000 fhosgladh airson pod Grafana:
$ kubectl -n port-forward monitoring svc/loki-grafana 3000:80
Is e puing cudromach eile an fheum air facal-faire rianadair Grafana fhaighinn air ais. Tha am facal-faire air a chumail dìomhair loki-grafana
ann an raon .data.admin-user
ann an cruth base64.
Gus a thoirt air ais, feumaidh tu an òrdugh a leanas a ruith:
$ kubectl -n monitoring get secret loki-grafana
--template '{{index .data "admin-password" | base64decode}}'; echo
Cleachd am facal-faire seo an co-bhonn ris a’ chunntas rianadair bunaiteach (rianaire).
A’ mìneachadh stòr dàta Loki ann an Grafana
An toiseach, dèan cinnteach gu bheil an stòr dàta Loki air a chruthachadh (Configuration / Datasource).
Seo eisimpleir:
Eisimpleir de bhith a’ stèidheachadh stòr dàta airson Loki
Le bhith a’ briogadh air “Test” faodaidh tu sgrùdadh a dhèanamh air a’ cheangal le Loki.
A’ dèanamh iarrtasan gu Loki
A-nis rachaibh gu Grafana chun roinn “Rannsaich”. Nuair a gheibh e logaichean bho shoithichean, bidh Loki a’ cur meata-dàta bho Kubernetes. Mar sin, bidh e comasach sùil a thoirt air logaichean soitheach sònraichte.
Mar eisimpleir, gus na logaichean promtail container a thaghadh, faodaidh tu an ceist a leanas a chleachdadh: {container_name = "promtail"}
.
An seo cuideachd cuimhnich gun tagh thu stòr dàta Loki.
Tillidh a’ cheist seo gnìomhachd container mar a leanas:
Toradh ceist ann an Grafana
Cuir ris an deas-bhòrd
A’ tòiseachadh le Grafana 6.4, faodaidh tu fiosrachadh log a chuir gu dìreach air an deas-bhòrd. Às deidh seo, bidh e comasach don neach-cleachdaidh gluasad gu sgiobalta eadar an àireamh de dh ’iarrtasan air an làrach aige agus lorgan tagraidh.
Gu h-ìosal tha eisimpleir de bhòrd-stiùiridh a chuireas an eadar-obrachadh seo an gnìomh:
Sampall deas-bhòrd le metrics Prometheus agus logaichean Loki
Loki san àm ri teachd a
Thòisich mi a’ cleachdadh Loki air ais sa Chèitean/Ògmhios le dreach 0.1. An-diugh tha dreach 1, agus eadhon 1.1 agus 1.2 air an leigeil ma sgaoil mu thràth.
Feumar aideachadh nach robh dreach 0.1 seasmhach gu leòr. Ach sheall 0.3 mar-thà fìor shoidhnichean aibidh, agus cha do neartaich dreachan às deidh sin (0.4, an uairsin 1.0) ach am beachd seo.
Às deidh 1.0.0, chan urrainn leisgeul sam bith a bhith aig duine gun a bhith a’ cleachdadh an inneal iongantach seo.
Cha bu chòir tuilleadh leasachaidhean a bhith mu dheidhinn Loki, ach an aonachadh leis an Grafana sàr-mhath. Gu dearbh, tha amalachadh math aig Grafana 6.4 le clàran-làimhe.
Bidh Grafana 6.5, a chaidh fhoillseachadh o chionn ghoirid, ag adhartachadh an aonachadh seo le bhith ag aithneachadh susbaint log ann an cruth JSON gu fèin-ghluasadach.
Tha a’ bhidio gu h-ìosal a’ sealltainn eisimpleir bheag den uidheamachd seo:
A’ cleachdadh loidhnichean Loki fosgailte ann an Grafana
Bidh e comasach aon de na raointean JSON a chleachdadh, mar eisimpleir, airson:
- ceanglaichean gu inneal taobh a-muigh
- a’ sìoladh susbaint an loga
Mar eisimpleir, faodaidh tu briogadh air traceId gus a dhol gu Zipkin no Jaeger.
Mar as àbhaist, tha sinn a’ coimhead air adhart ri do bheachdan agus a’ toirt cuireadh dhut
Source: www.habr.com