日志采集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 主函数逻辑