Ответ
В DevOps-практике я выстраивал централизованные системы логирования для микросервисных архитектур в Kubernetes. Основной стек: Fluent Bit как легковесный сборщик логов в DaemonSet, Elasticsearch для хранения и индексации, и Kibana для визуализации. Настраивал парсинг структурированных логов (JSON) и Grok-паттерны для неструктурированных.
Пример конфигурации Fluent Bit для парсинга JSON-логов Nginx и обогащения метаданными Pod:
[INPUT]
Name tail
Path /var/log/containers/*nginx*.log
Parser docker
Tag kube.*
Mem_Buf_Limit 5MB
[FILTER]
Name kubernetes
Match kube.*
Kube_URL https://kubernetes.default.svc.cluster.local:443
Merge_Log On
[FILTER]
Name parser
Match kube.*
Key_Name log
Parser nginx_json
Reserve_Data On
[OUTPUT]
Name es
Match *
Host elasticsearch-master
Port 9200
Logstash_Format On
Logstash_Prefix fluent-bit
Для высоконагруженных систем также использовал Grafana Loki в связке с Promtail, что экономичнее по ресурсам при поиске по меткам. Настраивал алертинг в Grafana на основе паттернов в логах (например, рост количества 5xx ошибок) и политики ротации/удаления индексов в Elasticsearch с помощью Curator.