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​