腾讯云 Elasticsearch 进阶篇(三十)filebeat 讲解与实战

前言|

为什么要使用filebeat 来收集服务器上日志?

Logstash功能虽然强大,但是它依赖java、在数据量大的时候,Logstash进程会消耗过多的系统资源,这将严重影响业务系统的性能,而filebeat就是一个完美的替代者,filebeat是Beat成员之一,基于Go语言,没有任何依赖,配置文件简单,格式明了,同时,filebeat比logstash更加轻量级,所以占用系统资源极少,非常适合安装在生产机器上。所以,Logstash与filebeat的使用原则就是:logstash是数据ETL工具,不用来收集服务器日志。而filebeat则用来收集服务器日志,不使用其日志过滤功能。那么接下来,我们讲讲filebeat:

一、下载与安装filebeat

同样,我们可以去官网下载合适的版本:可以从elastic官网https://www.elastic.co/downloads/beats/filebeat 获取filebeat安装包

下载filebeat安装包

下载完后,直接解压目录即可。如图

filebeat配置目录

讲解一下配置目录的各个文件:

1,filebeat.yml =====> filebeat配置文件,以"yml"格式结尾,需要注意语法问题。

2,filebeat =====> filebeat的启动服务脚本

3,modules.d ======> ES官方给配置的默认模板,里边定义了各种模板,我们只需打开即可使用其功能。这样能快速使用filebeat去收集各个服务器的日志。这是模块化设置

modules

二、配置Filebeat

那我们打开那个配置文件,filebeat.yml,看看里边各列项的含义:

第一部分:Input部分的讲解

Filebeat Input 配置文件

filebeat. Input :表示filebeat输入接收源的设置:

type: 表示要接收的事件类型,log表示日志文件

enable: false :表示按照模板的设置去启动filebeat。默认false,就表示启用模板。如果要修改配置文件,我们需要修改为True.表示不通过模板设置filebeat.

paths: 定义获取日志文件的目录,可以定义多个。如果非常多,可以使用通配符*表示。

第二部分:outputs配置文件讲解

filebeat配置

在配置文件的output部分,定义了很多不同的输出,比如logstash 、Kafka、ES等,那么这里我们就配置Logstash,输入到Logstash里去。

hosts: 输出到指定的主机中去。这里的主机就是logstash服务器。可以是本机,也可以是远程机器

那么,既然要output到logstash去,那么我们来看一下logstash配置文件:如下图:

logstash配置文件

那么这样的话,当我们的logstash服务启动的时候,一旦filebeat监控的到的日志文件有数据写入,就能实时的将数据传到Logstash里并展示到标准输出。

注意以下使用事项:

启动filebeat服务 nohup bin/filebeat -e -c filebeat.yml &

filebeat.yml 尽量使用空格,不要使用TAB建进行缩进。

三、总结

本节简单讲了一款非常实用的beats产品,用来获取服务器日志文件。那么其家族还有其它很多的子系列产品,针对不同的场景不同的选择,建议大家去官网查询实用。Ok,今天就到这里。