Loki - ligna colligendis utens ad Prometheum approach

Salutate, Khabrovites! In antecessum initium novae dilectionis ad cursum "DevOps exercitia et instrumenta" paravit translationem de materia interesting tibi.

Hic articulus est Lokii brevis introductio. Project Loki auxilium Grafana et intenditur ad collectionem lignorum centralized (a servientibus vel vasis).

Pelagus spiritus Loki erat Prometheum cum ratione applicandi aditus ad administrationem stipendii:

  • per pittacia congregem notitia
  • humilis resource consummatio

Ad Promethei principia revertemur et eius usus exempla quaedam in Kubernetis contextu dabimus.

Pauca de Prometheo

Ut plene intellegas quomodo Lokius operatus sit, Gravis est gradum retro capere et Prometheum aliquantulum revisere.

Una e notis Promethei est extractio metri e punctis collectis (per exportatores) et ea in TSDB (Tempus Series Data Base, temporis series database) addito metadata in forma pittacii.

Quid faciam

Nuper Prometheus de facto vexillum in mundo vasorum et Kubernetes factus est: eius institutionem valde simplex est, et Kubernetes botrus initio finem Promethei habet. Prometheus etiam metricas ex applicationibus extrahere potest in vase in vase servato specificas notas explicandas. Facillime ergo applicationis vigilantia ad efficiendum.

Proh dolor, nulla adhuc turnkey solutionis causarum administrationis est, et tibi solutionem invenire debes:

  • managed nubes ministerium ad centralizing ligna (AWS, caeruleum vel Google)
  • magna servitium "pro servitio monitoring" (exempli gratia: Datadog)
  • tuum stipes collectio muneris faciendi.

Pro tertia optione, elastica inquisitione tradito usus sum, quamvis non semper gavisus sum cum ea (praesertim gravitati et multiplicitati suae paroeciali).

Lokius designatus est facilis ad efficiendum secundum sequentia principia;

  • facile committitur
  • paucas opes consumunt
  • sine speciali sustentationem operari sine
  • ut sit addendi ad Promethei auxilium cum cimex investigationum

Sed haec simplicitas in aliquorum mediorum dispendio venit. Unus ex his contentus non est indicare. Ideo textus inquisitionis non multum efficax vel dives est nec te permittit ut statistica in argumento textus retinere possit. Sed quia Lokius cum Prometheo aequivalens et complementum esse vult, hoc incommodum non est.

Inquisitio incident

Ut melius intelligatur quare Loki indexing non indiget, revertamur ad methodum inquisitionis incidentis adhibita a Loki tincidunt:

Loki - ligna colligendis utens ad Prometheum approach
1 erecti β†’ 2 Dashboard β†’ 3 Adhoc Query β†’ 4 Stipes aggregatio β†’ 5 Distributa Tracing β†’ 6 Fix!
(1 Admonitio β†’ 2 Dashboard β†’ 3 Adhoc Query β†’ 4 Stipes aggregatio β†’ 5 Distribuit Tracing β†’ 6 Redintegro!)

Idea est quod quaedam vigilantia (Slack Notification, SMS, etc.) et postea:

  • at Grafana dashboards
  • vide Servitium metri (exempli gratia in Prometheo)
  • at iniuriarum viscus (exempli gratia, in Elasticsearch)
  • perhaps Vide vestigia distributa (Jaeger, Zipkin, etc.)
  • postremo problema originale figere.

Hic, in Grafana + Prometheus + Elasticsearch + Zipkin acervus, quattuor diversis instrumentis uti debebis. Ut tempus conserves, satis belle erit posse omnes hos gradus uno instrumento facere: Grafana. Notatu dignum est hunc accessum ad investigationes in Grafana ex quo versio consecuta est 6. Ita fiet, ut Prometheus e Grafana recta notitia accedere possit.

Loki - ligna colligendis utens ad Prometheum approach
Explorer velum scissum est inter Prometheum et Lokium

Ex hoc velo, inspicere potes trabes in Loki ad Prometheum pertinentes metricas conceptus screen scindendi utentes. Cum versione 6.5, Grafana permittit te vestigium id in Loki viscus logorum sequi nexus cum instrumentis instrumentis distributis ad ventus (Jaeger).

Loki loci test

Facillima via Lokii localiter probandi est uti compositorio. Scapus docker-compositorium in reposito Loki situm est. Potes repositio cum sequenti imperio git:

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

Tunc debes mutare directorium productionis;

$ cd production

Post hoc, imagines recentissimas Docker licebit accipere:

$ docker-compose pull

Denique Loki acervus cum sequenti mandato incepit:

$ docker-compose up

Loki architectura

Hic parvum schemate de architectura Loki est:

Loki - ligna colligendis utens ad Prometheum approach
Loki Architecture Principia

Cliens telae applicationes in servo decurrit, Promtail ligna colligit et ad Lokium mittit, client interretialis etiam metadata ad Lokium mittit. Lokius omnia aggregat et ad Grafanam transit.
Loki currit. Ut partes in promptu considerent, hoc mandatum currunt;

$ docker ps

In casu recenter Docker inauguratus, mandatum sequens exitum reddere debet:

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

Composita sequentia videmus:

  • Promtail: centralizing agente reus omnia
  • Grafana, celebre ashboardday instrumentum
  • Loki: data centralem daemonem

