首页 > 其他分享 >fluentd根据K8S名称空间自动生成索引

fluentd根据K8S名称空间自动生成索引

时间:2023-12-26 17:45:36浏览次数:30  
标签:fluentd log kubernetes namespace 索引 日志 K8S

fluentd示例配置:

apiVersion: v1
data:
  containers.input.conf: |-
    <source>
      @type tail
      path /var/log/containers/*.log
      pos_file /var/log/fluentd-containers.log.pos
      tag kubernetes.*
      <parse>
        @type json
        time_format %Y-%m-%dT%H:%M:%S.%NZ
      </parse>
    </source>

    <filter kubernetes.**>
      @type kubernetes_metadata     #是一个 Fluentd 插件,用于从 Kubernetes API 服务器中获取有关容器和 Pod 的详细信息,并将其添加到日志事件的元数据中。例如,它可以添加容器名称、容器 ID、Pod 名称、命名空间等信息
    </filter>

    <match kubernetes.**>
      @type elasticsearch_dynamic    #根据日志事件的内容创建动态的 Elasticsearch 索引,并将日志事件发送到相应的索引中
      host elasticsearch-client
      port 9200
      scheme http
      user elastic
      password ws123456
      logstash_format true
      logstash_prefix  ${record['kubernetes']['namespace_name']}-index  #自定义动态索引名称,根据K8S的名称空间自动生成
      <buffer>
        @type file
        path /var/log/fluentd-buffer/kubernetes.system.buffer
        flush_mode interval
        flush_interval 5s
      </buffer>
    </match>

 

record 是 Fluentd 中表示日志事件的内置变量。

${record['kubernetes']['namespace_name']} 表示从 Kubernetes 获取的命名空间名,这是日志事件中的一个重要元数据之一。

${record['kubernetes']['namespace_name']}-index 将命名空间名作为前缀拼接到 Elasticsearch 索引名称的末尾,从而将日志事件发送到以命名空间分类的特定索引中。

例如,如果命名空间为 my-namespace,则日志事件可以发送到 my-namespace-index 索引中。

logstash_prefix 可以是 Fluentd 配置中的任意字段名称,它定义了要发送给 Elasticsearch 的日志事件的标签名。

标签名通常用于在 Elasticsearch 中进行日志检索和聚合,并且应该根据所处理的日志事件类型进行定义。

通过使用 ${record['kubernetes']['namespace_name']}-index 作为动态标签名,可以轻松地根据 Kubernetes 命名空间对日志事件进行分类和检索,使日志数据更灵活、可管理和有意义。

标签:fluentd,log,kubernetes,namespace,索引,日志,K8S
From: https://www.cnblogs.com/putaoo/p/17928912.html

相关文章

  • k8s~ingress_service_endpoint_pod四壮士
    在Kubernetes中,Service和Endpoints是两个重要的概念,它们之间存在着密切的关系。Service:Service是Kubernetes中用于定义一组Pod的访问方式的抽象。通过创建Service,可以为一组具有相同标签的Pod提供统一的访问入口,使得客户端可以通过Service来访问这些Pod,而无需了解其具体的IP地址和......
  • 解决k8s调度不均衡问题
    前言在近期的工作中,我们发现k8s集群中有些节点资源使用率很高,有些节点资源使用率很低,我们尝试重新部署应用和驱逐Pod,发现并不能有效解决负载不均衡问题。在学习了Kubernetes调度原理之后,重新调整了Request配置,引入了调度插件,才最终解决问题。这篇就来跟大家分享Kubernete......
  • 如何利用搜索引擎指定网站(指定网址前缀)进行关键词搜索
    参考:site:搜索运算符博客园之前是有第三方搜索引擎(Google)的查询入口的,现在更新后就没有这个入口了,不过这也比较好理解,毕竟这个Google的查询入口好多人是用不了的,于是这里就给出手动指定查询网址的前缀来进行关键词查询了。例子:......
  • C# 返回字符串 string 中某一个字符第几次出现的位置所在的索引位置
    //返回str从前往后,第count次出现ch字符处的索引位置,失败返回-1;protectedstaticintIndexOf(stringstr,charch,intcount){if(count<1){return-1;}intindex=-1;for(inti=0;i<count;++i){......
  • 详解MRS HBase全局二级索引
    本文分享自华为云社区《MRSHBase全局二级索引原理与使用场景》,作者:学习一下大数据。一、HBase二级索引背景介绍HBase是基于Key-Value的分布式存储数据库,对表中的数据按照rowkey的字典进行排序;当已知要查询的数据rowkey或其范围,可以快速查找到需要读取的数据;HBase提供Filter功......
  • 详解MRS HBase全局二级索引
    本文分享自华为云社区《MRSHBase全局二级索引原理与使用场景》,作者:学习一下大数据。一、HBase二级索引背景介绍HBase是基于Key-Value的分布式存储数据库,对表中的数据按照rowkey的字典进行排序;当已知要查询的数据rowkey或其范围,可以快速查找到需要读取的数据;HBase提供Filter功能来......
  • K8s-V1.22以上版本如何管理docker镜像
    K8s1.22以上版本已经不在使用docker作为底层容器管理了,所以K8s创建的pod,使用dockerps-a也看不到任何输出了。取而代之的是crictl。通过询问ChatGPT,我们极有可能需要搭建一个私有镜像仓库: 1、查看K8s拉取的镜像[root@CentOs8-K8S-node0~]#crictlimagesIMAGE......
  • 这样delete居然不走索引
    背景由于业务变迁,合规要求,我们需要删除大量非本公司的数据,涉及到上百张表,几个T的数据清洗。我们的做法是先从基础数据出发,将要删除的数据id收集到一张表,然后再由上往下删除子表,多线程并发处理。我们使用的是阿里的polardb,完全兼容mysql协议,5.7版本,RC隔离级别。删除过程一直很顺......
  • k8s~你应该知道的ip和你应该知道的端口
    你应该知道的ipNodeIPClusterIPPodIPContainerIPNodeIPnodeip是指k8s节点的ip地址,这个ip是具体的服务器,它上面的端口是nodeport,是真实服务器上的端口。ClusterIP在Kubernetes中,ClusterIP是指Service类型中的一种,它为集群内部的其他资源提供了一个虚拟IP......
  • k8s 部署 kuboard v3
    下载kuboard部署清单#wgethttps://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml修改部署清单configmap#vimkuboard-v3-swr.yaml修改内容#KUBOARD_AGENT_KEY是Agent与Kuboard通信时的密钥,请修改为一个任意的包含字母、数字的32位字符串,此密钥变更后,需要删除K......