Filebeat-Log类型输入设置大全Loginput设置中文详解

Filebeat-Loginput输入设置大全

 

目录

Filebeat-Loginput输入设置大全

官方文档:

关于本文:

配置详解:

-type: log

path: xxx # 输入路径 # 重要,最基本

recursive_glob.enabled: false/true

encoding: xxx # 特殊编码情况

exclude_lines: ['xxx']  排除正则匹配到的行

include_lines: ['xxx']  只取正则匹配到的行

特殊需求:获取匹配A但排除匹配B的行,A/B为正则表达式

harvester_buffer_size: n  收集器缓存大小,默认值为16384

max_bytes: n 单行可以具有的最大字节数。默认值为10MB(10485760)

json.xxx: ...json格式相关设置

multiline.xxx: ... 处理跨行日志# 重要,有需求时

exclude_files: ['xxx'] 忽略正则匹配的文件

ignore_older: 忽略该时间之前修改的旧数据。默认为0,表示禁用

close_*: 关闭收集器相关设置

clean_*: 清除注册表文件中的状态条目相关设置

scan_frequency: 设置扫描路径的频率,默认10s

scan.sort:  排序相关,属于实验版本,官方不建议设置

scan.order: 排序相关,属于实验版本,官方不建议设置

tail_files: 开启为只从末尾读取,并非开头,默认关闭 # 只获取新数据

symlinks: 开启链接关联,默认禁用

backoff: 退避相关设置

harvester_limit: 限制一个输入并行启动的收集器数量

enabled: true/false 通用配置

tags: # 重要 通用配置

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推荐的一些示例编码:
  1.     plain,latin1,utf-8,utf-16be-bom,utf-16be,utf-16le,big5,gb18030,gbk,hz-gb-2312,

  2.     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

  •   每个收集器在获取文件时使用的缓冲区大小(以字节为单位)。

max_bytes: n 单行可以具有的最大字节数。默认值为10MB(10485760)

  •   超出丢弃不发送。此设置对于可能变大的多行日志消息比较实用。

json.xxx: ...json格式相关设置

  •   构造为JSON消息的日志。Filebeat逐行处理日志,只有每行有一个JSON对象时,JSON解码才有效。
  •   解码在线路滤波和多线之前发生。如果设置message_key选项,则可以将JSON解码与过滤和多行组合。
  •   这在应用程序日志包装在JSON对象中的情况下会很有用,就像在Docker中一样。

  示例:

    json.keys_under_root:true
    json.add_error_key:true
    json.message_key:log
  •   必须至少指定以下设置之一才能启用JSON模式:
  •     keys_under_root: 默认值为false。
  •     默认情况下,解码的JSON位于输出文档中的“json”键下。

  •     如果启用此设置,则会在输出文档中将键复制到顶层。

  •     overwrite_keys:
  •     如果keys_under_root启用此设置,则解码的JSON对象中的值将覆盖Filebeat通常添加的字段(类型,源,偏移等),以防发生冲突。

  •     add_error_key:
  •     启用此设置,则Filebeat会在JSON解组错误或message_key在配置中定义但无法使用时添加“error.message”和“error.type:json”键。

  •     message_key:
  •     一个可选配置设置,指定要应用线路过滤和多行设置的JSON密钥。

  •     如果指定,则密钥必须位于JSON对象的顶层,并且与密钥关联的值必须是字符串,否则将不会发生过滤或多行聚合。

  •     ignore_decoding_error: 默认值为false。

  •     可选配置设置,指定是否应记录JSON解码错误。如果设置为true,则不会记录错误。

multiline.xxx: ... 处理跨行日志# 重要,有需求时

  •   控制Filebeat处理跨越多行的日志消息的选项。

  官方文档:https://www.elastic.co/guide/en/beats/filebeat/current/multiline-examples.html

exclude_files: ['xxx'] 忽略正则匹配的文件

  •   匹配您希望Filebeat忽略的文件。默认情况下不会排除任何文件。
  •   可以配合'recursive_glob.enabled: false'递归方式监控子目录使用

  示例:

    filebeat.inputs:
    - type:log
      ...
      exclude_files:['\ .gz $']

ignore_older: 忽略该时间之前修改的旧数据。默认为0,表示禁用

  •   依赖于文件的修改时间。可用于忽略陈旧日志情况使用。
  •   设置非零值,如2h (2小时)或者5m (5分钟),表示启用忽略。
  •   应该大于close_inactive的值。
  •   两种情况:

    1.未经过处理的文件,即注册表中无状态的文件

    2.经过处理,但未更新的文件超过设定值

  •   对于情况1,初始偏移在文件末尾,情况2不会更改偏移
  •   若有更新,则在设置的偏移位置继续读取
  •   关于注册表状态,请参考后面clean_*相关说明

