使用datadog官方文档,我能够在DataDog UI中打印K8s stdout/stderr日志,其目的是在我的Pod中的某个位置打印由Spring Boot应用程序生成的应用程序日志。
在集群中完成的配置:

  • 在群集中创建的ServiceAccount以及群集角色和群集角色绑定(bind)
  • 创建了K8s密钥以保存DataDog API密钥
  • 在所有节点中将DataDog代理部署为守护程序

  • 在App中完成的配置:
  • 下载datadog.jar并将其与我的应用程序执行一起检测
  • 暴露的端口8125和8126
  • 在部署文件
  • 中添加了环境标签DD_TRACE_SPAN_TAGSDD_TRACE_GLOBAL_TAGS
  • 更改了logback.xml的模式
  • 在部署文件
  • 中添加了日志配置
  • 在部署文件
  • 中添加了env标签

    完成上述配置后,我能够将stdout/stderr日志记录到我想在datadog UI中记录应用程序日志的位置
    如果有人这样做了,请让我知道我在这里想念的是什么。
    如果需要,我也可以共享配置。提前致谢

    最佳答案

    在K8s集群中安装Datadog时,您将Node Logging Agent作为Daemonset安装,并在宿主节点上安装了各种卷。除其他事项外,这使Datadog可以访问/ var / log / pods中的Pod日志,并可以访问/ var / lib / docker / containers中的容器日志。
    Kubernetes和底层Docker引擎将仅在这两个位置包括stdout和stderror的输出(有关更多信息,请参见here)。除非容器应用了更多配置来提取该数据,否则容器向容器中的日志文件写入的所有内容对于K8都是不可见的。通过应用side care container pattern
    因此,为了使您的设置正常运行,配置logback以登录到stdout,而不是/var/app/logs/myapp.log
    另外,如果您不使用APM,则无需使用datadog.jar来检测代码并进行所有跟踪设置(设置端口等)。

    关于kubernetes - 在DataDog中记录应用程序日志,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62549173/

    10-15 20:28