elasticsearch Logstash筛选器从日志消息中复制一些文本
我现在正在记录这样的短信:elasticsearch Logstash筛选器从日志消息中复制一些文本,elasticsearch,logstash,filebeat,elk,logstash-filter,elasticsearch,Logstash,Filebeat,Elk,Logstash Filter,我现在正在记录这样的短信: "Some text: some variable text" "Some other text: some other variable text" 我需要将消息的可变部分复制到一个新字段,以便有两个这样的新字段 "field1" : " some variable text" "field2" : "some other variable text&qu
"Some text: some variable text"
"Some other text: some other variable text"
我需要将消息的可变部分复制到一个新字段,以便有两个这样的新字段
"field1" : " some variable text"
"field2" : "some other variable text"
到目前为止,我们只能用filebeat处理器将整个文本消息复制到一个新字段,logstash也一样。我做了一些研究,我发现我可能能够使用条件句,并使用变异过滤器:
filter {
if "Some text" in [message] {
mutate { add_field =>{ "field1" => }}}
但是我发现了如何将“一些可变文本”复制到新字段中。有人知道怎么做吗?一种解决方案是直接使用如下过滤器:
filter{
grok {
match => {
"message" => "^Some text: %{GREEDYDATA:field1}"
}
}
grok {
match => {
"message" => "^Some other text: %{GREEDYDATA:field2}"
}
}
}
这样做的好处是,与if条件相比,它更易于阅读和维护
您可以将grok更改为在一行中处理所有情况:
filter{
grok {
match => {
"message" => "^(Some text: %{GREEDYDATA:field1}|Some other text: %{GREEDYDATA:field2})"
}
}
}
好的,主要的问题是我有5条日志消息,我想创建自定义字段,而不是弄乱其余的日志消息。这就是为什么我在考虑条件,但我的问题是如何实现它。我已经改变了我的解决方案,以与您的用例相匹配OK,非常感谢!似乎无法创建字段。。。我确实遵循了您的教程,但由于我有要到filebeat的日志,我不知道为什么要创建字段。您好,您使用了grok处理器和摄取节点管道,它工作得很好。谢谢你的帮助。