close_*: 关闭收集器相关设置

  •   close_inactive: 在无新数据一定时间后关闭收集器,默认为0不设置
  •       不是基于文件时间,依赖收集器的自有时间
  •       启用后收集器若关闭,如果再次更新,则会启动新的收集器
  •   close_renamed: 在文件重命名时关闭收集器,默认禁用
  •       由于文件处理程序不依赖文件名,所以默认禁用
  •       针对win'无法旋转文件'(can’t rotate the files)特殊情况应启用
  •   close_removed: 在文件删除时关闭收集器,默认启用
  •       通常只有文件处于非活跃状态,才能被删除。
  •       如果产生提前删除,数据没有完全读取的情况,
  •       需要禁用,必须同时禁用clean_removed。
  •   close_eof: 在文件结束时关闭收集器,默认禁用
  •       eof-End Of File
  •       针对'一个事件对应一个文件'的情况启用。
  •   close_timeout: 为收集器设置生命周期,默认为0不设置
  •       针对陈旧日志较有用,如果再次更新,则会启动新的收集器

clean_*: 清除注册表文件中的状态条目相关设置

  •   clean_inactive:不活动时间n过后删除文件的状态,默认为0禁用
  •       必须大于ignore_older + scan_frequency以确保当一个文件仍然被没有收获的状态被删除
  •       否则,可能导致不断重新发送完整内容,因为clean_inactive删除了Filebeat仍检测到的文件的状态。
  •       针对以减少注册表文件的大小,适用每天都在产生大量的新文件情况下。
  •       重命名文件名也会更新状态,计数器再次从0开始
  •   clean_removed: 无法找到原始文件时则清除状态,默认启用
  •       针对共享驱动器短时间消失并再出现时,无需从头读取,应禁用
  •       应同时禁用close_removed

scan_frequency: 设置扫描路径的频率,默认10s

  •   可以设置为1s,不应设置小于1s
  •   想保持实时传输,不建议设置此选项,建议设置close_inactive为默认

scan.sort:  排序相关,属于实验版本,官方不建议设置

scan.order: 排序相关,属于实验版本,官方不建议设置

tail_files: 开启为只从末尾读取,并非开头,默认关闭 # 只获取新数据

  •   适用于尚未filebeat处理,未保存状态的文件,
  •   若状态存在,则会忽略此设置

symlinks: 开启链接关联,默认禁用

  •   适用于文件存在软连接的情况,

backoff: 退避相关设置

  •   backoff: 在EOF后到再次检查文件中的等待时间,默认1s
  •       每当文件更新,等待时间会从0开始,
  •   max_backoff: 最大backoff时间,默认10s
  •       达到EOF后再次检查文件之前Filebeat等待的最长时间
  •       在检查文件多次退避之后,max_backoff无论值为多少,都不会超过backoff_factor
  •       设置要求:backoff <= max_backoff <= scan_frequency
  •       若max_backoff需要更高,建议关闭文件处理程序,让Filebeat再次获取文件。
  •   backoff_factor: 指定等待时间增加的速度指数,默认2
  •       退避因子越大,max_backoff达到的值越快。
  •       允许最小为1,会禁用退避算法

harvester_limit: 限制一个输入并行启动的收集器数量

  •   与打开的文件处理程序的最大数量直接相关。默认harvester_limit值为0,表示没有限制。
  •   如果要获取的文件数超过操作系统的打开文件处理程序限制,则此配置很有用。
  •   实际上并非所有文件都是并行打开的。建议与close_*结合使用,更频繁地关闭收集器来处理新文件。
  •   可以从'长时间不关闭收集器'改为'频繁关闭并打开新的收集器'状态,达到最佳效果。
  •   独立适用于每个输入。可以使用此选项给更高的收集器限制来间接提高某些输入的优先级。

其他通用配置:Log,Stdin,Redis,UDP,Docker,TCP,Syslog均支持

enabled: true/false 通用配置

  启用/禁用输入。默认情况下为true。

tags: # 重要 通用配置

  每条信息中添加一个内容自定的tags字段。使用标签可以在Logstash中应用if语句过滤。

  例:

    filebeat.inputs:
    - type: log
      ...
      tags: ["json"]

field: # 重要 通用配置

  •   自定义字段与值,向输出添加额外信息。
  •   例如,您可以添加可用于过滤日志数据的字段。字段可以是标量值,数组,字典或这些的任何嵌套组合。
  •   默认情况下,您在此处指定的字段将分组在fields输出文档中的子字典下。
  •   若要存储为顶级字段,设置fields_under_root选项为true。
  •   如果在常规配置中声明了重复字段,则其值将被此处声明的值覆盖。

  示例:

  filebeat.inputs:
    - type:log
      ...
      fields:
        app_id:query_engine_12

fields_under_root: true/false # 重要 通用配置

  •   设置为true,自定义字段将存储为输出文档中的顶级字段,而不是在fields子字典下分组。
  •   如果自定义字段名称与Filebeat添加的其他字段名称冲突,则自定义字段将覆盖其他字段。

processors:  预处理器 通用配置

  •   用于处理输入的数据,例如,内嵌值为已转化json格式的字符串。
  •   在filebeat.inputs:...后,顶级缩进配置

  官方文档:https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html

pipeline: 通用配置

  •   用于由该输入生成的事件设置的Ingest Node管道ID。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值