Cum pars infrastructurae classicae (exempli gratia in machinis virtualibus fundatur), Promtail agens in unaquaque machina explicari debet. Grafana et Loki in eadem machina institui possunt.

Instruere ad Kubernetes

Partes insertas Loki in Kubernetes hoc modo erunt:

  • daemonSet explicandi Promtail agentis in singulis machinis in servo botri
  • Loki instruere
  • et ultima est instruere Grafana.

Feliciter Loki praesto est ut sarcina Helm, quod facile explicatur.

Installation per Heml

Iam tibi Heml inauguratus est. Deponi potest e promptuario GitHub incepti. Instituitur extrahendo archivum architecturae opportunum ad clavum addendo $PATH.

Note: versio 3.0.0 Helm nuper dimissa est. Cum multae in eo mutationes fuerint, admonetur lector ut paulo ante utatur..

Addens fontem Helm

Primus gradus est repositorium "loki" addere cum mandato sequenti:

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

Postea, quaerere fasciculos "loki" nominatos potes.

$ helm search loki

effectus:

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

Hae fasciculi sequentes notas habent:

  • ΠΏΠ°ΠΊΠ΅Ρ‚ loki/loki tantum aequet Loki servo
  • ΠΏΠ°ΠΊΠ΅Ρ‚ loki / fluente-bit sino vos explicandi DaemonSet usura disertus bin ad colligunt omnia pro Promtail
  • ΠΏΠ°ΠΊΠ΅Ρ‚ loki / promtail contineat iniuriarum collectione agente
  • ΠΏΠ°ΠΊΠ΅Ρ‚ loki/loki-ACERVUSpermittit ut Lokius una cum Promtail statim explicandam.

installing Loki

Ad Lokium ad Kubernetes explicandam, hoc mandatum currite in spatio spatii "vigilandi";

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

Ut salvum facere disco, optio adde --set loki.persistence.enabled = true:

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

Note: si vis Grafana explicari simul, adde modulum --set grafana.enabled = true

Cum hoc praeceptum curris, hoc output habebis:

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.

Siliquae statum in spatiis "magna" spatii intuentes, videre possumus omnia explicari:

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

effectus:

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

Siliquae omnes currunt. Nunc tempus aliquam volutpat!

Grafana connectens

Ut Grafana sub Kubernetes coniungere, cuniculum suum podagra aperire debes. Hoc mandatum est ut Grafana vasculum 3000 portu aperiat;

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

Alius momenti punctum opus est tesseram administratoris Grafanae recuperandae. Tesseras secreta loki-grafana in agro .data.admin-user in base64 format.

Ad illud restituendum, sequenti mandato currere debes;

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

Hoc password utere in conjunctione cum administratore defalta ratione (admin).

Lokius notitia fontis definitio in Grafana

Imprimis fac fontem datae Loki (Configurationis / Datasource) creatum est.
Hic exemplum est:

Loki - ligna colligendis utens ad Prometheum approach
Exemplum constituendi fons est data Loki

Strepitando in "teste" probare potes nexum cum Loki.

Petitiones ad Loki

Nunc ire ad Grafanam et ad sectionem "explorare". Tigna accepta ab vasis, Lokius metadata ab Kubernetes addit. Sic igitur tigna vasis specifici fieri potest considerari.

Exempli gratia, receptaculum promtail deligere, sequenti interrogatione uti potes: {container_name = "promtail"}.
Noli oblivisci ut Lokium hic quoque fontem eligat.

Haec quaestio reddet continens activitatem hoc modo:

Loki - ligna colligendis utens ad Prometheum approach
Query eventum in Grafana

Addit ad ashboardday

Incipiens cum Grafana 6.4, fieri potest ut notitias logas directe in ashboardday. Post hoc, usor celeriter poterit inter numerum postulationum in loco suo ad vestigia applicanda transibit.

Infra exemplum est ashboardday qui hanc commercium instrumentat;

Loki - ligna colligendis utens ad Prometheum approach
Sample ashboardday cum Prometheo metrice et Loki acta

Futurum Loki

Loki usus sum reversus mense Maio/Iuni cum versione 0.1. Versiones 1 hodie iam dimissa est, nec non 1.1 et 1.2.

Fatendum est versionem 0.1 satis stabilem non fuisse. Sed 0.3 iam vera signa maturitatis demonstraverunt, et versiones sequentes (0.4, deinde 1.0) tantum hanc impressionem corroboraverunt.

Post 1.0.0, nemo excusationem habere potest quin hoc mirifico instrumento utatur.

Meliora praeterea non debent esse circa Lokium, sed potius integratio eius cum egregio Grafana. In facto, Grafana 6.4 iam bonam integrationem cum dashboards habet.

Grafana 6.5, quae nuper dimissa est, ulteriorem hanc integrationem emendavit per automatice contenta lignorum in forma JSON agnoscens.

Vide infra parvum exemplum huius mechanismi ostendit:

Loki - ligna colligendis utens ad Prometheum approach
Usura Loki chordis in Grafana rendered

Fieri potest uti unus e JSON arvis, ex gr.

  • Nexus ad instrumentum externum
  • iniuriarum contentus eliquare

Exempli gratia, deprime in traceId ad Zipkin vel Jaeger ire.

Ut solet, tuas commentarios expectamus et te invitamus aperta webinar, ubi loquemur quomodo industria DevOporum in MMXIX elaboraverit et de viis evolutionis possibilibus 2019 disputabimus.

Source: www.habr.com