input插件
input 插件指定数据的输入源,一个pipeline可以有多个input插件。 stdin举例:
file配置
glob匹配语法举例
kafkakafka是最流行的消息队列。
codec 插件
codec插件作用域input和output插件,负责将数据在原始与logstash event之间转换。 常见的codec测试结果分别如下:
line –> rubydebug:
line –> dots
不论输入什么,输出都会变成一个点。一般用于不关注输出的时候,比如压测时,只关心logstash是否运行。
json –> rubydebug
multiline使用场景当一个event的message由多行组成的时候,需要用到这个codec,常见情况是堆栈日志信息处理,如:
设置参数举例filter插件
filter插件是logstash的主要功能之一,可以对logstash event进行丰富的处理。如类型转换、删除字段等。 常见filter插件date插件将日期字符串解析为日期类型,然后替换@timestamp字段或者其他字段。 例如:
date参数如下:
grok插件grok是内置带有名字的正则表达式的集合,通常用于将一条日志文件解析成为一个json形式。 grok语法如下:
也可以自定义匹配规则:
自定义 gork pattern
match匹配多种样式
overwrite重写方法
dissect插件dissect几区分隔符原理解析数据,解决grok解析消耗过多cpu资源的问题。
只能应用于每行格式相似且分割符明确的场景
语法:
举例:
mutate插件可以对字段进行各种操作,包括重命名,删除替换更新等。主要操作有:
convert实现字段类型转换,类型为hash,支持integer、float、string、boolean
gsub对内容进行替换,类型为数组,每3项为一个替换配置
split将字符串切割成为数组
join将数组拼接为字符串
merge将两个数组合并成为1个数组,字符串会被转换为1个元素的数组进行操作
rename将字段重命名
update/replace更新字段内容,updatge在字段存在的时候才生效,replace在字段不存在的时候会执行行增加字段的操作
remove删除字段
json插件将内容为json的数据进行解析
geoip插件根据ip地址提供对应的地域信息,比如经纬度、城市名称等,方便进行地理数据分析。
ruby插件当所有插件都无法满足需求的时候,可以编写ruby代码来修改logstash event对象
output插件
output负责将数据输出到指定的位置。output常见插件有如下几种:
stdout输出到标准输出,一般用于调试。
file输出到文件,实现将分散的日志集中到一个文件中,方便查看。
elasticsearch输出到elasticsearch中,基于http实现。
|