Filebeat的安装以及使用
Beats日志搜集器
目前Beats包括四种:
- Packetbeat(搜集网络流量数据)
- Topbeat(搜集系统、进程和文件系统级别的CPU和内存使用情况等数据)
- Filebeat(搜集文件数据)
- Winlogbeat(搜集Windows事件日志数据)
Filebeat简介
Filebeat是一个轻量级的日志数据收集工具,属于Elastic公司的Elastic Stack(ELK Stack)生态系统的一部分。它的主要功能是从各种来源收集日志数据,将数据发送到Elasticsearch、logstash或其他目标,以便进行搜索、分析和可视化。
- 以下是Filebeat的主要概述和特点
轻量级:Filebeat是一个轻量级的代理,对系统资源的消耗非常低。它设计用于高性能和低延迟,可以在各种环境中运行,包括服务器、容器和虚拟机。
多源收集:Filebeat支持从各种来源收集数据,包括日志文件、系统日志、Docker容器日志、windows事件日志等。它具有多个输入模块,可以轻松配置用于不同数据源的数据收集。
模块化:Filebeat采用模块化的方式组织配置,每个输入类型都可以作为一个模块,易于扩展和配置。这使得添加新的数据源和日志格式变得更加简单。
自动发现:Filebeat支持自动发现,可以在容器化环境中自动识别新的容器和服务,并开始收集其日志数据。
安全性:Filebeat支持安全传输,可以使用TLS/SSL加密协议将数据安全地传输到目标。它还支持基于令牌地身份验证。
数据处理:Filebeat可以对数据进行简单地处理,如字段分割、字段重命名和数据过滤,以确保数据适合更进一步地处理和分析。
目标输出:Filebeat可以将数据发送到多个目标,最常见的是将数据发送到Elsticsearch,以便进行全文搜索和分析。此外还可以将数据发送到Logstash、Kafka等目标。
实时性:Filebeat可以以实时方式收集和传输数据,确保日志数据及时可用于分析和可视化。
监控和管理:Filebeat具有自身的监控功能,可以监视自身的状态和性能,并于Elasticsearch、Kibana等工具集成,用于管理和监控数据收集。
Filebeat的采集原理
数据源检测
Filebeat首先要配置要监视的数据源,这可以是日志文件、系统日志、Docker容器日志、Windows事件日志。Filebeat可以通过输入模块配置来定义数据源。
数据收集
一旦数据源背定义,Filebeat会定期轮询这些数据源,检查是否有新的数据差生如果有新的数据,Filebeat将读取数据并将其发送到后续处理阶段。
数据处理
Filebeat可以对采集到的数据进行一些简单的处理,例如字段分割、字段重命名、数据解析等。这有助于确保数据格式进行的处理和分析。
数据传输
采集到的数据将被传输到一个或者多个目标位置,通常是Elasticsearch、logstash或者kafka等。Filebeat可以配置多个输出目标,以便将数据复制到多个地方以增加冗余或分发数据。
Filebeat的安装
- 下载地址
- 下载Filebeat安装包,解压到相应的目录;
mkdir /usr/local/filebeat
tar -zxvf filebeat-6.5.1-linux-x86_64.tar.gz -C /usr/local/filebeat
- 进入到filebeat目录下,修改配置文件filebeat.yml
cd filebeat-6.5.1-linux-x86_64
vi filebeat.yml
-
配置日志的解析
在Filebeat中配置日志的解析方式主要涉及到两个部分,一个是Filebeat的配置文件,另一个是log input部分的配置。首先,需要在Filebeat的配置文件中指定日志文件的路径,例如:
在这个例子中,Filebeat将会监控/var/log目录下所有以.log结尾的文件。
其次,需要在log input部分配置Filebeat如何解析这些日志。例如,如果日志是JSON格式的,可以这样配置:
在这个例子中,Filebeat将会尝试将message字段地内容解析为JSON,如果解析成功,解析后的数据将会被送到Filebeat的输出部分。如果解析失败,原始的日志数据也会被发送到输出部分。 -
Filebeat输入为终端输入
下面我们以最简单的配置来进行验证,编辑filebeat安装目录下的filebeat.yml配置文件
filebeat.inputs:
- type: stdin
enabled: true
setup.template.settings:
index.number_of_shards: 3
output.console:
pretty: true
enable: true
然后运行启动命令
./filebeat -e -c filebeat.yml
在控制台输入"hello"回车,此时可以看到输出json为处理后的日志数据。
2. Filebeat从文件(file)读取
- 首先修改filebeat的input配置文件,修改type:log
- 添加读取文件地址
- 启动filebeat查看此时已经读取到的内容。