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: true
  14. kubernetes:
  15. fields:
  16. container.name: containername
  17. logConfig: logconfig
  18. namespace: namespace
  19. node.name: nodename
  20. pod.name: podname
  21. reload:
  22. enabled: true
  23. period: 10s
  24. defaults:
  25. sink:
  26. type: dev
  27. sources:
  28. - type: file
  29. watcher:
  30. cleanFiles:
  31. maxHistory: 1
  32. http:
  33. enabled: true
  34. 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进行引用。