较深入解析filebeat.yml各字段功能

首先,6.0之后的版本的filebeat,已经不再支持document_type这个选项了。因为ES6不再支持自己在同一个index下定义多个type。

常见的几个参数

以下面这个filebeat.yml为例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
filebeat.prospectors:
- type: log #这个值可以是stdin(读入标准)、udp(通过udp读取事件)
enabled: true
paths:
- /var/log/messages #指定文件,可以使用通配符
tags: ["logmessages"] #lostash能区分不同目录发过来的日志,用tag区分
encoding: utf-8 #设置字符编码
scan_frequency: 10s #每 10 秒钟扫描一次
harvester_buffer_size: 15000 #实际读取文件时,每次读取15000字节
tail_files: true #是否从文件末尾开始读取
fields:
alilogtype: usercenter_serverlog
serverip: 172.16.0.207
fields_under_root: true #field 字段会放在根索引下,否则会放在 fields 字段下

#这里添加第二个日志路径
- type: log
enabled: true
paths:
- /tmp/test.log
tags: ["test"]

output.kafka:
enabled: true
hosts: ["172.31.0.84:9092"]
topic: 'system-secure' #支持 topic: '%{[fields][alilogtype]}' 这种写法

在kibana上看到的效果如图:
akb48

exclude和include

而如果是这样:

1
2
3
4
5
6
7
8
9
10
11
12
- type: log
enabled: true
paths:
- /tmp/test.log
exclude_lines: ['^JAMES'] #排除掉JAMES开头的行
include_lines: ['^HARDEN', '^CURRY'] #保留HARDEN或者CURRY开头的行
tags: ["test"]

output.kafka:
enabled: true
hosts: ["172.31.0.84:9092"]
topic: 'system-secure'

效果如图:
akb48

注意!如果同时定义了include_linesexclude_lines,则Filebeat首先执行include_lines,然后执行exclude_lines。 这两个选项的定义顺序无关紧要。 即使exclude_lines出现在配置文件中的include_lines之前,include_lines选项也会始终在exclude_lines选项之前执行。

参考资料

http://www.xiaot123.com/post/elk_filebeat1
https://blog.csdn.net/u013613428/article/details/78665081
http://www.51niux.com/?id=204
https://github.com/wangriyu/docker-elk/wiki/Filebeat-Kafka-ELK

感谢您请我喝咖啡~O(∩_∩)O,如果要联系请直接发我邮箱chenx1242@163.com,我会回复你的
-------------本文结束感谢您的阅读-------------