Analisaremos os conceitos båsicos de registro no Docker e Kubernetes e, em seguida, consideraremos duas ferramentas que podem ser usadas com segurança na produção: Grafana Loki e a pilha EFK (Elasticsearch + Fluent Bit + Kibana).
O material do artigo Ă© um extrato da palestra aberta da escola Slurm . Se houver um desejo, e mais ainda para uma necessidade de produção, vocĂȘ pode concluir um treinamento completo - inscreva-se em um curso sobre infraestrutura de monitoramento e registro no Kubernetes .
Registro do Docker
No nĂvel do Kubernetes, os aplicativos sĂŁo executados em pods, mas no nĂvel abaixo eles geralmente sĂŁo executados no Docker. Portanto, vocĂȘ precisa configurar o registro de forma a coletar os registros dos contĂȘineres. Os contĂȘineres sĂŁo iniciados pelo Docker - entĂŁo vocĂȘ precisa descobrir como o registro funciona no nĂvel do 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, .