日志实时收集之FileBeat+Kafka

标签: 大数据平台 | 发表时间:2017-11-09 16:17 | 作者:[email protected]
出处:http://lxw1234.com

之前,我们的某一个业务用于实时日志收集处理的架构大概是这样的:

filebeat

在日志的产生端(LogServer服务器),都部署了FlumeAgent,实时监控产生的日志,然后发送至Kafka。经过观察,每一个FlumeAgent都占用了较大的系统资源(至少会占用一颗CPU 50%以上的资源)。而另外一个业务,LogServer压力大,CPU资源尤其紧张,如果要实时收集分析日志,那么就需要一个更轻量级、占用资源更少的日志收集框架,于是我试用了一下Filebeat。

Filebeat是一个开源的文本日志收集器,采用go语言开发,它重构了logstash采集器源码,安装在日志产生服务器上来监视日志目录或者特定的日志文件,并把他们发送到logstash、elasticsearch以及kafka上。Filebeat是代替logstash-forwarder的数据采集方案,原因是logstash运行在jvm上,对服务器的资源消耗比较大(Flume也是如此)。正因为Filebeat如此轻量级,因此不要奢望它能在日志收集过程中做更多清洗和转换的工作,它只负责一件事,就是高效可靠的传输日志数据,至于清洗和转换,可以在后续的过程中进行。

Filebeat官网地址为:https://www.elastic.co/guide/en/beats/filebeat/current/index.html  你可以在该地址中下载Filebeat和查看文档。

Filebeat安装配置

Filebeat的安装和配置非常简单。

下载filebeat-5.6.3-linux-x86_64.tar.gz,并解压。
进入filebeat-5.6.3-linux-x86_64目录,编辑配置文件filebeat.yml

配置input,监控日志文件:

filebeat.prospectors:
- input_type: log
	paths:
		- /data/dmp/openresty/logs/dmp_intf_*.log

配置output到Kafka
#—————————– Kafka output ——————————–

output.kafka:
  hosts: ["datadev1:9092"]
  topic: lxw1234
  required_acks: 1

PS:假设你的Kafka已经安装配置好,并建了Topic。

更多的配置选项,请参考官方文档。

Filebeat启动

在filebeat-5.6.3-linux-x86_64目录下,执行命令:

./filebeat -e -c filebeat.yml 来启动Filebeat。

 

启动后,Filebeat开始监控input配置中的日志文件,并将消息发送至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串,除了包含原始日志,还包含了其他信息。

filebeat

@timestamp:消息发送时间

beat:Filebeat运行主机和版本信息

fields:用户自定义的一些变量和值,非常有用,类似于Flume的静态拦截器

input_type:input类型

message:原始日志内容

offset:此条消息在原始日志文件中的offset

source:日志文件

 

另外, Filebeat对CPU的占用情况:

filebeat

经过初步试用,以下方面的问题还有待继续测试:

  1. 数据可靠性:是否存在日志数据丢失、重复发送情况;
  2. 能否对Filebeat的消息格式进行定制,去掉一些冗余无用的项。

 

 

 

如果觉得本博客对您有帮助,请 赞助作者

转载请注明: lxw的大数据田地 » 日志实时收集之FileBeat+Kafka

相关 [日志 实时 filebeat] 推荐:

日志实时收集之FileBeat+Kafka

- - lxw的大数据田地
之前,我们的某一个业务用于实时日志收集处理的架构大概是这样的:. 在日志的产生端(LogServer服务器),都部署了FlumeAgent,实时监控产生的日志,然后发送至Kafka. 经过观察,每一个FlumeAgent都占用了较大的系统资源(至少会占用一颗CPU 50%以上的资源). 而另外一个业务,LogServer压力大,CPU资源尤其紧张,如果要实时收集分析日志,那么就需要一个更轻量级、占用资源更少的日志收集框架,于是我试用了一下Filebeat.

Filebeat Multiline

