filebeatkafka的简单介绍
本篇文章给大家谈谈filebeatkafka,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、如何将filebeat收集的日志发送到kafka
- 2、FileBeat输出日志到kafka仅保留message有效信息
- 3、Filebeat+Kafka+ELK生产部署(安全加固)
- 4、filebeat采集日志到kafka配置及使用
- 5、数据写入kafka的分区策略
- 6、filebeat利用kafka进行日志实时传输
如何将filebeat收集的日志发送到kafka
filebeat配置ouput为kafka就可橘尺以,详细配置参数段绝说明见:
一般还要将kafka配置进linux的/etc/圆燃高hosts
[img]FileBeat输出日志到kafka仅保留message有效信息
file beat配置如下
filebeat监听两个不同文件,余型迅配置了不同的topic。
其中topic:'%{[type]}' ,topic值为input中配置的document_type。
kafka中收集到日志如下格式:
只有message中才为写入到,其余字段为filebeat携带的元数据。
我们在处理filebeat消息时,往往只关注message信息,为了让信息更加简洁化,我们竖此可以在filebeat中进租庆行设置processors。完整配置文件如下:
配置完后日志输出格式如下:
注意:processors是对所有input源都生效的,所以再新增配置时需注意是否影响历史数据源读取。
Filebeat+Kafka+ELK生产部署(安全加固)
本文旨在部署安全可靠的生产架构,对ELK做 XPack 安凯段嫌全加固,对Kafka做 SASL 安全加固!
本文的ELK全家桶版本为 7.2.0 ,Kafka版本为 2.12-2.3.0
在本文中,笔者直接在83节点上完成了es集群的部署,请仔细阅读下方的命令!
当zk和燃搏kafka服务都启动后,可以先检查下相关端口状态是否盯手正常
完成以上操作后,可使用浏览器访问kibana地址 ,输入 elastic 用户密码即可!
curl 示例
filebeat采集日志到kafka配置及使用
Filebeat是elastic公司beats系列工具中的一个,主要用于收睁顷唯集本地日志。
在服务器上安装后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到配置文件中指定的输出端(例如:elasticsearch,logstarsh或kafka)。
Filebeat使用go语言开发,使用时没有其他依赖,比logstash-forworder轻量,不会占用部署服务器太多的资源乎掘。
filebeat的工作流程:当你开启filebeat程序的时候,它会启动一个或多个探测器(prospectors)去检测你指定的日志目录或文件,对于探测器找出的每一个日志文件,filebeat启动收割进程(harvester),每一个收割进程读取一个日志文件的新内容,并发送这些新的日志数据到处理程序(spooler),处理程序会集合这些事件,最后filebeat会发送集合的数据到你指定的地点。
2.配置filebeat
配置filebeat需要编辑filebeat的配置文件,不同安装方式,配置文件的存放路径有一些不同, 对于 rpm 和 deb的方式, 配置文件路径的是 /etc/filebeat/filebeat.yml,对于压缩包的方式,配置文件存在在解压目录下(悉培例如:我是在home目录下进行的解压,那么配置文件的路径就应该是~/filebeat-6.2.4-linux-x86_64/filebeat.yml)。
由于我的预期目标是将filebeat收集的日志发送到kafka,所以配置output就选择了kafka。读者可根据自己的使用场景,配置output。
例子中的配置将对/var/log目录下所有以.log结尾的文件进行采集。
3.启动
本文中只是为满足需求对filebeat进行了最基本的配置。filebeat的很多重要的配置和特性并没有体现(例如:模块,多行消息),读者如果需要更深入的了解请参考: 。
欢迎大家在评论区讨论使用过程的心得和疑惑。
数据写入kafka的分区策略
众所周知,kafka有分区的概念,生产者写入数据到kafka,涉及到数据到底写到哪个分区?
kafka api提供了默认的partitioner函数,具体策略如下:
1、如果生产者写入数据时,指定了具体分区,则使用该分区
2、如果生腔如产者没有指定分区,但是提供了key,partitioner函空让数会对该key取hash再斗圆局对topic数量取模以确定分区
3、如果生产者既没有指定分区,也没有提供key,则采用round-robin的方式选取分区
项目中用到filebeat采集数据到kafka,如果filebeat配置文件中配置了round-robin,下游在消费数据时,打印record.key可以发现key=null,每条数据到分区也不一样
filebeat利用kafka进行日志实时传输
选择安装目录:例如安装在/usr/local/或者/opt/下都可以。
创建一个软链接:
filebeat的配置很简单,只需要指定input和output就可以了。
由于kafka server高低版本的客户端API区别较大,因此推荐同时使用高版本的filebeat和kafka server。 注意 高版本的filebeat配置使用低版本的kafka server会出现kafka server接受不到消息的情况。这里我使用的kafka server版本是:2.12-0.11.0.3,可参考 快速搭建kafka
编辑filebeat安装目录下 filebeat.yml 文件:
配置Filebeat inputs:
上面 /opt/test/*.log 是我要传输的日志,根据实际情况改成你自己的值。
配置Filebeat outputs:
"111.11.1.243:9092" 是我的单机kafka broker,如果你是kafka集群,请用 , 分隔。 test 是kafka topic,请改成你自己实际情况的值。另外以下信胡这段需要删除:
因为我并没有用到Elasticsearch,所以有多个输出在启动filebeat时会报错。到这里filebeat配置kafka就完成了,是不是很简单,让我们启动它测试一下。
启动,进入filebeat的安装目录:
查看是否启动:
很好,已经启动了。如果没有启动,请查看启动日志睁旦文件nohup.out。
停止:
随机生成日志脚本:
执行这段python脚本,开启一个kafka消费者如果成功消费日志消息:
哈哈,大功告成。 注 上面这段脚本要适时手动停止,因为它是个死循环,如果忘记手动停止那么就杯具了,我就是这样悉坦扰把机器写宕机的。
关于filebeatkafka和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。