ααΌαααααΆααα½αα’ααααααα»α Khabrovsk! αα
αα»αααααα
αΆααααααΎαααααΆαα
α»ααααααααααΈαααααΆαααααααα·ααααΆ
α’αααααβαααβααΊβααΆβααΆαβααααΆαβααααΈβαα½αβα
αααα Loki α αααααα Loki
ααΆααααα»ααααα·αααααΆαααααααΆαα Loki ααΊ
- ααααΎααααΆαααΎααααΈαααααΆαα»ααα·αααααα
- ααΆαααααΎααααΆααααααΆααα·α αα½α
ααΎαααΉααααααααα ααααααα Prometheus ααααΎαααΆα αα·ααααααα§ααΆα ααααα½αα ααα½αααααΆαααααΎααααΆααααααααΆαα αααα»αααα·αααααα Kubernetes α
ααΆαααααΈαααΈα’αααΈ Prometheus
ααΎααααΈαααα αααΆααα’αααΈααααααα Loki ααααΎαααΆα ααΆααΆααΏαααααΆαααααα»αααΆαααΎαααααααα α αΎαα αα αΆαααααα·α α’αααΈ Prometheus α
αααααααα·αααααααααα½ααα Prometheus ααΊααΆαααΆαααααααααααΈα
ααα»α
αααααΌα (ααΆααααα’αααααΆαα
αα) α αΎααααααΆαα»αααΆαα
αααα»α TSDB (Time Series Data Base) ααΆαα½αααΉαααΆααααααααα·ααααααααααΆαααα»αααααααααΆααααΆαα
α ααα»α’αααΈα αΆαααΆα αααΆαα
ααααΈαααα Prometheus ααΆαααααΆαααΆαααααααΆαααΆααααααααα αααα»ααα·αααααα»αααΊααα αα·α Kubernetesα ααΆαααα‘αΎαααααααΆααΊααΆααααααΆαα α αΎαα ααααα Kubernetes ααααΆααααααΆαα½αα ααα»α αααα ααααΎααααααΆαα Prometheus α Prometheus ααα’αΆα ααΆαααααααααααΈαααααα·ααΈαααααΆαααΆαααααααΆααααα»ααα»αααΊααα ααααααααααααααΆαα»αααααΆαααΆααααΆααα ααΌα ααααααΆααααα½ααα·αα·ααααααααα·ααΈααΊααΆαααΆαααΆααααα½ααααα»αααΆαα’αα»ααααα
ααΆα’αα»αα ααΆαα αααα·αααΆααααααααααΆα turnkey αααααΆααααΆαααααααααααααααα ααα» α αΎαα’αααααααΌαααααααααααααααααααΆααααααΆαααααα½αα’αααα
- ααααΆααααααααααααΆαααααααααααααααΆααααΆαααααΎαααααα ααα»αααααΆα (AWS, Azure α¬ Google)
- ααααΆαααααααα½ααα·αα·ααα "ααΆααααα½ααα·αα·αααααΆααααΆαααα" (α§ααΆα ααα Datadog)
- αααααΎαααααΆαααααααααΌααααααα ααα»ααααΆαααααα½αααααα’αααα
αααααΆαααααααΎαααΈααΈ αααα»αααΆαααααΎ Elasticsearch ααΆαααααααΈ αααααΈααΆααΆααα·ααααααΆαααα»ααα·ααααααααΈαααΆαααΆαα½αααΆ (ααΆαα·αααααΆαααααα αα·αααΆααααα»αααααΆαααααΆααααααααααααΆ)α
Loki ααααΌαααΆααα ααΆα‘αΎαααΎααααΈααααα½ααααααΆαα’αα»ααααααααααααΆααααααΆαααααΌα ααΆααααααα
- α αΆααααααΎαααΆαααα
- ααααΎααααΆααααααΆααα·α αα½α
- ααααΎααΆααααα―αααΆααααααααααΆαααΆαααααΆααα·αααααΆαα½αα‘αΎαα
- αααααΎααΆααΆααααααααα Prometheus ααΎααααΈαα½ααααα»αααΆααααΎαα’αααααααα α»α
αααααΆαααΆαααΆααααα ααΆαααΆαααααααααΎαα‘αΎααααααΆαα αααΆαααααΆααααααααααα½ααα½αα ααα½αα αα½ααααα»αα αααααα½αααααΊαα·αααααΌαααααΎαα·αα·ααααααΆαα·ααΆα ααΌα αααα ααΆααααααααα’ααααααα·αααΆαααααα·αααααΆαααααΆαα α¬αααααΌαααα α αΎααα·αα’αα»ααααΆαα±ααααΆααααα·αα·ααΎααααΉαααΆαααα’ααααααααααα ααα»αααααααααΆααα Loki α ααααααΆαααΆααααΌααα grep αα·αααΆαααααααααααααααα Prometheus ααααα·ααααααΆαα»ααα·ααααα·ααα
ααΆααααΎαα’αααααα§ααααααα·α ααα»
ααΎααααΈαααααΆααααα αααΆααααΆα ααα»α’αααΈααΆαααΆ Loki αα·αααααΌαααΆαααΆαααααΎαα·αα·αααα ααΌααααααααα αα·ααΈααΆααααααααΎαα’αααααα§ααααααα·α ααα»αααα’αααα’αα·αααααα Loki ααΆαααααΎα
1 ααΆαααΌαααααΉα β 2 Dashboard β 3 Adhoc Query β 4 Log Aggregation β 5 Distributed Tracing β 6 Fix!
(1 ααΆααααααΆα β 2 Dashboard β 3 Adhoc Query β 4 Log Aggregation β 5 Distributed Tracing β 6 Fixing!)
αααα·ααααααΊααΆααΎαααα½αααΆαααΆαααΌαααααΉααααααααα½αα ααα½α (Slack Notification, SMS, etc.) α αΎααααααΆααααΈαααα
- ααΎαααααΆααααααααααα Grafana
- ααΌααααα‘ααααΎαααααααααααΆαααα (α§ααΆα ααααα αααα»α Prometheus)
- ααΎαβααΆαα»βαααααβα ααα» (α§ααΆα αααβαααα»α Elasticsearch)
- αααα ααααΆααΎαααΆααααααΆαα ααα αΆα (Jaeger, Zipkin ααα)
- α αΎαα α»αααααααααααααΆααααα αΆααΎαα
αα ααΈααααααα»αααααΈ Grafana + Prometheus + Elasticsearch + Zipkin stack α’αααααΉαααααΌαααααΎα§ααααααα½ααααααααααΆα ααΎααααΈααΆααααααααααααααΆ ααΆαα·αααΆααα’ααΆαααααα’αΆα α’αα»ααααααα αΆαααΆααα’ααααααααααααΎα§ααααααα½αα Grafana α ααΆαα½αα±ααααααααααΆααααΆαα·ααΈααΆαααααααααΆαααααΆαααααΆααααααααΌαααΆαα’αα»αααααα αααα»α Grafana α αΆααααΆααααΈαααα 6 α ααΌα ααααααΆα’αΆα α αΌαααααΎαα·αααααα Prometheus αααααααΆααααΈ Grafana α
α’αααααα Explorer ααΆαααααααααΆα Prometheus αα·α Loki
ααΈα’ααααααααα α’αααα’αΆα ααΎααααααα ααα» Loki ααΆααααααΉααααααα Prometheus αααααααΎαααα·ααααααα’ααααααα α αΆααααΆααααΈαααα 6.5, Grafana α’αα»ααααΆαα±ααα’ααααααααααααααΆααααΆααα αααα»αααΆαα»αααααα ααα» Loki ααΎααααΈααααΎααΆααααααααΆαααα ααΆααα§αααααααΆαααΆααααααΆαα ααα αΆααααα’αααα αΌαα α·ααα (Jaeger) α
ααΆαααααΎααααα Loki αααα»ααααα»α
αααααααΆαααΆααααα½ααααα»αααΎααααΈααΆααααα Loki αααα»ααααα»αααΊααααΎ docker-compose α α―αααΆα docker-compose ααΆαααΈααΆαααα
αααα»αααααΆαα Loki α α’αααα’αΆα
ααα½αααΆαααααΆαααααααααΎααΆααααααααΆααΆαααααα git
:
$ git clone https://github.com/grafana/loki.git
αααααΆααααα’αααααααΌαα αΌααα ααΆααααααα·αααααα
$ cd production
αααααΆααααΈααα α’αααα’αΆα ααα½αααΆαααααα α»αααααααααα»αααααΌαααΆα Dockerα
$ docker-compose pull
ααΈαααα»α ααα Loki ααααΌαααΆαα αΆααααααΎαααΆαα½αααΉαααΆααααααααΆααΌα ααΆαααααα:
$ docker-compose up
ααααΆαααααααα Loki
αααααΊααΆααααΆααααΆαααΌα αα½ααααααΆαααααΆαααααααα Lokiα
αααααΆαααααααΆαααααααα Loki
αααΆαααΈααααααααα αααααααααΎαααΆααααααα·ααΈαα
ααΎαααΆαααΈααα Promtail αααααΌααααααα ααα»α αΎαααααΎααΆαα
Loki αααΆαααΈααααααααα αααααααααααΎαα·ααααααααααΆαα
Loki αααααα Loki αααααΌααααα»αα’αααΈαααααααααΆα α αΎααααααΌαααΆαα
Grafana α
Loki ααααΌαααΆαααΎαααααΎαααΆαα ααΎααααΈααΎααααΆαααΆαα»αααααΆα ααΌαααααΎαααΆαααΆααααααααΆααΆααααααα
$ docker ps
αααα»αααααΈ Docker αααααΆαααα‘αΎαααααΈα ααΆααααααααΆαα½ααααααα‘ααααααααααΌα ααΆααααααα
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
ααΎαααΎααααΆαααΆαα»ααΌα ααΆααααααα
- Promtailα ααααΆααααΆαβααα½αβαα»αβααααΌαβαααααΆααβααΆαβαααααβαααααΆα
- Grafana: α§αααααααααΆαααααααααααααααααΈααααΆα
- Loki: αααα·ααααααΆααα·αααααα
ααΆαααααααα αααααΆαα ααΆαααααααααα»ααΆα (α§ααΆα ααα ααα’ααααΎαααΆαααΈααα·αααα·α) ααααΆααααΆα Promtail ααααΌαααααΆααα±ααααααΎααααΆαααα ααΎαααΆαααΈαααΈαα½ααα Grafana αα·α Loki α’αΆα ααααΌαααΆαααα‘αΎααα ααΎαααΆαααΈααααα½αα
ααΆαααΆααα±ααααααΎααααΆαααα ααΆαα Kubernetes
ααΆαααα‘αΎααααΆαααΆαα» Loki αα ααΎ Kubernetes ααΉαααΆαααΌα ααΆααααααα
- daemonSet αααααΆααααΆαααααααΆαααααΆααααΆα Promtail αα ααΎαααΆαααΈαααΈαα½αααα αααα»α server cluster
- ααΆαααΆαααααααΆα Loki
- α αΎαα α»ααααααααΊααΆαααΆαααααααΆα Grafana α
ααααΆαααα’ Loki α’αΆα ααααΎααΆαααΆαααα αα Helm αααααααΎα±ααααΆααΆααααα½ααααα»αααΆαααΆαααααααΆαα
ααΆαααα‘αΎαααΆαααα Heml
α’ααααα½αααααα‘αΎα Heml αα½α
α αΎαα ααΆα’αΆα
ααααΌαααΆαααΆαααααΈααααΆαα GitHub ααααααααααα ααΆααααΌαααΆαααα‘αΎααααααΆααααααΆαααααααΆααααααααΌαααααΆααΉαααααΆααααααααααααα’ααα α αΎααααααααα½ααα
$PATH
.
α αααΆα: αααα 3.0.0 αα Helm ααααΌαααΆαα ααααααΆαααΆαααααααΈααααα αααααΆαααααΆαααΆαααααααααΆα αααΎαα ααααααΆ α’αααα’αΆαααααΌαααΆαααααΆαα±αααααα αΆαααααα·α αα»αααΉαααααΎααααΆααααΆα.
ααΆαααααααααααααααααΆαα Helm
ααα αΆαααααΌαααΊααααΌαααααααααααΆαα "loki" αααααααΎααΆααααααααΆααΆααααααα
$ helm add loki https://grafana.github.io/loki/charts
αααααΆααααΈααα α’αααα’αΆα ααααααααααα αααααααΆαααααα βlokiβα
$ helm search loki
αααααα:
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...
αααα ααααΆαααααααΆααα»αααΆαααΌα ααΆααααααα
- αααα αα loki/loki ααααΌαααααααΆαααΈααα Loki ααα»αααααα
- αααα αα loki/fluent-bit α’αα»ααααΆαα±ααα’αααααΆαααααααΆα DaemonSet αααααααΎ fluent-bin ααΎααααΈαααααΌααααααα ααα»αααα½αα±αα Promtail
- αααα αα loki/promtail ααΆαααααΆααααΆααααααΌαα―αααΆααααααα ααα»
- αααα αα loki/loki-αααα’αα»ααααΆαα±ααα’αααααΆαα Loki ααααΆααααΆαα½α Promtail α
ααΆαααα‘αΎα Loki
ααΎααααΈααΆαααααααΆα Loki αα Kubernetes ααΌαααααΎαααΆαααΆααααααααΆααΆαααααααα αααα»α "ααΆααααα½ααα·αα·ααα" namespaceα
$ helm upgrade --install loki loki/loki-stack --namespace monitoring
ααΎααααΈαααααΆαα»ααααα»αααΆα ααΌααααααααααΆαααΆαααααα --set loki.persistence.enabled = true:
$ helm upgrade --install loki loki/loki-stack
--namespace monitoring
--set loki.persistence.enabled=true
α αααΆα: ααααα·αααΎα’αααα ααααΆαααααααΆα Grafana αααα»αααααααα½α αααααΆαααααααααααααΆαααΆαααααα
--set grafana.enabled = true
αα αααα’αααααααΎαααΆαααΆααααααααΆααα α’ααααα½αααααα½αααΆαααααααααΌα ααΆααααααα
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.
αααα‘ααααΎαααααΆαααΆααααααα αααα»αααααααααααα "ααΆααααα½ααα·αα·ααα" ααΎαα’αΆα ααΎαααΆα’αααΈαααΆααα’ααααααΌαααΆαααΆαααααααΆαα
$ kubectl -n monitoring get pods -l release=loki
αααααα:
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
ααααΆααα’αααααα»αααααΎαααΆαα α₯α‘αΌααααααααααααααΎαααααα αΎα!
ααααΆαααα Grafana
ααΎααααΈααααΆαααα Grafana αα ααααα Kubernetes α’αααααααΌαααΎαααααΌαααΌααααααααΈαα ααΆααααααααααΆα ααΆαααααααααααΊααΆααΆααααααααΆααΎααααΈααΎαα ααα 3000 αααααΆαααα Grafanaα
$ kubectl -n port-forward monitoring svc/loki-grafana 3000:80
α
ααα»α
ααααΆαααα½ααααααΊαααααΌαααΆαααΎααααΈααααααααααΆααααααααΆααα’αααααααααααα Grafana α ααΆααααααααΆααααααΌαααΆααααααΆαα»αααΆαααααΆαα loki-grafana
αα
αααα»αααΆα .data.admin-user
αααα»ααααααα base64 α
ααΎααααΈααααΆαααΆα‘αΎααα·α α’αααααααΌαααααΎαααΆαααΆααααααααΆααΆααααααα
$ kubectl -n monitoring get secret loki-grafana
--template '{{index .data "admin-password" | base64decode}}'; echo
ααααΎααΆααααααααΆααααααααααααΆααααΆαα½αααααΈα’ααααααααααααααααΆαααΎα (α’αααααααααααα)α
ααΆααααααααααααα·αααααα Loki αα αααα»α Grafana
ααΆααααΌα ααααΌαααααΆααααΆ ααααααα·αααααα Loki ααααΌαααΆααααααΎαα‘αΎα (ααΆαααααααα
ααΆαααααααα/ααααααα·αααααα)α
αααααΊααΆα§ααΆα ααα:
α§ααΆα αααααααΆαααα‘αΎαααααααα·αααααααααααΆαα Loki
αααα α»α ααΎ "ααΆααααα" α’αααα’αΆα αα·αα·αααααΎαααΆααααααΆααααΆαα½α Loki α
ααααΎαα»α Loki
α₯α‘αΌααααααΌαα αΌααα ααΆαα Grafana αα ααααα "αα»ααα" α αα αααααα½ααααααα ααα»ααΈαα»αααΊααα Loki αααααααα·ααααααααααΆααΈ Kubernetes α ααΌα ααααααΆααααΆαααΆα’αΆα ααααΎαα ααΆαααΎααααΈααΎααααααα ααα»αααα»αααΆααααΆαααα½αα
α§ααΆα ααα ααΎααααΈβααααΎαβαααααα ααα»βαα»αααΊααα promtail α’αααβα’αΆα
βααααΎβαααα½αβααΆααααααα {container_name = "promtail"}
.
αα
ααΈαααααα
αα
αΆααααααααΎααααΈααααΎαααΎαααααααα·αααααα Loki α
αααα½ααααααΉααααα‘αααααααααΆααα»αααΊαααααΌα ααα α
αααααααααα½ααα
αααα»α Grafana
αααααααα ααααΆααααααααααα
αααα αΆααααααΎαααΆαα½α Grafana 6.4 α’αααα’αΆα ααΆααααααααΆααααααα ααα»αααααααΆαααα ααΎααααΆαααααααααααα αααααΆααααΈααα α’αααααααΎααααΆααααΉαα’αΆα ααααΌααααΆαααΆαααα αααααΆαα ααα½αααααΎαα ααΎααα ααααα αα·αααΆααααααα·ααΈααααααΆααα
ααΆαααααααααααΆα§ααΆα αααααααααΆααααααααααααααα’αα»ααααα’αααααααααααα
ααααΆαααααααααααααααΌααΆαα½ααααααα Prometheus αα·ααααααα ααα» Loki
α’ααΆαααααα Loki
αααα»αααΆαα αΆααααααΎαααααΎ Loki αααα‘αααααα·ααα αααα»αααα§αααΆ / αααα·αα»ααΆααΆαα½αααΉααααα 0.1 α ααααααααααααααα 1 αα·αααΌααααΈαα 1.1 αα·α 1.2 ααααΌαααΆαα ααααααΆααα½α α αΎαα
ααΆααααΌαααααααΌαααΆαααα½αααααΆααααΆαααα 0.1 αα·αααΆααααααααΆααααααααααΆααααα ααα»αααα 0.3 ααΆααααα αΆααααααΆαα·αααααΆαα αΆαααα»ααα½α α αΎα α αΎααααααααααααααΆαα (0.4 αααααΆαααα 1.0) ααΆαααααΉααααααααΉαα αααΆααα’αΆαααααααααααα»αααααα
αααααΆααααΈ 1.0.0 ααααΆαααααΆααααΆααα’αΆα ααΆαααααα·αααααΎα§αααααααα’ααα αΆααααααααα
ααΆααααααα’ααααααααααα·ααα½ααα·ααΆαα’αααΈ Loki αα ααα»ααααααΆααΆααα½ααααα αΌαααααααΆααΆαα½αααΉα Grafana ααααα’α₯αααα ααα ααΆααα·α Grafana 6.4 ααΆαααΆααα½ααααα αΌαααααα’ααΆαα½αααααΆααααααααααααα½α α αΎαα
Grafana 6.5 αααααααΌαααΆαα ααααααΆαααΆαααααααΈαααα ααααΎα’αααααααΎαα‘αΎααααααααααααΌαααΆααα½ααααα αΌαααααααααΆαααα½αααααΆααααΆαα·ααΆαααααα ααα»αααααααααααααααα·αα αααα»ααααααα JSON α
ααΈααα’αΌααΆαααααααααα αΆαααΈα§ααΆα αααααΌα αα½αααααααααΆααααα
ααΆαααααΎαααα Loki ααΆααααααΆααα
αααα»α Grafana
α§ααΆα αααααΆα’αΆα ααααΎααΆα JSON αα½ααααααΆααα
- αααααααΆαααα α§αααααααΆααααα
- ααααααΆαα·ααΆαααααα ααα»
α§ααΆα ααα α’αααα’αΆα α α»α ααΎ traceId ααΎααααΈα αΌααα ααΆαα Zipkin α¬ Jaegerα
ααΌα
ααααααΆ ααΎααααααΉααααα
αΆαααα·αααααααααα’ααα α αΎαα’ααααΎαα’ααααα
ααααα: www.habr.com