【问题标题】:How to configure filebeat kubernetes deamon to index on namespace or pod name如何配置 filebeat kubernetes 守护进程以索引命名空间或 pod 名称
【发布时间】:2020-05-28 08:30:14
【问题描述】:

我目前正在尝试将日志从我的 kubernetes 集群获取到外部 ElasticSearch/Kibana。到目前为止,我已经使用this 守护进程部署来让 filebeat 运行并通过管道传输到我的外部服务器,但我无法弄清楚如何将索引设置为有意义的东西。 This 文档页面告诉我,我需要在 output.elasticsearch 部分中创建 am 索引键,但我不知道该放入什么值。

我想要的输出格式类似于<cluster-name>-<namespace>-<pod name>

IE:devKube-frontend-publicAPI-123abc

【问题讨论】:

    标签: elasticsearch kubernetes elastic-stack filebeat


    【解决方案1】:

    前提条件:您已启用add_kubernetes_metadata: ~

    然后您可以像这样在索引名称中使用该元数据:

    output.elasticsearch:
      index: "%{[kubernetes.namespace]:filebeat}-%{[beat.version]}-%{+yyyy.MM.dd}"
    
    • %{[kubernetes.namespace]:filebeat}:使用 Kubernetes 命名空间,如果没有,则回退到 filebeat
    • 强烈建议在升级 Filebeat 且映射发生重大更改的情况下添加 %{[beat.version]}。这应该仅限于主要版本更改(如果有的话),但是您可以通过此设置轻松避免这个问题。
    • %{+yyyy.MM.dd} 甚至更好的基于时间的索引模式将是ILM policy 具有均匀且适当大小的分片。

    PS:您在 add_kubernetes_metadata: ~ 的字段中有 Pod 名称和其他详细信息。我会小心不要将索引切成小块,因为每个分片都有一定的开销。默认的 Filebeat ILM 策略是每个分片 50GB — 如果您的分片小于 10GB,您很可能会在某个时候遇到问题。让索引更粗粒度,只为特定 Pod 使用过滤器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-10
      • 1970-01-01
      • 1970-01-01
      • 2020-06-19
      • 2013-08-24
      • 1970-01-01
      • 2021-11-05
      • 2021-09-12
      相关资源
      最近更新 更多