日志采集agent开发(go实现)

1. 背景需求

需要开发一款日志采集agent,读取日志文件,将日志传输到kafka中。

 

2. 项目架构

 

 

3. 项目模块

3.1  main函数主模块

 

3.2 conf模块(创建ini格式的配置文件,利用第三方包github.com/go-ini/ini)

读取conf文件,获取配置信息,如kafka地址,日志Path路径,生成configObj.

 

3.3 tailf模块 (利用第三方包github.com/hpcloud/tail)

创建tail -f的进程,持续读取日志文件

 

3.4 kafka模块(github.com/Shopify/sarama)

(1)创建kafka连接

(2)将log写入kafka

 

3.5 etcd模块(go.etcd.io/etcd/clientv3)

实现配置中心,修改配置后,无需重启进程,实现热加载配置。

 

 

4. 代码实现

4.1 主函数逻辑

 

posted @ 2022-06-06 09:59  象飞田  阅读(431)  评论(0编辑  收藏  举报