如何基于kubernetes元数据创建索引

我正在Kubernetes中使用filebeat将日志发送到弹性搜索。 我想基于命名空间创建索引。我正在尝试为Kubernetes集群中的不同应用程序创建自定义索引,但这无法正常工作。 我在下面的conf中使用:-

output.elasticsearch:   索引:“%{[kubernetes.labels.app]:filebeat}-%{[beat.version]}-%{+ yyyy.MM.dd}”

Filebeat Kube清单链接-https://github.com/anup1384/k8s-filebeat

eddy1203 回答:如何基于kubernetes元数据创建索引

<source>
      @type tail
      @id in_tail_docker_logs
      read_from_head true
      tag yourTag.*
      path /var/log/containers/**yournamespace**.log
      pos_file /var/log/file.log.pos
      <parse>
        @type multi_format
        <pattern>
          format json
          time_format '%Y-%m-%dT%H:%M:%S.%N%Z'
        </pattern>
        <pattern>
          format regexp
          expression /^(?<time>.+) (?<stream>stdout|stderr)( (?<logtag>.))? (?<log>.*)$/
          time_format '%Y-%m-%dT%H:%M:%S.%N%:z'
        </pattern>
      </parse>
    </source>


<match yourTag_**>
      @type elasticsearch
      host "#{ENV['FLUENT_ELASTICSEARCH_HOST']}"
      port "#{ENV['FLUENT_ELASTICSEARCH_PORT']}"
      scheme "#{ENV['FLUENT_ELASTICSEARCH_SCHEME'] || 'https'}"
      user "#{ENV['FLUENT_ELASTICSEARCH_MDSA_USER']}"
      password "#{ENV['FLUENT_ELASTICSEARCH_MDSA_PASSWORD']}"
      ssl_verify "#{ENV['FLUENT_ELASTICSEARCH_SSL_VERIFY'] || 'false'}"
      suppress_type_name true
      index_name ocp_${tag[0]}_${$.kubernetes.labels.app}_%Y%m%d ### ==> **ocp_yourTag_appName_date**

      <buffer tag,time,$.kubernetes.labels.app>
        @type memory
        timekey 10s
        timekey_wait 0s
        flush_mode immediate
        flush_thread_count 4
      </buffer>

这将 100% 有效,只需更改您的标签和命名空间

,

使用下面在filebeat configmap中给出的elasticsearch输出

output.elasticsearch:
  index: "%{[kubernetes.namespace]:filebeat}-%{[beat.version]}-%{+yyyy.MM.dd}"
,

使用 Kubernetes 元数据创建自定义索引。所以这里我根据 pod 名称元数据创建一个索引。

logstash_prefix ${record['kubernetes']['pod_name']}

欲知更多详情:

https://medium.com/faun/how-to-create-custom-indices-based-on-kubernetes-metadata-using-fluentd-beed062faa5d

本文链接:https://www.f2er.com/3021253.html

大家都在问