Filebeat

目录

一、介绍

1.定义

2.工作原理

3.用途

(1)收集日志

(2)filebeat结合logstash

4.Filebeat和Logstash的区别

二、部署ELFK

1.环境搭建

2.安装filebeat

3.在logstash组件所在的节点(apache节点)上新建一个logstash配置文件

4.验证查看


一、介绍

1.定义

        Filebeat适用于转发和集中数据的轻量级传送工具,Filebeat监视了指定的日志文件或位置,收集日志事件,并将他们转发到Elasticsearch或Logstash进行索引。

        Filebeat的工作方式:启动Filebeat时,它将启动一个或多个输入,这些输入将在为日志数据指定的位置中查找,对于Filebeat所找到的每个日志,Filebeat都会启动收集器。每个收集器都读取单个日志以获取新内容,并将新日志数据发送到libbeat,libbeat将聚集事件,并将聚集的数据发送到位Filebeat配置的输出。

        Filebeat由两个主要组成部分:Prospector(探勘者)和Harvesters(矿车)。这些组件一起工作来读取文件并将时间数据发送到指定的output。

prospector:负责找到所有需要进行读取的数据源。
harvesters :负责读取单个文件的内容,并将内容发送到output,负责文件的打开和关闭。

2.工作原理

        Filebeat可以保持每个文件的状态,并且频繁的把文件状态从注册表里更新到磁盘,这里所说的文件状态是用来记录上一次Harvaster读取文件时,读取到的位置,以保证能把全部的日志都读取出来,然后发给output。

        如果在某一时刻,作为output的Elasticsearch或则Logstash变成了不可用,Filebeat将会把最后的文件读取位置保存下来,直到output重新可用的时候,快速地恢复文件数据的读取。

        在Filebeat运行过程中,每个Prospector的状态信息都会保存在内存里,如果Filebeat出现了重启,完成重启之后,会从注册表文件里恢复重启之间的状态信息,让Filebeat继续从之间已知的位置开始进行读取数据。

Filbeat可以实现保持读取时的文件状态。将文件状态频繁保存在磁盘中。
1)这样可以保证能把全部的日志读取出来。
2)在output的ES或logsatsh出现故障,Filebeat也会把文件读取位置保存下来,方便下次快速恢复。
3)当Filebeat出现故障重启时,也可以恢复到之前的读取位置。

3.用途

适用于集群环境下,服务多,且在不同机器。

(1)收集日志

          因为logstash是jvm跑的,资源消耗比较大,启动一个logstash就需要消耗500M左右的内存(这就是为什么logstash启动特别慢的原因)。
          而filebeat只需要10M左右的内存资源。
          常用的ELK日志采集方案中,大部分的做法就是将所有节点的日志内容通过filebeat发送到logstash,lostash根据配置文件进行过滤,然后将过滤之后的文件传输到elasticsearch中,最后通过kibana展示。

(2)filebeat结合logstash

1)通过logstash,具有基于磁盘的自适应缓冲系统,该系统将吸收传入的吞吐量,从而减轻Elasticsearch持续写入数据的压力。

2)从其它数据源(例如数据库,s3对象存储或消息传递队列)中提取

3)将数据发送到多个目的地,例如S3,HDFS(hadoop分部署文件系统)或写入文件

4)使用数据流逻辑组成更复杂的处理管道。

4.Filebeat和Logstash的区别

 logstash    filebeat
内存    
CPU    大 
插件    多 
功能  从多中输入端采集并实时解析和转换数据并输出到多中输出端传输
轻重相对较重    轻量级的二进制文件
过滤能力    强大的过滤能力轻微的过滤能力
进程  一台服务器只允许一个logstash进程,挂掉之后需要手动拉起
原理   logstash使用管道的方式进行日志的收集和输出,分为输入input、输出output,每个阶段都有不同的替代方式  开启进程后悔启动一个或多个探测器(prospectors)去检测指定的日志文件,对于探测器找到的每一个日志文件,filebeat启动收个进程(harvester),没一个收个进程读取一个日志文件的新内容,并发现这些新的数据到处理程序(spooler),处理程序会集合这些事件,最后filebeat会发送集合的数据到你指定地点。
集群    单节点  单节点
输出多个接收方  支持6.0之前支持
二次开发或者扩展开发      难 

二、部署ELFK

1.环境搭建

再ELK的的服务基础上,增加一台filebeat服务器。

主机名IP地址部署软件系统
node1  192.168.22.196Elasticsearch、Kibana    centos7
node2192.168.22.206 Elasticsearchcentos7
apache 192.168.22.186logstash、apachecentos7
filebeat 192.168.22.168 filebeat centos7

在filebeat服务器上关闭防火墙

2.安装filebeat

cd /opt/ELK

tar -zxvf filebeat-6.6.0-linux-x86_64.tar.gz   解包

mv filebeat-6.2.4-linux-x86_64 /usr/local/filebeat  将解压后的目录剪到/usr/local/filebeat 

cd /usr/local/filebeat

cp filebeat.yml filebeat.yml.bak  备份filebest主配置文件

vim filebeat.yml

filebeat.prospectors:
- type: log              21行,指定log类型,从日志文件中读取消息
  enabled: true          24行,开启日志收集功能,默认为false
  paths:                 27行

  - /var/log/*.log       28行,指定监控的日志文件
  - /var/log/messages    29行,添加收集/var/log/messages
  
31行,添加以下内容,注意格式
  fields:                        31行
    service_name: filebeat       32行 指定名称
    log_type: log                33行 指定log类型
    service_id: 192.168.22.168   34行 指定本机收集的主机ip(也就是本机ip)

Elasticsearch output   151行
该区域内容全部注释      收集的日志不传输到ES
Logstash output                   164行
output.logstash:                  165行,取消注释
hosts: ["192.168.22.186:5044"]    167行,取消注释,指定logstash的IP和端口号

./filebeat -e -c filebeat.yml
启动filebeat,-e记录到stderr并禁用syslog /文件输出,-c指定配置文件

 

 

 

3.在logstash组件所在的节点(apache节点)上新建一个logstash配置文件

cd /etc/logstash/conf.d

cp logstash.conf logstash.bak  备份配置文件

vim logstash.conf
input {
    beats {
        port => "5044"
    }
}
output {
    elasticsearch {
        hosts => ["192.168.100.20:9200", "192.168.22.206:9200"] #将获取的数据传到2台ES上
        index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
    }
    stdout {
        codec => rubydebug
    }
}

/usr/share/logstash/bin/logstash -f logstash.conf   #启动logstash并加重配置文件

 

 

4.验证查看

在浏览器上访问192.168.22.196:9100 查看能否查看到 filebeat日志数据

 

在浏览器上访问192.168.22.196:5601查看

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值