ืืฆืืืขืื, ืืืจืืืืื! ืืงืจืืช ืชืืืืช ืืจืฉืื ืืืฉื ืืงืืจืก
ืืืืจ ืื ืืื ืืงืืื ืงืฆืจื ืืืืงื. ืคืจืืืงื ืืืงื
ืืืฉืจืื ืืขืืงืจืืช ืืืืงื ืืืืชื
- ืฉืืืืฉ ืืชืืืืืช ืืืืกืื ื ืชืื ืื
- ืฆืจืืืช ืืฉืืืื ื ืืืื
ื ืืืืจ ืืขืงืจืื ืืช ืฉื ืคืจืืืชืืืก ืื ืืชื ืืื ืืืืืืืช ืืฉืืืืฉ ืื ืืืงืฉืจ ืฉื Kubernetes.
ืืื ืืืืื ืขื ืคืจืืืชืืืก
ืืื ืืืืื ืืืื ืืื ืืืงื ืขืืื, ืืฉืื ืืงืืช ืฆืขื ืืืืจื ืืืืงืจ ืงืฆืช ืืคืจืืืชืืืก.
ืืื ืืืืคืืื ืื ืืืืืืงืื ืฉื ืคืจืืืชืืืก ืืื ืืืืืฅ ืฉื ืืืืื ืื ืงืืืืช ืืืกืืฃ (ืืืืฆืขืืช ืืฆืืื ืื) ืืฉืืืจืชื ื-TSDB (Time Series Data Base, ืืกื ื ืชืื ืื ืฉื ืกืืจืืช ืืื) ืืชืืกืคืช ืืื ื ืชืื ืื ืืฆืืจืช ืชืืืืืช.
ืืืืข ืื ืืืจืื
ืืืืจืื ื ืืคืื ืคืจืืืชืืืก ืืกืื ืืจื ืื ืคืงืื ืืขืืื ืืงืื ืืืื ืจืื ืื-Kubernetes: ืืืชืงื ื ืฉืื ืคืฉืืื ืืืื, ืืืืฉืืื Kubernetes ืืฉ ืืชืืืื ื ืงืืืช ืงืฆื ืขืืืจ Prometheus. ืคืจืืืชืืืก ืืืืื ืื ืืืืฅ ืืืืื ืืืืฉืืืื ืืคืจืืกืื ืืืืื ืชืื ืฉืืืจื ืขื ืชืืืืืช ืกืคืฆืืคืืืช. ืืื, ื ืืืืจ ืืืฉืืืื ืงื ืืืื ืืืืฉืื.
ืืืจืื ืืฆืขืจ, ืขืืืื ืืื ืคืชืจืื ืกืืืจ ืื ืืืื ืืืื ืื, ืืืชื ืฆืจืื ืืืฆืื ืคืชืจืื ืขืืืจ ืขืฆืื:
- ืฉืืจืืช ืขื ื ืื ืืื ืืจืืืื ืืืื ืื (AWS, Azure ืื Google)
- ืฉืืจืืช ื ืืืืจ "ื ืืืืจ ืืฉืืจืืช" (ืืืืืื, Datadog)
- ืืฆืืจืช ืฉืืจืืช ืืืกืืฃ ืืืื ืื ืืฉืื.
ืขืืืจ ืืืคืฉืจืืช ืืฉืืืฉืืช, ืืฉืชืืฉืชื ืืืืคื ืืกืืจืชื ื- Elasticsearch, ืืืจืืช ืืขืืืื ืฉืื ืชืืื ืืืืชื ืืจืืฆื ืืื ื (ืืืืืื ืืืืืช ืืืืจืืืืช ืืืืืจื ืฉืื).
ืืืงื ืชืืื ื ืื ืฉืืืื ืงื ืืืืฉืื ืขื ืคื ืืขืงืจืื ืืช ืืืืื:
- ืืืืืช ืงื ืืืชืืื
- ืฆืืจืืื ืืขื ืืฉืืืื
- ืขืืืื ืขืฆืืืืช ืืื ืชืืืืงื ืืืืืืช
- ืืฉืืฉ ืืชืืกืคืช ื-Prometheus ืืื ืืกืืืข ืืืงืืจืืช ืืืืื
ืขื ืืืช, ืืคืฉืืืช ืืื ืืื ืขื ืืฉืืื ืืื ืคืฉืจืืช. ืืื ืืื ืืื ืื ืืืืกืืฃ ืืช ืืชืืื ืืืื ืืงืก. ืืื, ืืืคืืฉ ืืงืกื ืืื ื ืืขืื ืื ืขืฉืืจ ืืืืืื ืืืื ื ืืืคืฉืจ ืืฉืืืจ ืกืืืืกืืืงืืช ืขื ืชืืื ืืืงืกื. ืืื ืืืืืื ืฉืืืงื ืจืืฆื ืืืืืช ืืืงืืืื ืืืืฉืืื ื-grep ื-Prometheus, ืื ืื ืืืกืจืื.
ืืงืืจืช ืชืงืจืืช
ืืื ืืืืื ืืื ืืืชืจ ืืืืข ืืืงื ืืื ื ืืงืืง ืืืื ืืงืก, ืืื ื ืืืืจ ืืฉืืืช ืืงืืจืช ืืืืจืืขืื ืื ืืฉืชืืฉื ืืคืชืื ืืืงื:
1 ืืชืจืื โ 2 ืืื ืืืืื ืื โ 3 ืฉืืืืชืช ืื-ืืืง โ 4 ืฆืืืจืช ืืืื โ 5 ืืขืงื ืืืืืจ โ 6 ืชืืงืื!
(1 ืืืืจื โ 2 ืืื ืืืืื ืื โ 3 ืฉืืืืชืช ืื-ืืืง โ 4 ืฆืืืจื ืืืื โ 5 ืืขืงื ืืืืืจ โ 6 ืชืืงืื!)
ืืจืขืืื ืืื ืฉื ืงืื ืืืืืฉืื ืืชืจืื (Slack Notification, SMS ืืื') ืืืืจื ืื:
- ืชืกืชืื ืขื ืืืืืช ืืืืืื ืื ืฉื Grafana
- ืชืกืชืื ืขื ืืืื ืฉืืจืืช (ืืืืืื, ื-Prometheus)
- ืืกืชืื ืขื ืขืจืื ืืืื (ืืืืืื, ื- Elasticsearch)
- ืืืื ืชืกืชืื ืขื ืขืงืืืช ืืืืืจืืช (ืืืืจ, ืืืคืงืื ืืื')
- ืืืืกืืฃ ืืชืงื ืืช ืืืขืื ืืืงืืจืืช.
ืืื, ืืืงืจื ืฉื ืืืกื ืืช Grafana + Prometheus + Elasticsearch + Zipkin, ืชืฆืืจื ืืืฉืชืืฉ ืืืจืืขื ืืืื ืฉืื ืื. ืืื ืืืกืื ืืื, ืื ืืืื ื ืืื ืืืืืช ืืกืืื ืืขืฉืืช ืืช ืื ืืฉืืืื ืืืื ืขื ืืื ืืื: Grafana. ืจืืื ืืฆืืื ืื ืืืฉื ืื ืืืืงืจ ืืืืฉืืช ืืืจืคืื ื ืืื ืืจืกื 6. ืื, ื ืืชื ืืืฉืช ืื ืชืื ื ืคืจืืืชืืืก ืืฉืืจืืช ืืืจืคืื ื.
ืืกื Explorer ืืคืืฆื ืืื ืคืจืืืชืืืก ืืืืงื
ืืืกื ืื, ืชืืืื ืืฆืคืืช ืืืืื ืื ืืืืงื ืืงืฉืืจืื ืืืืื ืคืจืืืชืืืก ืืืืฆืขืืช ืงืื ืกืคื ืืืกื ืืืคืืฆื. ืืื ืืจืกื 6.5, Grafana ืืืคืฉืจืช ืื ืื ืชื ืืช ืืืื ืืืขืงื ืืขืจืืื ืืืืื Loki ืืื ืืขืงืื ืืืจ ืงืืฉืืจืื ืืืื ืืืขืงื ืืืืืืจืื ืืืืขืืคืื ืขืืื (Jaeger).
ืืืื ืืงืืื ืฉื ืืืงื
ืืืจื ืืงืื ืืืืชืจ ืืืืืง ืืช Loki ืืืืคื ืืงืืื ืืื ืืืฉืชืืฉ ื-docer-compose. ืืงืืืฅ docker-compose ื ืืฆื ืืืืืจ Loki. ืืชื ืืืื ืืงืื ืืช ืืืืืจ ืขื ืืคืงืืื ืืืื git
:
$ git clone https://github.com/grafana/loki.git
ืื ืืชื ืฆืจืื ืืขืืืจ ืืกืคืจืืืช ืืืืฆืืจ:
$ cd production
ืืืืจ ืืื, ืืชื ืืืื ืืงืื ืืช ืืชืืื ืืช ืืืืจืื ืืช ืฉื Docker:
$ docker-compose pull
ืืืกืืฃ, ืขืจืืืช Loki ืืชืืืื ืขื ืืคืงืืื ืืืื:
$ docker-compose up
ืืืจืืืืืช ืืืงื
ืื ื ืชืจืฉืื ืงืื ืขื ืืจืืืืงืืืจืช ืืืงื:
ืขืงืจืื ืืช ืืืจืืืืืช ืืืงื
ืืงืื ืืืื ืืจื ื ืืจืืฅ ืืืฉืืืื ืขื ืืฉืจืช, Promtail ืืืกืฃ ืืืืื ืืฉืืื ืืืชื ืืืืงื, ืืงืื ืืืื ืืจื ื ืื ืฉืืื ืืื ื ืชืื ืื ืืืืงื. ืืืงื ืฆืืืจ ืืื ืืืขืืืจ ืืืชื ืืืจืคืื ื.
ืืืงื ืจืฅ. ืืื ืืืฆืื ืืช ืืจืืืืื ืืืืื ืื, ืืคืขื ืืช ืืคืงืืื ืืืื:
$ 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: ืืื ืืื ืืืืืื ืื ืืืคืืจืกื
- ืืืงื: ืืืื ืจืืืื ืื ืชืื ืื
ืืืืง ืืชืฉืชืืช ืงืืืกืืช (ืืืืืื, ืืืืืกืกืช ืขื ืืืื ืืช ืืืจืืืืืืืช), ืืฉ ืืคืจืืก ืืช ืกืืื Promtail ืืื ืืืฉื. ื ืืชื ืืืชืงืื ืืช Grafana ืืืืงื ืขื ืืืชื ืืืื ื.
ืคืจืืกื ื-Kubernetes
ืืชืงื ืช ืจืืืื Loki ื- Kubernetes ืชืืื ืืืืงืื:
- daemonSet ืืคืจืืก ืืช ืกืืื Promtail ืืื ืืืช ืืืืืื ืืช ืืืฉืืื ืืฉืจืชืื
- ืคืจืืกืช ืืืงื
- ืืืืืจืื ืืื ืคืจืืกืช ืืจืคืื ื.
ืืืจืื ืืืื, Loki ืืืื ืืืืืืช Helm, ืื ืฉืืงื ืขื ืืคืจืืกื.
ืืชืงื ื ืืจื ืืื
ืืชื ืืืจ ืืืืจ ืืืชืงืื ืืช Heml. ื ืืชื ืืืืจืื ืืืชื ืืืืืจ GitHub ืฉื ืืคืจืืืงื. ืืื ืืืชืงื ืขื ืืื ืืืืืฅ ืืืจืืืื ืืืชืืื ืืืจืืืืงืืืจื ืฉืื ืืืืกืคืช ืืื ืืืื $PATH
.
ืืขืจื: ืืจืกื 3.0.0 ืฉื Helm ืฉืืืจืจื ืืืืจืื ื. ืืืืืื ืฉืืื ืื ืฉืื ืืืื ืจืืื, ืืืืืฅ ืืงืืจื ืืืืชืื ืืขื ืืคื ื ืชืืืืช ืืฉืืืืฉ ืื..
ืืืกืคืช ืืงืืจ ืขืืืจ Helm
ืืฆืขื ืืจืืฉืื ืืื ืืืกืคืช ืืืืจ "loki" ืขื ืืคืงืืื ืืืื:
$ helm add loki https://grafana.github.io/loki/charts
ืืืืจ ืืื, ืืชื ืืืื ืืืคืฉ ืืืืืืช ืืฉื "ืืืงื":
$ 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
- ืืืืื ืืืงื/ืคืืืื ื-ืืื ืืืคืฉืจ ืื ืืคืจืืก ืืช DaemonSet ืืืืฆืขืืช fluent-bin ืืืืกืืฃ ืืืื ืื ืืืงืื Promtail
- ืืืืื loki/promtail ืืืื ืกืืื ืืืกืืฃ ืืืื ืื
- ืืืืื ืืืงื/ืืืงื-ืืืกื ืืช, ืืืคืฉืจ ืื ืืคืจืืก ืืื ืืช Loki ืืื ืขื Promtail.
ืืชืงืื ืืช ืืืงื
ืืื ืืคืจืืก ืืช Loki ื-Kubernetes, ืืคืขื ืืช ืืคืงืืื ืืืื ืืืจืื ืืฉืืืช "ื ืืืืจ":
$ 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
ืื ืืชืจืืืืื ืคืืขืืื. ืขืืฉืื ืืืืข ืืืื ืืขืฉืืช ืืื ืืืืงืืช!
ืืชืืืจ ืืืจืคืื ื
ืืื ืืืชืืืจ ืืืจืคืื ื ืืชืืช ืืงืืืจื ืืก, ืฆืจืื ืืคืชืื ืื ืืจื ืืชืจืืื ืฉืื. ืืืื ืืคืงืืื ืืคืชืืืช ืืฆืืื 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 (Configuration / Datasource) ื ืืฆืจ.
ืื ื ืืืืื:
ืืืืื ืืืืืจืช ืืงืืจ ื ืชืื ืื ืขืืืจ ืืืงื
ืขื ืืื ืืืืฆื ืขื "ืืืืงื" ืชืืื ืืืืืง ืืช ืืงืฉืจ ืขื ืืืงื.
ืืืืฉ ืืงืฉืืช ืืืืงื
ืืขืช ืขืืืจ ืืืจืคืื ื ืืขืืืจ ืืงืืข "ืืงืจ". ืืขืช ืงืืืช ืืืื ืื ืืืืืืืช, ืืืงื ืืืกืืฃ ืืื ื ืชืื ืื ื-Kubernetes. ืื, ืื ืืืคื ืืืืืช ืืคืฉืจื ืืืฆืื ืืช ืืืืื ืื ืฉื ืืืื ืืกืืื.
ืืืืืื, ืืืืืจืช ืืืื ื ืืืื ืฉื promtail, ืชืืื ืืืฉืชืืฉ ืืฉืืืืชื ืืืื: {container_name = "promtail"}
.
ืื ืชืฉืื ืืืืืจ ืืช ืืงืืจ ืื ืชืื ืื ืฉื Loki ืื ืืื.
ืฉืืืืชื ืื ืชืืืืจ ืคืขืืืืช ืืืื ืืืืคื ืืื:
ืชืืฆืืช ืฉืืืืชื ืืืจืคืื ื
ืืืกืคื ืืืื ืืืืืื ืื
ืืื ื-Grafana 6.4, ืืคืฉืจ ืืฉืื ืคืจืื ืืืื ืืฉืืจืืช ืขื ืืื ืืืืืื ืื. ืืืืจ ืืื, ืืืฉืชืืฉ ืืืื ืืขืืืจ ืืืืืจืืช ืืื ืืกืคืจ ืืืงืฉืืช ืืืชืจ ืฉืื ืืขืงืืืช ืืคืืืงืฆืืืช.
ืืืื ืืืืื ืืืื ืืืืื ืื ืฉืืืืฉื ืืช ืืืื ืืจืืงืฆืื ืืื:
ืืื ืืืืื ืื ืืืืืื ืขื ืืืื Prometheus ืืืืื ื ืืืงื
ืืขืชืื ืฉื ืืืงื
ืืชืืืชื ืืืฉืชืืฉ ืืืืงื ืืืื/ืืื ื ืขื ืืจืกื 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.
ืืกืจืืื ืฉืืืื ืืฆืื ืืืืื ืงืื ื ืืื ืื ืื ืื:
ืฉืืืืฉ ืืืืจืืืืช ืืืงื ืฉื ืืชื ื ืืืจืคืื ื
ืืคืฉืจ ืืืฉืชืืฉ ืืืื ืืฉืืืช ื-JSON, ืืืฉื, ืืื:
- ืงืืฉืืจืื ืืืื ืืืฆืื ื
- ืกืื ืื ืชืืื ืืืื
ืืืืืื, ืืชื ืืืื ืืืืืฅ ืขื traceId ืืื ืืขืืืจ ืื Zipkin ืื Jaeger.
ืืจืืื, ืื ื ืืฆืคืื ืืืขืจืืชืืื ืืืืืื ืื ืืชืื
ืืงืืจ: www.habr.com