Replies: 5 comments 3 replies
-
我觉得可以参考下 1 fluent-bit的默认采集数据结构
这样的好处是,确保有个系统时间,在最外层,能够方便的写入es,clickhouse种,因为完整的log里是有用户记录的,不确定是否会有时间字段。 2 可以修改字段例如 @timestamp 可以修改为别的字段适配用户的业务系统 3 可以追加字段
|
Beta Was this translation helpful? Give feedback.
-
关于Kafka Flusher的配置项,丰富度、层次是不是也需要考虑下。有些功能应该可以先不实现,不过扩展性最好需要先考虑下。 ilogtail跟Beats用的都是github.com/Shopify/sarama,是不是可以借鉴下Elastic Beats,适当扩展下Fluentd、Fluent-bit的配置项? 1、Elastic Beats: 2、Fluentd 3、Fluent-bit |
Beta Was this translation helpful? Give feedback.
-
格式不一致问题探讨
回答这个问题,首先要明确一点:ilogtail内部数据流是按照SLS的PB结构来组织的,LogGroup是多条日志组成的,其中日志公共部分存在LogTags中。一条完整的日志应该是由__topic__, LogTags, Logs共同组成。 方案的探讨:目前确实不同场景格式不太统一,鉴于历史兼容性原因无法从数据源进行统一。目前比较合适的实现机制是增加一个通用转换层,可以根据第三方存储系统提供格式转换功能。ES Flusher默认使用ES友好格式,CK FLusher默认使用CK友好格式,Kafka Flusher视背后的存储系统可以自定义选择。 |
Beta Was this translation helpful? Give feedback.
-
关于topic: Filebeat的情况,支持条件判断 + 字段取值
|
Beta Was this translation helpful? Give feedback.
-
关于ilogtail采集数据,希望保留kafka属性原有字段offset。 再做日志实时查询的时候,需要用到该字段 |
Beta Was this translation helpful? Give feedback.
-
设计实现目标
test_%{kubernetes['labels']['name']}
这样的动态topic配置能力。__tag__:_container_name_
,容器采集字段名__container_name_
,设计改进措施
例如刷入kafka数据样例:
扁平化处理后变为下面格式就非常方便提取content字段中真实的日志了(ps: 样例参考stdout插件,这是配置json插件 ExpandDepth=0的效果):
TopicFormat
这个当前基于文件路径或者自定义topic
的能力在kafka flusher层面利用起来;同时针对kubernetes
云原生场景提供pod label
作为动态topic过滤的一种维度,这和filebeat
和fluent bit
比较类似。参数说明
topicprefix_%{field_name}
roundrobin
、hash
、random
。默认为:random
。hash
时,需指定HashKeys。LogtailPlugin
。__content__
内容;1选项和0选项数据处理相同,保留__content__
原始日志;2表示直接ilogtail原始数据写入topic,社区选择配置为2的概率非常低。参考#172 方式,不过面向社区用户场景更倾向默认数据扁平化。关于动态topic也可能存在另外一种可探讨的方式,增加一个:TopicKey去匹配动态topic配置的维度字段。但是也这种情况也会出现另一个可选字段:TopicPrefix 即topic前缀,肯定会有要求前缀的需求出现。
因此Topic支持静态和动态配置项更少,实现是支持既定的规则表达式解析即可。
样例
kafka flusher配置样例
kafka flusher优化后写入kafka的数据样例(如果添加json插件处理,content中的json字段还能再平铺到成一级字段)
Beta Was this translation helpful? Give feedback.
All reactions