Filebeat-Loginput输入设置大全
目录
recursive_glob.enabled: false/true
exclude_lines: ['xxx'] 排除正则匹配到的行
include_lines: ['xxx'] 只取正则匹配到的行
harvester_buffer_size: n 收集器缓存大小,默认值为16384
max_bytes: n 单行可以具有的最大字节数。默认值为10MB(10485760)
multiline.xxx: ... 处理跨行日志# 重要,有需求时
exclude_files: ['xxx'] 忽略正则匹配的文件
ignore_older: 忽略该时间之前修改的旧数据。默认为0,表示禁用
scan_frequency: 设置扫描路径的频率,默认10s
scan.sort: 排序相关,属于实验版本,官方不建议设置
scan.order: 排序相关,属于实验版本,官方不建议设置
tail_files: 开启为只从末尾读取,并非开头,默认关闭 # 只获取新数据
harvester_limit: 限制一个输入并行启动的收集器数量
enabled: true/false 通用配置
field: # 重要 通用配置
fields_under_root: true/false # 重要 通用配置
processors: 预处理器 通用配置
pipeline: 通用配置
官方文档:
https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-input-log.html
关于本文:
-
Filebeat输入配置时,type有几种类型,我们常采用默认值:log。
-
实际上官方给出的input type有数种可以设置:Log,Stdin,Redis,UDP,Docker,TCP,Syslog
-
本文基于官方文档的排序,重点讲解的是Log类型输入设置,可参考开头给出的文档链接。
-
内容实际上是翻译文档+个人整理,并在部分选项之后标明'# 重要',说明较为实用。
配置详解:
-type: log
- Filebeat为在指定路径下找到的每个文件启动收集器。
- 您可以为每行指定一个路径,并添加相关设置。
- 以短划线( - )开头,区分不同收集器。
path: xxx # 输入路径 # 重要,最基本
示例:
filebeat.inputs:
- type: log # 例1
paths:
- /var/log/system.log
- /var/log/wifi.log
- type: log # 例2
paths:
- "/var/log/apache2/*"
fields:
apache: true
fields_under_root: true
- 例1 从多个文件中获取行:Stask.Log和WiFi.Log.
- 例2 从目录下每个文件获取行,并用'字段配置选项'在输出中添加一个名为apache的字段。
- 还可以这样设置:/var/log/*/*.log,二级子目录下的所有log文件
recursive_glob.enabled: false/true
- 允许扩展**为递归的glob模式。默认关闭为true。
- 设置false:以递归方式获取目录的所有子目录中的所有文件。
- 例如:/foo/**可递归扩展到/foo,/foo/*,/foo/*/*等。
encoding: xxx # 特殊编码情况
- 读取包含国际字符的数据的文件编码。
- W3C推荐的一些示例编码:
-
plain,latin1,utf-8,utf-16be-bom,utf-16be,utf-16le,big5,gb18030,gbk,hz-gb-2312,
-
euc-kr,euc-jp,iso-2022-jp,shift-jis等
- plain编码是特殊的,因为它不验证或转换任何输入
exclude_lines: ['xxx'] 排除正则匹配到的行
默认不排除
示例:
filebeat.inputs:
- type:log
...
exclude_lines:['^ DBG']
include_lines: ['xxx'] 只取正则匹配到的行
默认都获取
示例:
filebeat.inputs:
- type:log
...
include_lines:['^ ERR','^ WARN']
特殊需求:获取匹配A但排除匹配B的行,A/B为正则表达式
示例:
filebeat.inputs:
- type:log
...
include_lines:[A]
exclude_lines:[B]
harvester_buffer_size: n 收集器缓存大小,默认值为16384
- 每个收集器在获取文件时使用的缓冲区大小(以字节为单位)。