Mari kita lihat dasar-dasar logging di Docker dan Kubernetes, lalu pertimbangkan dua alat yang dapat digunakan dengan aman dalam produksi: Grafana Loki dan tumpukan EFK (Elasticsearch + Fluent Bit + Kibana).
Materi artikel merupakan petikan dari kuliah terbuka sekolah Slurm . Jika ada keinginan, dan terlebih lagi untuk kebutuhan produksi, Anda dapat menyelesaikan pelatihan lengkap - mendaftar untuk kursus Pemantauan dan Logging Infrastruktur di Kubernetes .

Docker logging
Di level Kubernetes, aplikasi berjalan di dalam pod, tetapi di level di bawahnya, aplikasi biasanya berjalan di Docker. Oleh karena itu, Anda perlu mengonfigurasi logging sedemikian rupa untuk mengumpulkan log dari container. Container diluncurkan oleh Docker - jadi Anda perlu mencari tahu cara kerja logging di level Docker.
, : 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, .