如何配置filebeat kubernetes守护进程以在名称空间或Pod名称上建立索引

问题描述 投票:0回答:1

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

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

IE:devKube-frontend-publicAPI-123abc

elasticsearch kubernetes elastic-stack filebeat
1个回答
0
投票

前提:您已启用add_kubernetes_metadata: ~

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

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

PS:您在ILM policy中的字段中具有Pod名称和其他详细信息。我会注意不要将索引切成小块,因为每个分片都有一定的开销。 Filebeat ILM的默认策略是每个分片50GB-如果分片小于10GB,则很可能在某个时候遇到问题。将索引保留得更粗糙一些,只对特定的Pod使用过滤器即可。

© www.soinside.com 2019 - 2024. All rights reserved.