FĂ ilte, luchd-còmhnaidh Khabrovsk! Air an oidhche ro thoiseach clĂ radh Ăšr airson aâ chĂšrsa Tha sinn air eadar-theangachadh de stuth inntinneach ullachadh dhut.
Tha an artaigil seo na ro-rà dh goirid mu Loki. Pròiseact Loki agus tha e ag amas air cruinneachadh meadhanaichte de logaichean (bho luchd-frithealaidh no soithichean).
B 'e am prĂŹomh bhrosnachadh airson Loki leis aâ bheachd a bhith aâ cleachdadh a dhòighean-obrach airson riaghladh logaichean:
- 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.gitAn 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 pullMu dheireadh, thèid an Loki stack a chuir air bhog leis an òrdugh a leanas:
$ docker-compose upLoki 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 psAnn 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_1ChĂŹ 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 lokiToradh:
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 monitoringGus 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=trueNote: 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=lokiToradh:
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 24mTha 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:80Is 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}}'; echoCleachd 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 , far am bruidhnidh sinn mu mar a leasaich gnĂŹomhachas DevOps ann an 2019 agus bruidhnidh sinn air slighean leasachaidh a dhâ fhaodadh a bhith ann airson 2020.
Source: www.habr.com
