elasticsearch 如何基于2个令牌之一将消息拆分为2个属性?
我认为这是一个简单的案例,但我在实施过程中遇到了一些问题 我的输入消息格式为:elasticsearch 如何基于2个令牌之一将消息拆分为2个属性?,elasticsearch,logstash,elastic-stack,logstash-grok,logstash-file,elasticsearch,Logstash,Elastic Stack,Logstash Grok,Logstash File,我认为这是一个简单的案例,但我在实施过程中遇到了一些问题 我的输入消息格式为:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;bbbbbbbbbbbb或aaaaaaaa:bbbbbbbbbbb我想做的是在冒号或分号上拆分,然后将它们分配给键和值对 我做了两次变异,但当我运行一些样本测试时,它出错了 mutate{
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;bbbbbbbbbbbb
或aaaaaaaa:bbbbbbbbbbb
我想做的是在冒号或分号上拆分,然后将它们分配给键和值对
我做了两次变异,但当我运行一些样本测试时,它出错了
mutate{
split => {
"message" => ":"
}
add_field => {
"key" => "%{[message][0]}"
"value" => "%{[message][1]}"
}
}
mutate{
split => {
"message" => ";"
}
add_field => {
"key" => "%{[message][0]}"
"value" => "%{[message][1]}"
}
}
但我认为这是不对的。当时我正在深入研究grok,但不确定它是否就是这样工作的
我应该改为:
filter {
grok {
match => { "message" => "%{key}:%{value}" }
}
grok {
match => { "message" => "%{key};%{value}" }
}
}
我会用grok来做。试试这个:
grok { match => { "message" => "%{DATA:field1}[:;]%{GREEDYDATA:field2}" } }
我去看看是否行得通。我不确定匹配字符串是正则表达式还是有特定的条件。我会检查一下,然后再给你回复。:)