0
点赞
收藏
分享

微信扫一扫

logstash.filter.kv Exception while parsing kv 解决办法


异常信息如下

Exception while parsing kv

logstash.filter.kv Exception while parsing kv  解决办法_正则表达式


查看 logstash 配置文件


 

kv {
source => "custmsg"
field_split => ","
value_split => "="
}


那肯定是 custmsg 的问题了,是不是 custmsg 里面存在 “\n” 导致 kv filter 如何解析。  在 custmsg 中去掉 "\n" 试试


mutate {  
gsub => [
"custmsg","\n", "" ,
"custmsg","\r", ""
]
}

   
下面介绍 logstash  mutate  插件


mutate插件可以对事件中的数据进行修改,包括rename、update、replace、convert、split、gsub、uppercase、lowercase、strip、remove_field、join、merge等功能。


栗子

1、rename

对于已经存在的字段,重命名其字段名称。

 

filter {
mutate {
rename => ["syslog_host", "host"]
}
}

2、update

更新字段内容,如果字段不存在,不会新建


filter {
mutate {
replace => { "message" => "%{source_host}: My new message" }
}
}


3、replace

与 update 功能相同,区别在于如果字段不存在则会新建字段

filter {
mutate {
replace => { "message" => "%{source_host}: My new message" }
}
}

4、convert

数据类型转换。

filter {
mutate {
convert => ["request_time", "float"]
}
}

5、gsub

gsub 提供了通过正则表达式实现文本替换的功能。

filter {
mutate {
gsub => [
# replace all forward slashes with underscore
"fieldname", "/", "_",
# replace backslashes, question marks, hashes, and minuses
# with a dot "."
"fieldname2", "[\\?#-]", "."
]
}
}

6、uppercase/lowercase
大小写转换


filter {
mutate {
uppercase => [ "fieldname" ]
}
}

7、split

将提取到的某个字段按照某个字符分割

filter {
mutate {
split => ["message", "|"]
}
}

针对字符串 "123|321|adfd|dfjld*=123",可以看到输出结果:

{
"message" => [
[0] "123",
[1] "321",
[2] "adfd",
[3] "dfjld*=123"
],
"@version" => "1",
"@timestamp" => "2014-08-20T15:58:23.120Z",
"host" => "raochenlindeMacBook-Air.local"
}

8、strip

类似 trim,只去除首尾的空白字符

filter {
mutate {
strip => ["field1", "field2"]
}
}


9、remove_field

删除字段:

filter {
mutate {
remove_field => [ "foo_%{somefield}" ]
}
}

10、join

将类型为 array 的字段中的 array 元素使用指定字符为分隔符聚合成一个字符串。
如我们可以将 split 分割的结果再重新聚合起来:

filter {
mutate {
split => ["message", "|"]
}
mutate {
join => ["message", ","]
}
}

输出结果:

{
"message" => "123,321,adfd,dfjld*=123",
"@version" => "1",
"@timestamp" => "2014-08-20T16:01:33.972Z",
"host" => "raochenlindeMacBook-Air.local"
}

11、merge

对于几个类型为 array 或 hash 或 string 的字段,我们可以使用 merge 合并

filter {
mutate {
merge => [ "dest_field", "added_field" ]
}
}

需要注意的是,array 和 hash 两个字段是不能 merge 的。


欢迎关注公众号:【程序员开发者社区】

logstash.filter.kv Exception while parsing kv  解决办法_字符串_02


举报

相关推荐

tomcat乱码解决办法

0 条评论