Filebeat官网:https://www.elastic.co/guide/en/beats/filebeat/index.html
警告:这里一定要检查好自己安装的filebeat是哪个版本。然后在官网对应版本下,进行参数设置;避免踩坑。
一、概述
-
Filebeat
是Beat成员之一,基于Go语言开发,并且无需添加任何依赖,Logstash
和filebeat
都具有日志收集的功能,而filebeat
更轻量,占用资源更少,所以filebeat
一般都安装在客户端服务器,用来在客户端上收集日志,最终传输给Logstash
进行分析。 -
Filebeat由两个主要组件构成:
harvesters
和prospector
。这两类组件一起协同完成Filebeat的工作,input在指定路径文件中把数据读取出来;之后发送事件数据到配置的output中。
-
Harvesters
负责进行单个文件的内容收集,在执行过程中,每一个Harvester
会对一个文件进行逐行内容读取,并且把读取到的内容发送到配置的output中。 -
Prospector
负责管理Harvsters
,并且找到所有需要进行读取的数据源。如果input 配置的是log (日志) 类型,Prospector
将会去配置的路径下,查找所有匹配的文件,最后为每一个文件创建一个Harvster
。
input-log相关属性配置见:https://www.elastic.co/guide/en/beats/filebeat/6.5/filebeat-input-log.html
output-redis相关属性配置见:https://www.elastic.co/guide/en/beats/filebeat/6.5/redis-output.html
参照我公司的环境及配置,详细介绍一下filebeat的参数设置。版本:6.5.4
线上 filebeat配置:
filebeat.inputs:
# 这里为收集docker的所有日志
- type: log
enabled: true
paths:
- "/qj/docker/data/docker/containers/*/*-json.log"
scan_frequency: 6s
harvester_buffer_size: 16384
max_bytes: 10485760
fields:
level: debug
fields_under_root: true
log_topics: ali245
encoding: utf-8
json:
json.keys_under_root: true
json.add_error_key: true
json.message_key: log
tail_files: true
processors:
- add_docker_metadata:
host: "unix:///va