filebeat配置详解
配置主要是通过yml文件进行的,主要参数如下:
(1)字段解释
paths:指定要监控的日志,目前按照Go语言的glob函数处理。没有对配置目录做递归处理,比如配置的如果是:
/var/log/* /*.log
则只会去/var/log目录的所有子目录中寻找以".log"结尾的文件,而不会寻找/var/log目录下以".log"结尾的文件。
encoding:指定被监控的文件的编码类型,使用plain和utf-8都是可以处理中文日志的。
input_type:指定文件的输入类型log(默认)或者stdin。
scan_frequency:Filebeat以多快的频率去prospector指定的目录下面检测文件更新(比如是否有新增文件),如果设置为0s,则Filebeat会尽可能快地感知更新(占用的CPU会变高)。默认是10s。
multiline:适用于日志中每一条日志占据多行的情况,比如各种语言的报错信息调用栈。这个配置的下面包含如下配置:
pattern:多行日志开始的那一行匹配的pattern
negate:是否需要对pattern条件转置使用,不翻转设为true,反转设置为false。
match:匹配pattern后,与前面(before)还是后面(after)的内容合并为一条日志
max_lines:合并的最多行数(包含匹配pattern的那一行),默认为500行。
timeout:到了timeout之后,即使没有匹配一个新的pattern(发生一个新的事件),也把已经匹配的日志事件发送出去
tail_files:如果设置为true,Filebeat从文件尾开始监控文件新增内容,把新增的每一行文件作为一个事件依次发送,而不是从文件开始处重新发送所有内容。
配置文件:
filebeat.inputs:
- type: log
# Paths that should be crawled and fetched. Glob based paths.
paths:
- /var/log/*.log
配置文件格式非常重要,包括横杠-之后紧跟一个空格,行首空格应该为两个等。
测试filebeat启动后,查看相关输出信息:
1
|
. /filebeat -e -c filebeat.yml -d "publish" |
后台方式启动filebeat:
1
|
nohup . /filebeat -e -c filebeat.yml > /dev/null 2>&1 & 将所有标准输出及标准错误输出到 /dev/null 空设备,即没有任何输出 |
1
|
nohup . /filebeat -e -c filebeat.yml > filebeat.log & |
停止filebeat:
查找进程ID并kill掉:
1
|
ps -ef | grep filebeat<br> kill -9 进程号 |