日志实时收集之FileBeat+Kafka

标签: 大数据平台 | 发表时间:2017-11-09 08:17 | 作者:lxw1234@qq.com
出处: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.

使用elasticsearch+simple_flow搭建实时日志搜索系统

- - ITeye博客
    在实际的系统中,我们经常会进行分布式的系统部署,但是这样会导致一个问题,系统日志也被分散开了,导致根据日志进行错误定位不太方便,所以,利用simple_flow实时流的特点,再配合elasticsearch建立索引,搭配构建一个实时日志搜索系统.具体流程图如下:. 1.启动elasticsearch, 这个参考官方文档  http://www.elasticsearch.org/.

安装 log.io 实时日志监控工具

- - vpsee.com
日志是个好东西,对技术人员来说写日志能纪录成长,分享经验;对机器来说纪录日志能及时发现错误,为日后的排错提供信息. 如果还在一台机器上用 tail -f 监听单个日志或者 用 multitail 监听多个日志也太 out 了,我们需要一种工具能纪录上百台机器、不同类型的日志,并最好能汇集到一个界面里方便查看,最好还是实时的.

网站日志实时分析工具 GoAccess

- - vpsee.com
GoAccess 是一款开源的网站日志实时分析工具. GoAccess 的工作方式很容易理解,就是读取和解析 Apache/Nginx/Lighttpd 的访问日志文件 access log,然后以更友好的方式把统计信息显示出来. 统计的内容包括:访问概况、动态页面请求、静态页面请求(如图片、样式表、脚本等)、访客排名,访客使用的操作系统,访客使用的浏览器,来路域名,404 错误,搜索爬虫,搜索关键词等等.

ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

- - 编程语言 - ITeye博客
在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段:. 以下内容来自: http://baidu.blog.51cto.com/71938/1676798. 日志主要包括系统日志、应用程序日志和安全日志. 系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因.

Nginx日志实时监控、排查整理工具 - ngxtop

- - VPS侦探
要实时查看日志文件变动我们首先想到的应该是tail -f /path/to/log,但是这样看网站的访问日志是相当崩溃的,好一点可以写个脚本进行筛选,但是大部分人还是不擅长的,今天 VPS侦探就推荐给大家一个Nginx日志工具: ngxtop. 说起top工具有很多如: iftop、htop、ntop等,今天说的ngxtop功能也毫不逊色,不仅能实时监控Nginx日志的访问还可以对以前的日志进行排查整理.

实时收集Storm日志到ELK集群

- - 编程语言 - ITeye博客
我们的storm实时流计算项目已经上线几个月了,由于各种原因迟迟没有进行监控,每次出现问题都要登录好几台机器,然后使用sed,shell,awk,vi等各种命令来查询原因,效率非常低下,而且有些统计是没法做的,所以很有必要对storm本身相关的日志以及我们运行在storm上面的任务的日志做一个统一的日志收集,分析,查询,统计平台.

使用Flume+Kafka+SparkStreaming进行实时日志分析

- - CSDN博客推荐文章
每个公司想要进行数据分析或数据挖掘,收集日志、ETL都是第一步的,今天就讲一下如何实时地(准实时,每分钟分析一次)收集日志,处理日志,把处理后的记录存入Hive中,并附上完整实战代码. 思考一下,正常情况下我们会如何收集并分析日志呢. 首先,业务日志会通过Nginx(或者其他方式,我们是使用Nginx写入日志)每分钟写入到磁盘中,现在我们想要使用Spark分析日志,就需要先将磁盘中的文件上传到HDFS上,然后Spark处理,最后存入Hive表中,如图所示:.

Kafka实战-实时日志统计流程 - 哥不是小萝莉

- - 博客园_首页
  在《 Kafka实战-简单示例》一文中给大家介绍来Kafka的简单示例,演示了如何编写Kafka的代码去生产数据和消费数据,今天给大家介绍如何去整合一个完整的项目,本篇博客我打算为大家介绍Flume+Kafka+Storm的实时日志统计,由于涉及的内容较多,这里先给大家梳理一个项目的运用这些技术的流程.

使用Flume+Kafka+SparkStreaming进行实时日志分析 - Trigl的博客 - CSDN博客

- -