最近对日志系统的采集机制进行了重构,增强了对单一主机上多个日志源采集的便捷性。
当前的设计以日志类型为中心,一个日志类型对应一个独立的flume的配置模板。这个配置模板主要针对这个日志类型的 日志文件名称
、 是否存在多行日志
、 日志首字符
等固定属性。我将这个配置称为 采集模板配置 。当然,光靠这些配置还不够,因为这些日志类型所对应的日志会存在于各个具体的主机节点以及可能不同的文件系统路径下,所以在具体收集的时候还需要配置 日志文件路径
、 采集器元数据存储路径
等动态属性,我将这个配置称之为 采集定制 。
所以在管控台中,采集的完整配置包含了 采集模板 和 采集定制 。
这里管控台的设计完全没有按照flume里 source
、 channel
、 sink
区分开来。因为channel一般都是 memoryChannel
是固定在配置模板里的,而 sink
的配置是混合在 采集定制 模板里。
图示一下就是下面这种模式:
重构之后,以采集agent为中心。我们的目标是减少同一个物理主机上采集器的部署成本,也就是希望一个物理主机部署一个采集器,而这个采集器支持多个日志源的采集。因为一个采集器一般只对应一个配置文件,所以这个配置文件就要求能包含多个日志采集的定义,幸好flume当前的最新版本(1.6.0)能够支持一个配置文件配置多个流。
那么管控台就需要重新设计,必须区分将flume的三个组件区分开来独立配置。所以,新规划的功能块有
图示一下重构之后的模式: