filebeat系列-yml文件配置
通用配置项
tip:不受namespace限制,与filebeat.inputs同级
name
Beat的name,若未设置,取服务器的hostname值。经过处理后会输出到agent.name字段中,可以使用name组织所有使用同一个Beat处理的数据
tags
可选项,值是一个list,用于添加各种属性标记
fields
可选项,当需要向output中输出额外的属性描述时使用,值可以是 标量, arrays, dictionaries, 或其他嵌套类型
fields_under_root
将fields内的属性设置为top level,如果fields内的属性和另一个top level中的属性有冲突,另一个将会被覆盖,可选值为true和false
processors
类似于logstash的filter部分,主要做些简单的数据处理,参考https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html
全局配置项
在filebeat命名空间下,通常设置是 filebeat.xxx.xxx
filebeat.registry.path:xxxx
这里的xxxx是相对于data.path而言的,即 {path.data}/xxxx
filebeat.registry.flush:0s
控制registry里的内容何时写入到文件中
默认是0s,通俗讲就是每个event被发布成功后,会立即写入一条类似位移的记录到registry;如果设置是n s(n>0),则发布成功后n秒才写入,
0s可以保证立即写入,如果filebeat down掉了,位移不会出问题,但是会影响进程的性能;
ns情形,down掉的话可能会出现已经发布出去的event,位移没有记下导致重启后重复读取,但是可以提高进程处理的性能
shutdown_timeout
filebeat关闭时的延时时间,这个延时主要针对events 的发布状态来讲,默认是关闭的,不关心当前是否还有尚在发布的events
如果设置延时,则会在延时的时间后才shutdown
进程文件路径设置
主要设置filebeat在运行中从哪里找其对应的文件,命名空间为 path
path.home
path.data------常用
path.logs------常用
path.config
以上配置均可用对应的命令行参数覆盖,即如果使用命令行参数指定,文件中配置的该项会被忽略,但是不会被修改
配置的值通常用绝对路径,不用相对路径
其他预研成果
一个yml的inputs中可以配置多个type
只允许一个output(官网说"Only a single output may be defined"说的有点模棱两可,试了多个不生效,但是可以在output里取字段值达到输出到多个目的地的要求)
filebeat中配置的fields,在logstash中获取:%{[fields][添加的字段名]}
如何输出ip:
首先在服务器环境变量里配置SERVERIP:127.0.0.0
然后增加fields属性的配置
fields: ip: 10.192.78.24 testIp: ${SERVERIP}