跳转至

ClusterLogConfig

Cluster级别CRD,可用于:

  • 采集任意Namespace的Pod日志
  • 采集Node节点上的日志
  • 将Pipeline配置下发至指定Loggie集群

Example

apiVersion: loggie.io/v1beta1
kind:  ClusterLogConfig
metadata:
  name: test
spec:
  selector:
    type: node
    nodeSelector:
      nodepool: test
  pipeline:
    sources: |
      - type: file
        name: messages
        paths:
        - /var/log/messages
    sinkRef: default

spec.selector

表示Pipeline配置适用的范围

spec.namespaceSelector

技术提供方:擎创科技

表示匹配指定命名空间下的全部POD

!!! example

  namespaceSelector:
  - test1
  - test2

spec.excludeNamespaceSelector

技术提供方:擎创科技

表示排除指定命名空间下的全部POD

Example

  excludeNamespaceSelector:
  - test1
  - test2

type: pod

通过Pipeline配置选择一批Pod进行日志采集

字段 类型 是否必填 默认值 含义
labelSelector map 必填 通过该label来匹配Pods,支持使用*来匹配所有的value,比如app: '*'

Example

spec: 
  selector:
    type: pod
    labelSelector:
      app: nginx
表示采集带有标签 app: nginx的所有Pod的日志。

Warning

type: pod时,下面的Pipeline只能使用file source,此时的场景只能是采集日志。

type: node

下发Pipeline配置至该批节点。

字段 类型 是否必填 默认值 含义
nodeSelector map 必填 通过label选择下发配置的node

Example

spec: 
  selector:
    type: node
    nodeSelector:
      nodepool: test
表示将配置的Pipelines下发至带有nodepool: test的所有node上。

type: cluster

下发Pipeline配置至某个Loggie集群,通常需要配合cluster字段指定集群名使用。

Example

spec:
  selector:
    cluster: aggregator
    type: cluster
表示将配置的Pipelines下发至cluster为aggregator的Loggie集群。

type: workload

技术提供方:擎创科技

通过Pipeline配置选择一批负载进行日志采集

字段 类型 是否必填 默认值 含义
type array 非必填 目前支持Deployment、DaemonSet、CronJob、Job、StatefulSet,不写就是全部
nameSelector array 非必填 负载名字,不写就是全部
namespaceSelector array 非必填 命名空间,只匹配指定命名空间下的负载,不写就是全部
excludeNamespaceSelector array 非必填 排除一部分命名空间

Example

apiVersion: loggie.io/v1beta1
kind:  ClusterLogConfig
metadata:
    name: globalstdout
spec:
    selector:
        type: workload
    workload_selector:
      - type:
          - Deployment
        nameSelector:
          - default1
          - default2
        nameSpaceSelector:
          - default1
          - default2

    pipeline:
        sources: |
          - type: file
            name: stdout
            paths:
              - stdout
            sinkRef: default
表示采集default1和default2的Deployment下名字为default1和default2的所有Pod的日志。

cluster

字段 类型 是否必填 默认值 含义
cluster string 非必填 "" 表示配置指定下发的Loggie集群。当部署多套Loggie时,和全局系统配置discovery.kubernetes.cluster配套使用

spec.pipeline

基本配置和LogConfig一致。

sources

在ClusterLogConfig中,source新增以下额外的参数:

typeNodeFields

如果当type: node时:

字段 类型 是否必填 默认值 含义
typeNodeFields map 非必填 和全局配置discovery.kubernetes中的typeNodeFields一样,区别是这里为clusterlogconfig级别生效