Logstash Filebeat如何指定日志存储的匹配规则
我想让Logstash'gork过滤器使用Filebeat提供的匹配规则 这是我的Filebeat配置:Logstash Filebeat如何指定日志存储的匹配规则,logstash,elastic-stack,logstash-grok,filebeat,Logstash,Elastic Stack,Logstash Grok,Filebeat,我想让Logstash'gork过滤器使用Filebeat提供的匹配规则 这是我的Filebeat配置: filebeat.inputs: - type: log enabled: true paths: - /root/Log-test/test.log fields: "@metadata": formatter: "%{TIMESTAMP_ISO8601:timestamp} - %{NOTSPACE:module} - %{LOGLEVEL:l
filebeat.inputs:
- type: log
enabled: true
paths:
- /root/Log-test/test.log
fields:
"@metadata":
formatter: "%{TIMESTAMP_ISO8601:timestamp} - %{NOTSPACE:module} - %{LOGLEVEL:level} - %{NOTSPACE:filename} - %{GREEDYDATA:log_message}"
fields_under_root: true
output.logstash:
hosts: ["localhost:5045"]
这是我的日志存储配置:
input {
beats {
port => "5045"
}
}
filter {
grok {
match => { "message" => "%{[@metadata][formatter]}" }
}
}
output {
file {
path => "/tmp/log-test.log"
codec => rubydebug { metadata => true }
}
}
因此,我想让grok知道我的匹配规则内容(消息
字段)是“%{TIMESTAMP\u ISO8601:TIMESTAMP}-%{NOTSPACE:module}-%{LOGLEVEL:level}-%{NOTSPACE:filename}-%{greedyddata:log\u message}”
但是上面的设置不起作用,我想知道如何实现这样的功能?还是有可能做到
谢谢 由此可知,“不支持具有动态%{field}引用的Grok表达式”。这篇文章的原作者提出了一个github问题,现在(一年后仍未解决)。验证元数据是否如预期的那样出现:output{stdout{codec=>rubydebug{metadata=>true}}}@AlainCollins我已经验证了元数据,是的,它包含了
格式化程序
field@AlainCollins数据很好,问题是如何将数据分配到消息
字段,我看了一下,似乎Logstash更喜欢通过字符串格式分配数据,这与grok match Style非常相似谢谢你的回复。我还收到了一位弹性成员的回复,似乎不可能使用动态%{field}作为grok模式,请参阅我在弹性讨论中的帖子