gpt4 book ai didi

kubernetes - 将日志从 kubernetes 转发到 splunk

转载 作者:行者123 更新时间:2023-12-02 11:32:21 24 4
gpt4 key购买 nike

我对 Kubernetes 还很陌生,没有任何实践经验。

我的团队面临着关于 推送的日志格式的问题至 .

应用程序正在以这种格式将日志推送到标准输出

{"logname" : "app-log", "level" : "INFO"}

Splunk最终得到这个格式(使用了splunkforwarder)

{
"log" : "{\"logname\": \"app-log\", \"level\": \"INFO \"}",
"stream" : "stdout",
"time" : "2018-06-01T23:33:26.556356926Z"
}

这种格式使 Splunk 中基于属性的查询变得更加困难。

Kubernetes 中是否有任何选项可以从应用程序转发原始日志,而不是分组到另一个 json 中?

我遇到了 this在 Splunk 中发布,但配置是在 Splunk 端完成的

如果我们可以从 Kubernetes 端选择从应用程序发送原始日志,请告诉我

最佳答案

Kubernetes 架构提供了三种收集日志的方式:

<强>1。使用在每个节点上运行的节点级日志记录代理。

您可以通过在每个节点上包含节点级日志记录代理来实现集群级日志记录。日志代理是一个专门的工具,用于暴露日志或将日志推送到后端。通常,日志记录代理是一个容器,它可以访问一个目录,该目录包含来自该节点上所有应用程序容器的日志文件。

日志格式取决于 Docker 设置。您需要在每个节点的/etc/docker/daemon.json中设置log-driver参数。

例如,

{
"log-driver": "syslog"
}

{
"log-driver": "json-file"
}
  • none - 没有可用于容器的日志,docker 日志也​​没有返回任何输出。
  • json-file - 日志格式为 JSON。这Docker 的默认日志记录驱动程序。
  • syslog - 将日志消息写入系统日志工具。

有关更多选项,请查看 link

<强>2。包含一个专用的 sidecar 容器,用于登录应用程序 pod。

您可以通过以下方式之一使用边车容器:

  • sidecar 容器将应用程序日志流式传输到它自己的标准输出。
  • sidecar 容器运行一个日志记录代理,该代理被配置为从应用程序容器中获取日志。

通过让您的 sidecar 容器流式传输到它们自己的 stdout 和 stderr 流,您可以利用已在每个节点上运行的 kubelet 和日志记录代理。 sidecar 容器从文件、套接字或日志中读取日志。每个单独的 sidecar 容器将日志打印到它自己的 stdout 或 stderr 流。

<强>3。从应用程序内将日​​志直接推送到后端。

您可以通过直接从每个应用程序公开或推送日志来实现集群级别的日志记录。

更多信息可以查看official documentation Kubernetes

关于kubernetes - 将日志从 kubernetes 转发到 splunk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50639744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com