Overview

配置

Loggie的配置主要分为两类:

系统配置

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

loggie.yml

  1. # loggie.yml
  2. loggie:
  3. monitor:
  4. logger:
  5. period: 30s
  6. enabled: true
  7. listeners:
  8. filesource: ~
  9. filewatcher: ~
  10. reload: ~
  11. sink: ~
  12. discovery:
  13. enabled: false
  14. reload:
  15. enabled: true
  16. period: 10s
  17. defaults:
  18. sink:
  19. type: dev
  20. sources:
  21. - type: file
  22. watcher:
  23. cleanFiles:
  24. maxHistory: 1
  25. http:
  26. enabled: true
  27. port: 9196

Pipeline配置

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

  • Source: 每个Pipeline可配置多个Source
  • Interceptor: 每个Pipeline可配置多个Interceptor
  • Sink: 每个Pipeline可配置一个Sink
  • Queue: 默认为channel队列,一般无需配置

pipeline.yml

  1. pipelines:
  2. - name: demo # pipeline name必填
  3. sources:
  4. - type: ${sourceType}
  5. name: access # source中name必填
  6. ...
  7. interceptors:
  8. - type: ${interceptorType}
  9. ...
  10. sink:
  11. type: ${sinkType}
  12. ...

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进行引用。