1、Filebeat是什么?

Filebeat是用于转发和集中日志数据的轻量级传送工具。

Filebeat监视用户指定的日志文件或位置,收集日志事件,并将日志数据转发到Elasticsearch或Logstash进行索引。

2、Filebeat和Logstash的关系

Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。

因为Logstash是跑在JVM上的,资源消耗比较大,所以后来作者又用golang写了一个功能较少但是资源消耗也小的轻量级的logstash-forwarder,其设计初衷是这样的:logstash-forwarder搜集日志,汇总给Logstash,然后输出到Elasticsearch,并由Kibana展现Web界面。后来,作者加入了elastic公司,其公司内部有一个专门的golang团队,elastic公司干脆把logstash-forwarder的开发工作也合并到同一个golang团队来搞,于是新的项目就叫filebeat。

3、Filebeat的工作方式

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

工作的流程图如下:

filebeat.png

4、Filebeat的安装和配置

第一步:安装Filebeat

从官网下载,解压即可:https://www.elastic.co/cn/beats/filebeat

第二步:配置Filebeat

配置文件:filebeat.yml

(1)定义日志文件路径

对于最基本的Filebeat配置,你可以使用单个路径。例如:

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/*.log

在这个例子中,获取/var/log/*.log路径下的所有文件作为输入,这就意味着Filebeat将获取/var/log目录下所有以.log结尾的文件。

为了从预定义的子目录级别下抓取所有文件,可以使用以下模式:/var/log/*/*.log。这将抓取/var/log的子文件夹下所有的以.log结尾的文件。它不会从/var/log文件夹本身抓取。目前,不可能递归地抓取这个目录下的所有子目录下的所有.log文件。

(2)如果你发送输出目录到Elasticsearch(并且不用Logstash),那么设置IP地址和端口以便能够找到Elasticsearch:

output.elasticsearch:
    hosts: ["127.0.0.1:9200"]

(3)如果你想使用Logstash对Filebeat收集的数据执行额外的处理,那么你需要将Filebeat配置为使用Logstash。

output.logstash:
      hosts: ["127.0.0.1:5044"]

第三步:启动Filebeat

./filebeat -e -c filebeat.yml -d "publish"

标签: none

添加新评论