FileBeat + Kafka用于实时日志采集
优采云 发布时间: 2020-08-07 08:16之前,我们其中一项业务的实时日志采集和处理架构大致如下:
在日志生成端(LogServer服务器)上,已部署FlumeAgent实时监视生成的日志,然后将其发送到Kafka. 经过观察,每个FlumeAgent占用大量系统资源(至少占CPU的50%或更多). 对于另一项业务,LogServer承受着巨大的压力,CPU资源特别紧张. 如果要实时采集和分析日志,则需要一个更轻量级且耗费资源较少的日志采集框架,因此我尝试了Filebeat.
Filebeat是使用go语言开发的开源文本日志采集器. 它重构了logstash采集器源代码,将其安装在日志生成服务器上以监视日志目录或特定的日志文件,并将它们发送到kastka上的logstash,elasticsearch和. Filebeat是一种数据采集解决方案,它替代了logstash-forwarder. 原因是logstash在jvm上运行并且消耗大量服务器资源(Flume也是一样). 由于Filebeat如此轻巧,因此不要期望它在日志采集过程中做更多的清理和转换工作. 它仅负责一件事,即有效且可靠地传输日志数据. 至于清洁和转换,您可以在此过程中进行后续操作.
Filebeat的官方网站地址是: 您可以下载Filebeat并在此地址查看文档.
Filebeat安装配置
Filebeat的安装和配置非常简单.
下载filebeat-5.6.3-linux-x86_64.tar.gz并将其解压缩.
输入filebeat-5.6.3-linux-x86_64目录并编辑配置文件filebeat.yml
配置输入并监视日志文件:
filebeat.prospectors:
-input_type: log
路径:
-/ data / dmp / openresty / logs / dmp_intf _ *. log
配置输出到Kafka
#——————————– Kafka输出——————————–
output.kafka:
主机: [“ datadev1: 9092”]
topic: lxw1234
required_acks: 1
PS: 假设您已经安装并配置了Kafka,并且已经建立了主题.
有关更多配置选项,请参阅官方文档.
需要大数据学习材料和交流学习的学生可以增加数据学习小组: 724693112有免费的材料,可以与一群学习大数据的小伙伴共享和共同努力
文件拍开始
在filebeat-5.6.3-linux-x86_64目录下,执行命令:
./ filebeat -e -c filebeat.yml以启动Filebeat.
启动后,Filebeat开始监视输入配置中的日志文件,并将消息发送到Kafka.
您可以在Kafka中启动Consumer来查看:
./ kafka-console-consumer.sh –bootstrap-server localhost: 9092 –topic lxw1234 –from-beginning
Filebeat邮件格式
在原创日志中,日志格式如下:
2017-11-09T15: 18: 05 + 08: 00 |〜| 127.0.0.1 |〜|-|〜| hy_xyz |〜| 200 |〜| 0.002
Filebeat将消息封装为JSON字符串,除了原创日志外,还收录其他信息.
@timestamp: 邮件发送时间
beat: Filebeat运行主机和版本信息
字段: 一些用户定义的变量和值非常有用,类似于Flume的静态*敏*感*词*
input_type: 输入类型
消息: 原创日志内容
offset: 此消息在原创日志文件中的偏移量
源: 日志文件
此外,Filebeat的CPU使用率:
初步试用后,以下问题尚待测试:
数据可靠性: 是否存在日志数据丢失或重复发送;
您可以自定义Filebeat的消息格式以删除一些多余和无用的项目吗?