跳转至

Overview

配置

Loggie的配置主要分为两类:

系统配置

全局的系统配置,启动参数中使用-config.system指定,包含如下:

  • monitor: 监控相关的配置
  • discovery: 服务发现与配置下发
  • reload: 动态配置热加载
  • defaults: 全局默认配置
  • http: 管理和监控使用的http端口
loggie.yml
# loggie.yml
loggie:
  monitor:
    logger:
      period: 30s
      enabled: true
    listeners:
      filesource: ~
      filewatcher: ~
      reload: ~
      sink: ~

  discovery:
    enabled: false

  reload:
    enabled: true
    period: 10s

  defaults:
    sink:
      type: dev
    sources:
      - type: file
        watcher:
          cleanFiles:
            maxHistory: 1
  http:
    enabled: true
    port: 9196

Pipeline配置

Pipeline的配置,通过启动参数-config.pipeline指定。表示队列使用的Source、Sink、Queue和Interceptor。

  • Source: 每个Pipeline可配置多个Source
  • Interceptor: 每个Pipeline可配置多个Interceptor
  • Sink: 每个Pipeline可配置一个Sink
  • Queue: 默认为channel队列,一般无需配置
pipeline.yml
pipelines:
- name: demo # pipeline name必填
  sources:
    - type: ${sourceType}
      name: access # source中name必填
      ...
  interceptors:
  - type: ${interceptorType}
    ...
  sink:
    type: ${sinkType}
    ...

Kubernetes CRD

Loggie定义了以下几个CRD用于在Kubernetes集群环境里下发配置:

  • LogConfig:namespace级别,表示一个Pipeline配置,可用于采集Pods的容器日志。

  • ClusterLogConfig:cluster级别,表示一个Pipeline配置,包括集群级别的跨Namespace采集Pod容器日志,采集Node节点上的日志,以及为某个Loggie集群下发通用的pipeline配置。

  • Sink:cluster级别,表示一个sink配置,可以在LogConfig/ClusterLogConfig中引用该Sink。

  • Interceptors:cluster级别,表示一个interceptors组,可以在LogConfig中引用该interceptors组。

Note

ClusterLogConfig/LogConfig中的pipeline可以定义sink和interceptor,用于该pipeline的sink/interceptor。
如果你希望在多个ClusterLogConfig/LogConfig中复用sink或者interceptor,可以创建Sink/Interceptor CR,在ClusterLogConfig/LogConfig中使用sinkRef/interceptorRef进行引用。