Beats
简介
轻量型数据采集器,文档地址
Beats 是一个免费且开放的平台,集合了多种单一用途的数据采集器。
FileBeat专门用于转发和收集日志数据的轻量级采集工具。它可以作为代理安装在服务器上,FileBeat监视指定路径的日志文件,收集日志数据,并将收集到的日志转发到Elasticsearch或者Logstash。
工作原理
启动FileBeat时,会启动一个或者多个输入(Input),这些Input监控指定的日志数据位置。FileBeat会针对每一个文件启动一个Harvester(收割机)。Harvester读取每一个文件的日志,将新的日志发送到libbeat,libbeat将数据收集到一起,并将数据发送给输出(Output)。
logstash vs FileBeat
- Logstash是在jvm上运行的,资源消耗比较大。而FileBeat是基于golang编写的,功能较少但资源消耗也比较小,更轻量级。
-
Logstash 和Filebeat都具有日志收集功能,Filebeat更轻量,占用资源更少
-
Logstash 具有Filter功能,能过滤分析日志
-
FileBeat和Logstash配合,实现背压机制。当将数据发送到Logstash或 Elasticsearch时,Filebeat使用背压敏感协议,以应对更多的数据量。如果Logstash正在忙于处理数据,则会告诉Filebeat 减慢读取速度。一旦拥堵得到解决,Filebeat就会恢复到原来的步伐并继续传输数据。
一般结构都是Filebeat采集日志,然后发送到消息队列、Redis、MQ中,然后Logstash去获取,利用Filter功能过滤分析,然后存储到Elasticsearch中
安装
下载地址:https://www.elastic.co/cn/downloads/past-releases#filebeat
选择版本:7.17.3
# linux
https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.17.3-linux-x86_64.tar.gz
编辑配置
修改 filebeat.yml
以设置连接信息:
[root@hs-es-node1 ~]# cd filebeat-7.17.3-linux-x86_64
[root@hs-es-node1 filebeat-7.17.3-linux-x86_64]# vim filebeat.yml
# 找到对应的配置项 进行修改
output.elasticsearch:
hosts: ["192.168.75.65:9200","192.168.75.66:9200","192.168.75.67:9200"]
username: "elastic"
password: "123456"
setup.kibana:
host: "192.168.5.49:5601"
启用和配置数据收集模块
从安装目录中,运行:
# 查看可以模块列表
[root@hs-es-node1 filebeat-7.17.3-linux-x86_64]# ./filebeat modules list
#启用nginx模块 如果想关闭直接使用disable即可
[root@hs-es-node1 filebeat-7.17.3-linux-x86_64]# ./filebeat modules enable nginx
#如果需要更改nginx日志路径,修改modules.d/nginx.yml
- module: nginx
access:
var.paths: ["/var/log/nginx/access.log*"]
#启用 Logstash 模块
[root@hs-es-node1 filebeat-7.17.3-linux-x86_64]# ./filebeat modules enable logstash
#在 modules.d/logstash.yml 文件中修改设置
- module: logstash
log:
enabled: true
var.paths: ["/home/es/logstash-7.17.3/logs/*.log"]
启动 Filebeat
# setup命令加载Kibana仪表板。 如果仪表板已经设置,则忽略此命令。
./filebeat setup
# 启动Filebeat -e 前台执行
./filebeat -e
我本机运行了logstash,存在一些logstash的日志。现在去看看filebeat发送到es的日志是什么样子的
logstash实际的日志为