#docker #kubernetes #docker-swarm #elastic-stack
#docker #kubernetes #docker-swarm #elastic-stack
Вопрос:
Я новичок в Kubernetes, и когда я работал с Docker swarm, я мог перенаправить ведение журнала следующим образом:
myapp:
image: myregistry:443/mydomain/myapp
deploy:
mode: global
restart_policy:
condition: on-failure
logging:
driver: gelf
options:
gelf-address: "udp://localhost:12201"
environment:
- LOGGING_LEVEL=WARN
таким образом, вместо просмотра журналов с помощью docker service logs -f myapp
or в данном случае kubectl logs -f myapp
, я бы перенаправил их для централизованного мониторинга (например, с помощью ELK).
Возможно ли это с Kubernetes? Какое эквивалентное решение?
Спасибо за вашу помощь
Ответ №1:
Да, существует множество решений как с открытым исходным кодом, так и коммерческих для отправки всех журналов kubernetes (приложений, кластера и всего остального) в такие системы, как ELK.
Предполагая, что у вас уже настроен ElasticSearch.
Мы используем FluentBit для отправки журналов K8S в EFK:
Набор демонов Fluent Bit готов к использованию с Elasticsearch в обычном кластере Kubernetes
https://github.com/fluent/fluent-bit-kubernetes-logging
Мы также используем SearchGurard с ELk, чтобы ограничить просмотр пользователями журналов, принадлежащих приложениям, запущенным только в их собственных пространствах имен.
Комментарии:
1. Спасибо, я изучу это
Ответ №2:
Стек ELK — это очень распространенный подход к агрегированию и индексированию журналов. Существует множество отличных руководств по развертыванию этого стека в Kubernetes, или вы можете воспользоваться этой стабильной рулевой схемой, которая устанавливает все одной командой:
https://github.com/helm/charts/tree/master/stable/elastic-stack
Вы можете настроить свое развертывание с помощью значений.yaml, если вы раньше не работали с Helm.