Beats概述
什么是Beats
官方定义是:轻量级数据传送工具。
Beats其实是一组beat工具的统称,它包含有很多的工具。
beat工具
- Filebeat:针对日志文件
- Metricbeat:度量数据,可以搜集系统性能和软件数据,将这些数据存在Elasticsearch中就可以进行展示、告警等功能。
- Packetbeat:网络数据,比如抓包
- Winlogbeat:主要针对Windows数据
- Hearbeat:健康检查
架构
Beats工具位于数据的起始端,它们获取到数据后可以直接传递到Elasticsearch中进行存储,或者传输给Logstash进行日志处理,最终都会交给Kibana进行展示。
Filebeat
Filebeat处理流程
Filebeat主要是针对日志文件进行处理的,它的处理流程如下:
1、输入Input:输入就是日志文件
2、处理 Filter:对获取到的日志文件进行处理
3、输出 Output:将结果输出
Fliebeat构成
从图中可以看出,Filebeat的输出对象可以使Elasticsearch、Logstash、Kafka、Redis等。而Filebeat有两个组成部分:Prospector和Harvester。
Prospector:负责检测指定的日志文件是否存在变化。
Harvester:当 Prospector 检测到指定的日志发生变化时就会通知Harvester来收集新的日志,然后发送到output对象。
在一个Filebeat中可以有多个Prospector对象,每一个Prospector对象针对的日志对象都是不同的。每个Prospector会对自己匹配到的日志文件启动一个Harvester。
Filebeat配置
Filebeat配置是通过yaml语法进行配置的。
Input配置
示例:
filebeat.prospectors:
- input_type:log
paths:
- /var/log/apache/httpd-*.log
- input_type:log
paths:
- /var/log/messages
- /var/log/*.log
其中,input_type有两种类型:
-