filebeat.inputs:
- type: log
paths:
- /var/log/system.log
- "/var/log/apache2/*"
fields:
topic: varlog
fields_under_root: true
encoding: utf-8
exclude_lines: ['^DBG']
include_lines: ['^ERR', '^WARN']
ignore_older: 2h
close_inactive: 5m
harvester_buffer_size: 600000
close_inactive: 5m
close_timeout: 120m
scan_frequency: 15s
multiline.pattern: '^\['
multiline.negate: true
multiline.match: after
max_procs: 1
queue.mem:
events: 4096
flush.min_events: 512
flush.timeout: 5s
output.kafka:
hosts: ["localhost:9092"]
topic: "logs-%{[agent.version]}"
channel_buffer_size:2000
bulk_max_size:30000
paths:支持模糊匹配
fields:自定义属性输出到output
fields_under_root:fields是否为顶级字段(默认顶级字段是fields,下属各子节点
)
exclude_lines:排查哪些行(语法见:https://www.elastic.co/guide/en/beats/filebeat/7.x/regexp-support.html)
include_lines:包括哪些行
include_lines
优先级高于exclude_lines
harvester_buffer_size:每个
harvester 使用的cache大小(byte)
ignore_older: 超过多久没有修改的文件,不再处理该文件
close_inactive: 5m harvester读取到文件末尾后,空闲5m, 该值设置时,要大于正常写入数据的频率。
close_timeout:每次
harvester运行的最大时长(达到这个阈值,harvester将会关闭,直到下次scan_frequency到达)
如果ignore_older=
close_timeout,
harvester关闭之后,文件更新内容将无法被发送。
multiline.pattern: '^\[' 匹配一行起始点( FileBeat系列:multiline的pattern negate match使用方法)
multiline.negate: true
multiline.match: after
multiline.max_lines:最多匹配多少行(默认500)
queue.mem:
events: 4096 事件容量
flush.min_events: 512 一次发送最小event数
flush.timeout: 5s 一次发送最大min_events等待时间
max_procs: 1 最大使用CPU核数
output.kafka:
hosts: ["localhost:9092"]
topic: "logs-%{[agent.version]}"
channel_buffer_size:2000 一个kafka broker消息数buffer
bulk_max_size:30000 一次kafka请求最大event数
参考
https://www.elastic.co/guide/en/beats/filebeat/7.x/filebeat-input-log.html#_encoding_3
https://www.elastic.co/guide/en/beats/filebeat/7.x/kafka-output.html#_bulk_flush_frequency