Miarahaba, ry mponina ao Khabrovsk! Amin'ny ankabeazan'ny fanombohan'ny fisoratana anarana vaovao ho an'ny taranja
Ity lahatsoratra ity dia fampidirana fohy momba an'i Loki. Project Loki
Ny tena aingam-panahy ho an'i Loki dia
- mampiasa etikety hitahiry angona
- fanjifana harena vitsy
Hiverenantsika ny fomba fiasan'i Prometheus ary hanome ohatra sasantsasany amin'ny fampiasana azy amin'ny tontolon'ny Kubernetes.
Teny vitsivitsy momba ny Prometheus
Mba hahatakarana tsara ny fomba fiasan'i Loki dia zava-dehibe ny mihemotra ary mitadidy kely momba ny Prometheus.
Ny iray amin'ireo mampiavaka ny Prometheus dia ny fitrandrahana metrika avy amin'ny toerana fanangonana (amin'ny alàlan'ny mpanondrana) ary mitahiry azy ireo ao amin'ny TSDB (Time Series Data Base), miaraka amin'ny fanampiana metadata amin'ny endrika etikety.
Nahoana no ilaina io?
Vao haingana, ny Prometheus dia lasa fenitra de facto eo amin'ny tontolon'ny kaontenera sy Kubernetes: tena tsotra ny fametrahana azy, ary ny cluster Kubernetes dia tonga miaraka amin'ny teboka teratany ho an'ny Prometheus. Ny Prometheus dia afaka maka metrika amin'ny fampiharana napetraka ao anaty fitoeran-javatra iray rehefa mitahiry marika manokana. Noho izany, ny fanaraha-maso ny fampiharana dia tena mora ampiharina.
Indrisy anefa fa tsy mbola misy vahaolana turnkey ho an'ny fitantanana log, ary tsy maintsy mitady vahaolana ho an'ny tenanao ianao:
- serivisy rahona mitantana amin'ny fametrahana logs (AWS, Azure na Google)
- serivisy fanaraha-maso "fanaraha-maso ho serivisy" (ohatra, Datadog)
- mamorona serivisy fanangonana log anao manokana.
Ho an'ny safidy fahatelo dia nampiasa Elasticsearch mahazatra aho, na dia tsy faly tamin'izany foana aza aho (indrindra fa ny mavesatra sy ny fahasarotan'ny konfigurasi).
Loki dia natao hanatsorana ny fampiharana araka ireto fitsipika manaraka ireto:
- ataovy tsotra ny manomboka
- mandany vola kely
- miasa tsy miankina tsy misy fikojakojana manokana
- ampiasaina ho fanampin'ny Prometheus hanampy amin'ny fanadihadiana ny bibikely
Na izany aza, io fahatsorana io dia tonga amin'ny fandaniana ny marimaritra iraisana sasany. Ny iray amin'izy ireo dia ny tsy fanondroana ny atiny. Noho izany, ny fikarohana lahatsoratra dia tsy dia mahomby na manankarena ary tsy mamela ny antontan'isa momba ny votoatin'ny lahatsoratra. Saingy satria te ho mitovy amin'ny grep sy famenon'i Prometheus i Loki dia tsy fatiantoka izany.
Fanadihadiana tranga
Mba hahatakarana bebe kokoa ny antony tsy ilain'i Loki ny fanondroana dia andao hiverina amin'ny fomba fanadihadiana momba ny tranga izay nampiasain'ny mpamorona Loki:
1 Alert → 2 Dashboard → 3 Adhoc Query → 4 Log Aggregation → 5 Distributed Tracing → 6 Fix!
(1 Fampitandremana → 2 Dashboard → 3 Adhoc Query → 4 Log Aggregation → 5 Distributed Tracing → 6 Fixing!)
Ny hevitra dia ny mahazo karazana fanairana (Slack Notification, SMS, sns.) ary aorian'izany:
- jereo ny dashboards Grafana
- jereo ny metrika serivisy (ohatra, ao amin'ny Prometheus)
- jereo ny fidirana amin'ny log (ohatra, ao amin'ny Elasticsearch)
- jereo angamba ireo trace zaraina (Jaeger, Zipkin, sns.)
- ary farany hamaha ny olana tany am-boalohany.
Eto, raha ny Grafana + Prometheus + Elasticsearch + Zipkin stack dia tsy maintsy mampiasa fitaovana efatra samihafa ianao. Mba hampihenana ny fotoana, dia tsara raha afaka manao ireo dingana rehetra ireo amin'ny fampiasana fitaovana iray: Grafana. Tsara ny manamarika fa ity fomba fikarohana ity dia nampiharina tao Grafana nanomboka tamin'ny version 6. Noho izany dia azo atao ny miditra mivantana amin'ny data Prometheus avy amin'ny Grafana.
Fizarana efijery eo amin'ny Prometheus sy Loki ny efijery Explorer
Avy amin'ity efijery ity ianao dia afaka mijery ny diarin'ny Loki mifandraika amin'ny metrika Prometheus amin'ny fampiasana ny foto-kevitra fisarahana. Hatramin'ny dikan-teny 6.5, Grafana dia mamela anao hamantatra ny id trace amin'ny fidirana amin'ny log Loki mba hanarahana rohy mankany amin'ny fitaovana fanaraha-maso nozaraina tianao indrindra (Jaeger).
Fitsapana Loki eo an-toerana
Ny fomba tsotra indrindra hitsapana an'i Loki eo an-toerana dia ny fampiasana docker-compose. Ny rakitra docker-compose dia hita ao amin'ny tahiry Loki. Azonao atao ny mahazo ny tahiry amin'ny fampiasana ity baiko manaraka ity git
:
$ git clone https://github.com/grafana/loki.git
Avy eo dia mila mandeha any amin'ny lahatahiry famokarana ianao:
$ cd production
Aorian'izany dia azonao atao ny mahazo ny kinova farany amin'ny sary Docker:
$ docker-compose pull
Farany, ny stack Loki dia natomboka tamin'ny baiko manaraka:
$ docker-compose up
Loki architecture
Ity misy kisary kely misy ny maritrano Loki:
Loki Architecture Principles
Ny mpanjifa web dia mitantana fampiharana amin'ny mpizara, manangona logs ny Promtail ary mandefa azy ireo any Loki, mandefa metadata amin'i Loki koa ny mpanjifa web. Loki dia manangona ny zava-drehetra ary mampita izany any Grafana.
Natomboka i Loki. Raha hijery ireo singa misy dia araho ity baiko manaraka ity:
$ docker ps
Raha misy Docker vao tafapetraka, ny baiko dia tokony hamerina izao vokatra manaraka izao:
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
Hitantsika ireto singa manaraka ireto:
- Promtail: mpandraharaha tompon'andraikitra amin'ny fametrahana ny logs
- Grafana: fitaovana dashboard malaza
- Loki: Data Centralization Daemon
Ao anatin'ny fotodrafitrasa mahazatra (ohatra, mifototra amin'ny milina virtoaly), ny mpandraharaha Promtail dia tsy maintsy apetraka amin'ny milina tsirairay. Grafana sy Loki dia azo apetraka amin'ny milina iray ihany.
Hiverina any amin'ny Kubernetes
Ny fametrahana singa Loki amin'ny Kubernetes dia ho toy izao manaraka izao:
- daemonSet amin'ny fametrahana ny promtail agent amin'ny milina tsirairay ao amin'ny cluster server
- Fametrahana Loki
- ary ny farany dia ny fametrahana ny Grafana.
Soa ihany fa azo alaina ho fonosana Helm i Loki, izay manamora ny fametrahana azy.
Fametrahana amin'ny alalan'ny Heml
Tokony efa nametraka Heml ianao. Azo alaina ao amin'ny tahiry GitHub an'ny tetikasa izany. Izy io dia napetraka amin'ny alàlan'ny famongorana ny arisiva mifanaraka amin'ny maritranonao ary manampy ny familiana $PATH
.
Fanamarihana: Navoaka vao haingana ny version 3.0.0 an'ny Helm. Koa satria nisy fiovana maro tamin'izany, dia manoro hevitra ny mpamaky mba hiandry kely alohan'ny hampiasana azy..
Manampy loharano ho an'ny Helm
Ny dingana voalohany dia ny manampy ny tahiry "loki" amin'ny fampiasana ity baiko manaraka ity:
$ helm add loki https://grafana.github.io/loki/charts
Aorian'izany dia afaka mikaroka fonosana antsoina hoe "loki" ianao:
$ helm search loki
vokany:
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...
Ireto fonosana ireto dia manana ireto endri-javatra manaraka ireto:
- fonosana loki/loky mifanandrify amin'ny mpizara Loki ihany
- fonosana loki / fluent-bit mamela anao hametraka DaemonSet mampiasa fluent-bin mba hanangonana logs fa tsy Promtail
- fonosana loki/promtail misy mpandraharaha fanangonana rakitra log
- fonosana loki/loki-stack, mamela anao hametraka avy hatrany an'i Loki miaraka amin'ny Promtail.
Fametrahana Loki
Mba hametrahana an'i Loki amin'ny Kubernetes dia araho ity baiko manaraka ity amin'ny anaran'ny "fanaraha-maso":
$ helm upgrade --install loki loki/loki-stack --namespace monitoring
Raha te-hitahiry amin'ny kapila, ampio ny parameter --set loki.persistence.enabled = true:
$ helm upgrade --install loki loki/loki-stack
--namespace monitoring
--set loki.persistence.enabled=true
Fanamarihana: raha te hametraka Grafana miaraka amin'izay koa ianao dia ampio ny parameter
--set grafana.enabled = true
Rehefa manatanteraka ity baiko ity ianao dia tokony hahazo ity vokatra manaraka ity:
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.
Raha jerena ny toetry ny pods amin'ny anaran'ny "fanaraha-maso", dia hitantsika fa miparitaka ny zava-drehetra:
$ kubectl -n monitoring get pods -l release=loki
vokany:
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
Mandeha daholo ny pods rehetra. Fotoana hanaovana fitiliana izao!
Mifandray amin'i Grafana
Raha te hifandray amin'i Grafana eo ambanin'ny Kubernetes ianao dia mila manokatra tonelina mankany amin'ny pod. Ity ambany ity ny baiko hanokatra port 3000 ho an'ny pod Grafana:
$ kubectl -n port-forward monitoring svc/loki-grafana 3000:80
Hevi-dehibe iray hafa dia ny filàna ny famerenana ny tenimiafina mpitantana Grafana. Tazonina ho tsiambaratelo ny tenimiafina loki-grafana
eny an-tsaha .data.admin-user
amin'ny format base64.
Mba hamerenana azy dia mila manatanteraka ity baiko manaraka ity ianao:
$ kubectl -n monitoring get secret loki-grafana
--template '{{index .data "admin-password" | base64decode}}'; echo
Ampiasao ity tenimiafina ity miaraka amin'ny kaonty mpitantana default (admin).
Famaritana loharano angon-drakitra Loki amin'ny Grafana
Voalohany indrindra, ataovy azo antoka fa noforonina ny loharanom-baovao Loki (Configuration/Datasource).
Ity misy ohatra:
Ohatra amin'ny fametrahana loharano angona ho an'i Loki
Amin'ny fipihana ny "Test" dia azonao atao ny manamarina ny fifandraisana amin'i Loki.
Manao fangatahana amin'i Loki
Mankanesa any Grafana amin'ny fizarana "Hijery". Rehefa mandray logs avy amin'ny container i Loki dia manampy metadata avy amin'ny Kubernetes. Noho izany dia azo atao ny mijery ny diarin'ny kaontenera manokana.
Ohatra, raha hisafidianana ny diarin'ny container promtail dia azonao ampiasaina ity fanontaniana manaraka ity: {container_name = "promtail"}
.
Eto koa dia tsarovy ny mifidy ny loharano angona Loki.
Ity fanontaniana ity dia hamerina hetsika fitahirizana toy izao manaraka izao:
Valin'ny fanontaniana ao Grafana
Ampio amin'ny dashboard
Manomboka amin'ny Grafana 6.4, azonao atao ny mametraka ny mombamomba ny log mivantana eo amin'ny dashboard. Aorian'izany, ny mpampiasa dia afaka mifamadika haingana eo amin'ny isan'ny fangatahana ao amin'ny tranokalany sy ny dian'ny fampiharana.
Ity ambany ity ny ohatra iray amin'ny dashboard izay mampihatra an'io fifandraisana io:
Santionany dashboard misy metrika Prometheus sy Loki logs
Ho avin'i Loki
Nanomboka nampiasa an'i Loki aho tamin'ny Mey/Jona niaraka tamin'ny version 0.1. Androany ny version 1, ary na ny 1.1 sy 1.2 aza dia efa navoaka.
Tsy maintsy ekena fa tsy milamina tsara ny version 0.1. Saingy ny 0.3 dia efa naneho tena famantarana ny fahamatorana, ary ny dikan-teny manaraka (0.4, avy eo 1.0) dia nanamafy izany fahatsapana izany.
Aorian'ny 1.0.0, tsy misy afaka manana fialan-tsiny tsy hampiasa ity fitaovana mahafinaritra ity.
Ny fanatsarana fanampiny dia tsy tokony ho momba an'i Loki, fa ny fampidirana azy amin'ny Grafana tena tsara. Raha ny marina, Grafana 6.4 dia efa manana fampidirana tsara amin'ny dashboards.
Grafana 6.5, izay navoaka vao haingana, dia manatsara bebe kokoa ity fampidirana ity amin'ny alàlan'ny fahafantarana ho azy ny votoatin'ny log amin'ny endrika JSON.
Ny lahatsary eto ambany dia mampiseho ohatra kely amin'ity mekanika ity:
Mampiasa tady Loki hita ao amin'ny Grafana
Azo atao ny mampiasa ny iray amin'ireo saha JSON, ohatra, ho an'ny:
- rohy mankany amin'ny fitaovana ivelany
- fanivanana ny votoatin'ny log
Ohatra, azonao atao ny manindry ny traceId raha handeha amin'ny Zipkin na Jaeger.
Toy ny mahazatra, manantena ny fanehoan-kevitrao izahay ary manasa anao
Source: www.habr.com