- - 让一切随风
Filebeat获取的文件可能包含跨多行文本的消息,例如,多行消息在包含Java堆栈跟踪的文件中很常见. 为了正确处理这些多行事件,你需要在filebeat.yml中配置multiline以指定哪一行是单个事件的一部分. 在filebeat.yml的filebeat.inputs区域指定怎样处理跨多行的消息.

Filebeat + Elasticsearch + Kibana 轻量日志收集与展示系统

- - wzyboy’s blog
有个段子是说现在创业公司招人的如果说自己是「大数据」(Big Data),意思其实是说他们会把日志收集上来,但是从来不看. 段子归段子,近些年所谓「微服务」「容器化」等「热门技术」的发展,的确促进了日志收集等技术的发展. 而 ELK ( Elasticsearch +. Kibana) 也不再是日志收集与展示系统的铁三角了.

elk-filebeat收集docker容器日志 - devzxd - 博客园

- -
filebeat安装与配置. 1、使用docker-compose文件构建elk. 2、执行docker-compose up -d 启动elk. 可以使用docker logs 命令查看elk启动日志. 启动成功后打开浏览器访问 http://127.0.0.1:5601. 关于filebeat本文也不做过多介绍.

FileBeat采集JSON日志_大数据_Mr.Bean-CSDN博客

- -
FileBeat采集JSON日志. 使用FileBeat采集JSON日志传输到logstash或者elasticsearch中,其中FileBeat的版本为5.5.0,Elasticsearch的版本为5.6.8. 关于配置filebeat的json采集,主要需要注意的有以下几个配置项. 上面的几个配置项,只要配置了任意一项,filebeat就会开启json采集的功能.

filebeat使用elasticsearch的pipeline处理日志内容 | 阿小信的博客

- -
以前使用Logstash时,都是通过logstash来对日志内容做过滤解析等操作,现在6.3.0版本中,可以通过filebeat直接写数据到es中,要对日志内容做处理的话设置对应的pipeline就可以. 以gunicorn的access日志内容为例:. 有以上内容的日志,记录请求发生的时间,发起请求的ip,referer,useragent,status_line, status_code, 进程id, 请求执行时间.

使用filebeat收集kubernetes中的应用日志 - 宋净超的博客|Cloud Native|云原生布道师

- -
本文已同步更新到Github仓库. kubernetes-handbook中. 使用Logstash收集Kubernetes的应用日志,发现logstash十分消耗内存(大约500M),经人提醒改用filebeat(大约消耗10几M内存),因此重写一篇使用filebeat收集kubernetes中的应用日志.

elasticsearch和filebeat学习笔记

- -
elasticsearch安装、维护以及Filebeat module编写相关的笔记,备忘. 全文检索: q=first. 单字段全文检索:q=user:prismcdn. 单字段精确检索:q=user:”prismcdn”. 多个检索条件的组合:NOT、AND、OR、(、),如q=user:(“prismcdn” OR “hello”) AND NOT mesg:first.

Filebeat 的 Registry 文件解读

- - IT瘾-dev
你可能没有注意但很重要的filebeat小知识. Filebeat会将自己处理日志文件的进度信息写入到registry文件中,以保证filebeat在重启之后能够接着处理未处理过的数据,而无需从头开始. registry文件内容为一个list,list里的每个元素都是一个字典,字典的格式如下:. source:记录采集日志的完整路径.

替代ELK:ClickHouse+Kafka+FileBeat才是最绝的

- -
saas 服务未来会面临数据安全、合规等问题. 公司的业务需要沉淀一套私有化部署能力,帮助业务提升行业竞争力. 为了完善平台系统能力、我们需要沉淀一套数据体系帮助运营分析活动效果、提升运营能力. 然而在实际的开发过程中,如果直接部署一套大数据体系,对于使用者来说将是一笔比较大的服务器开销. 为此我们选用折中方案完善数据分析能力.