是否可以在Kubernetes中重定向日志记录?

时间:2019-03-15 11:52:25

标签: 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或在这种情况下kubectl logs -f myapp来查询日志,我将它们重定向到以集中方式对其进行监视(例如,使用ELK)。

Kubernetes是否可能?什么是等效解决方案?

谢谢您的帮助

2 个答案:

答案 0 :(得分:4)

是的,有许多开源和商业解决方案都可以将所有kubernetes日志(应用程序和集群以及所有内容)发送到类似ELK的系统。

假设您已经设置了ElasticSearch。

我们正在使用FluentBit将K8S日志发送到EFK:

Fluent Bit DaemonSet已准备好与普通Kubernetes集群上的Elasticsearch一起使用

https://github.com/fluent/fluent-bit-kubernetes-logging

我们还使用SearchGurard和ELk来限制用户查看仅在自己的名称空间中运行的应用程序的日志。

答案 1 :(得分:0)

ELK堆栈是一种非常常见的日志聚合和索引编制方法。有很多很棒的教程将这个堆栈部署到Kubernetes上,或者您可以使用这个稳定的头盔图来通过一个命令安装所有内容:

https://github.com/helm/charts/tree/master/stable/elastic-stack

如果您以前从未使用过Helm,则可以通过values.yaml调整部署。