Возможно ли перенаправить ведение журнала в Kubernetes?

#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.