Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 在DataDog中记录应用程序日志_Kubernetes_Monitoring_Datadog - Fatal编程技术网

Kubernetes 在DataDog中记录应用程序日志

Kubernetes 在DataDog中记录应用程序日志,kubernetes,monitoring,datadog,Kubernetes,Monitoring,Datadog,使用datadog官方文档,我能够在datadog UI中打印K8sstdout/stderr日志,我的动机是打印spring boot应用程序在我的pod中某个位置生成的应用程序日志 在群集中完成的配置: 在我的群集中创建了ServiceAccount以及群集角色和群集角色绑定 已创建K8s机密以保存DataDog API密钥 在所有节点中将DataDog代理部署为守护程序集 在应用程序中完成的配置: 下载datadog.jar并在我的应用程序执行时插入它 暴露端口8125和8126 在部署文

使用datadog官方文档,我能够在datadog UI中打印K8s
stdout/stderr
日志,我的动机是打印spring boot应用程序在我的pod中某个位置生成的应用程序日志

在群集中完成的配置:

  • 在我的群集中创建了ServiceAccount以及群集角色和群集角色绑定
  • 已创建K8s机密以保存DataDog API密钥
  • 在所有节点中将DataDog代理部署为守护程序集
  • 在应用程序中完成的配置:

  • 下载datadog.jar并在我的应用程序执行时插入它
  • 暴露端口8125和8126
  • 在部署文件中添加了环境标签
    DD\u TRACE\u SPAN\u标签
    DD\u TRACE\u GLOBAL\u标签
  • 更改了
    logback.xml中的模式
  • 在部署文件中添加了日志配置
  • 在部署文件中添加了env标记
  • 在完成上述配置后,我可以在datadog UI中记录应用程序日志的地方记录
    stdout/stderr
    日志

    如果有人这样做了,请让我知道我错过了什么。
    如果需要,我也可以共享配置。提前感谢

    在K8s群集中安装Datadog时,您可以将安装为守护程序,并在宿主节点上装载各种卷。除此之外,Datadog还可以访问位于/var/log/pods的Pod日志和位于/var/lib/docker/containers的容器日志

    Kubernetes和底层Docker引擎将只在这两个位置包含stdout和stderror的输出(有关更多信息,请参阅)。容器写入容器内日志文件的所有内容对K8s都是不可见的,除非应用更多配置来提取该数据,例如通过应用

    因此,要在设置中运行,请将logback配置为登录到stdout,而不是/var/app/logs/myapp.log


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

    从您的评论“我可以登录”,那么这里有什么问题?寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误,以及在问题本身中重现它所需的最短代码。请参阅:也使用datadog,我不知道datadogs端有任何配置来区分标准输出和标准输出。此外,还不确定spring启动应用程序会向stdout写入什么。通常所有的回写日志都是对标准输出进行的。你怎么知道,你不是从stdout那里得到了什么?@abestrad,谢谢你的评论,你可能知道,当我们在K8s集群中部署我们的应用程序时,我们可以使用命令
    kubectl logs-f
    ,查看日志,这些日志记录在datadog UI中,因为我想在datadog UI中记录我的应用程序日志,而datadog UI是使用路径
    /var/app/logs/myapp.log
    @FritzDuchardt使用logback.xml中的logback.xml配置的,我们可以在pod中的特定位置打印应用程序日志或业务逻辑日志,这可以更好地了解应用程序的运行情况。我想在datadoguitanks@FritzDuchardt中记录这些应用程序日志而不是stdout/stderr日志,配置logback以在控制台中打印所有日志就成功了。我已经接受了这个答案,但由于声誉不好,这个答案并不公开。