Wir werden die Grundlagen der Protokollierung in Docker und Kubernetes analysieren und dann zwei Tools betrachten, die sicher in der Produktion verwendet werden können: Grafana Loki und der EFK-Stack (Elasticsearch + Fluent Bit + Kibana).
Das Material des Artikels ist ein Auszug aus einer offenen Vorlesung der Slurm-Schule . Wenn Sie einen Wunsch haben und vor allem einen Produktionsbedarf haben, können Sie eine vollstĂ€ndige Schulung absolvieren. Melden Sie sich fĂŒr einen Kurs zur Ăberwachung und Protokollierung der Infrastruktur in Kubernetes an .

Docker-Protokollierung
Auf der Kubernetes-Ebene werden Anwendungen in Pods ausgefĂŒhrt, auf der darunter liegenden Ebene jedoch normalerweise in Docker. Daher mĂŒssen Sie die Protokollierung so konfigurieren, dass Protokolle aus Containern erfasst werden. Container werden von Docker gestartet. Sie mĂŒssen also herausfinden, wie die Protokollierung auf Docker-Ebene funktioniert.
, : stdout/stderr, . Docker Daemon, , stdout/stderr. : ( Logrotate ), Docker Daemon .
Docker - . Docker Community Edition (CE) - , Docker Enterprise Edition (EE).

Docker EE : Southbridge Open Source , Docker EE .
- Docker CE:
local â Docker Daemon;
json-file â json-log ;
journald â journald.
Docker daemon.json.
âlog-driverâ , âlog-optsâ â . âjson-fileâ, â âmax-sizeâ: â10mâ; ( ) â âmax-fileâ: â3â; , .

- . , -.
Docker:

: -, json-file, . (Rsyslog, Fluentd, Logagent ) Elastic, Sematext .
Kubernetes
Kubernetes : pod, , stdout/stderr. Docker , .

Kubernetes.
. . , , . Kubernetes --previous, Pod, .
. , . , .
, . (, Rsyslog), â Docker (, journal-bit - Docker journald). journal-bit â ( - Docker , journald), ( CentOS 7 systemd journald). , . , journal-bit , .
â . CentOS 7 (messages, audit, secure) var- . Docker json. , CentOS 7 Docker .
ELK Stack. : Elasticsearch, Logstash Kibana.
Elasticsearch , Logstash , Kibana , . ELK Stack , , , . , .
. , , , . , . , , , Pod , namespace . .
. , . , , . â .
, , â , «warning» «error». nginx ingress-, , 200. : - Nginx, .
, . , , . 200. â ingress-.
, : , , , .
. , Prometheus, .
: , â . , .
, Kubernetes :

, , -, ( â Logging Backend). , , Kubernetes.
.
Grafana Loki
Grafana Loki , . : , , Elasticsearch, TSDB (time series database). , Prometheus, . , Loki â «Prometheus ».
Loki â Grafana. : Grafana , Loki, . .
Loki :

DaemonSet â Promtail Fluent Bit. . Loki TSDB. , : Pods, namespaces, .
Loki Grafana. Loki , LogQL â PromQL Prometheus. Loki , .
Loki Grafana
, Loki (â400â, â404â ); ; , âerrorâ. , .
Loki , , , . Loki .
Elastic + Fluent Bit + Kibana (EFK Stack)
EFK â , .
ELK (Elasticsearch + Logstash + Kibana), - Logstash. Fluentd, Fluent Bit â -.
, Fluent Bit , 100 , Fluentd: «, Fluentd 20 , Fluent Bit 150 » â . , Fluent Bit .
Fluent Bit , Fluentd, , Fluent Bit.
EFK: ( , DaemonSet, ) (Elasticsearch, PostgreSQL Kafka). Kibana .

Kibana -. , .

.

Fluent Bit
Fluent Bit, , , Logstash, . Fluent Bit 6 , , Fluent Bit.

Input , systemd tcp-socket ( endpoint, Fluent Bit ). , , .
Parser . Nginx . JSON: . JSON , , .
Filter. . , âwarningâ . .
Buffer. Fluent Bit : . â , . , . , .
Routing/Output . , Elasticsearch, PostgreSQL , , Kafka.
, Fluent Bit Fluentd. , Fluentd, , , .
ElasticsearchâŠ
, Elasticsearch .
- ElastAlert. . , , .
- Curator API Elasticsearch. Elastic, , . : - â , . - . , 5 . , , .
...
: , Kubernetes, Southbridge, .