【问题标题】:Send logs from specific pod to external server将日志从特定 pod 发送到外部服务器
【发布时间】:2022-01-17 22:28:16
【问题描述】:

我们需要从一个 k8s pod(具有巨大流量负载的 pod)向Splunk 服务器发送大量(非常)日志,我查看了文档并发现: p>

https://kubernetes.io/docs/concepts/cluster-administration/logging/#sidecar-container-with-a-logging-agent

但是,文档中有一条注释,说明了大量的资源消耗。还有其他选择吗?我的意思是更有效率?由于这些 pod 处理流量,我们无法添加额外的负载,这可能会危及它的稳定性......

【问题讨论】:

  • 为什么这会同时被标记为 Azure 和 AWS?
  • 请参考下面的链接,Splunk 的最佳实践建议。 docs.splunk.com/Documentation/Splunk/8.2.0/Capacity/…
  • @MrOverflow,能否请您指向相关链接,因为该链接包含一般数据,我不确定其相关...
  • 当然,我不是 Slunk 方面的专家。更熟悉其他云提供商的日志记录。但是如果你使用任何钩子来获取流数据,它肯定会消耗你服务器的一些资源。恕我直言,在较低的环境下运行它并评估资源消耗,然后进行生产。

标签: amazon-web-services azure kubernetes


【解决方案1】:

有一个获取 Kubernetes 日志的官方解决方案:Splunk Connect for Kubernetes。在引擎盖下,它还使用 fluentd 作为日志记录部分。

https://github.com/splunk/splunk-connect-for-kubernetes

您将找到一个示例配置和一种方法,以便首先在 microK8s 上对其进行测试,以熟悉配置和部署:https://mattymo.io/deploying-splunk-connect-for-kubernetes-on-microk8s-with-helm/

如果您只想要来自特定容器的日志,您可以使用值文件的这一部分来仅选择您感兴趣的容器中的日志:

  fluentd:
    # path of logfiles, default /var/log/containers/*.log
    path: /var/log/containers/*.log
    # paths of logfiles to exclude. object type is array as per fluentd specification:
    # https://docs.fluentd.org/input/tail#exclude_path
    exclude_path:
    #  - /var/log/containers/kube-svc-redirect*.log
    #  - /var/log/containers/tiller*.log
    #  - /var/log/containers/*_kube-system_*.log (to exclude `kube-system` namespace)

【讨论】:

  • 谢谢!为了验证我是否理解,它将查找集群中的所有 pod 日志,并且我需要明确删除我不想发送日志的 pod?如果我们有很多豆荚,它不是有点麻烦吗?从一开始就没有办法告诉它只观看名称为foo 的吊舱?
  • 它还可以与 DaemonSet 一起使用,我们可以将它配置为像 Deployment 一样工作吗?
  • 该解决方案旨在监控所有容器日志。要监视来自一个容器的日志,请在上面提到的 fluentd 部分中指定它的路径 path: /var/log/containers/alberto-container*.log 我猜它需要作为守护程序运行,因为在多节点集群中,您的 pod 可以在任何节点上生成。
  • 如果您有不使用 Daemonsets 的硬性要求,您可以尝试这些解决方案。他们应该提供一个起点。一个基于fluentd,另一个基于splunkuniversalforwarder:medium.com/@deepak4babu/…computingforgeeks.com/…
  • 谢谢,有一个问题,如果我使用path: /var/log/containers/alberto-container*.log,这对于我的情况“只发送一个 pod 日志”是一个很好的解决方案吗?或者这是滥用?你会为高负载条目数据的生产做些什么,例如4000 条记录用于第二次选择,只需要从一个 pod 发送到 splunk 吗?
猜你喜欢
  • 1970-01-01
  • 2019-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多