在DataDog中记录应用程序日志

时间:2020-06-24 06:41:37

标签: kubernetes monitoring datadog

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

在集群中完成的配置:

  1. 在群集中创建ServiceAccount以及群集角色和群集角色绑定
  2. 创建了用于保存DataDog API密钥的K8s机密
  3. 在所有节点中将DataDog代理部署为守护程序

在App中完成配置:

  1. 下载datadog.jar并将其与我的应用执行一起进行检测
  2. 公开的端口8125和8126
  3. 在部署文件中添加了环境标签DD_TRACE_SPAN_TAGSDD_TRACE_GLOBAL_TAGS
  4. 更改了logback.xml中的模式
  5. 在部署文件中添加了日志配置
  6. 在部署文件中添加了env标签

完成上述配置后,我可以将stdout/stderr日志记录到要在datadog UI中记录应用程序日志的位置

如果有人这样做,请告诉我我在这里想念的是什么。 如果需要,我也可以共享配置。预先感谢

1 个答案:

答案 0 :(得分:1)

在K8s群集中安装Datadog时,将Node Logging Agent作为后台驻留程序安装,并在宿主节点上安装了各种卷。除其他外,这使Datadog可以访问/ var / log / pods中的Pod日志以及/ var / lib / docker / containers中的容器日志。

Kubernetes和底层Docker引擎将仅在这两个位置包含stdout和stderror的输出(有关更多信息,请参见here)。除非容器应用了更多配置来提取该数据,否则容器向容器中的日志文件写入的所有内容对于K8都是不可见的。通过应用side care container pattern

因此,要使您的设置正常运行,请配置登录以登录到stdout,而不是/var/app/logs/myapp.log

此外,如果您不使用APM,则无需使用datadog.jar来检测代码并进行所有跟踪设置(设置端口等)。