正则表达式对这个数字,假设有每行处理的一个接一个的,与神交,将是:
MA_Number= \(decimal\) \[%{NUMBER}\]
NUMBER是由grok定义的模式,旁边是一个很多的模式,可以帮助你:
https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns
至于你上面提供的消息(这不你神交匹配所有(?))
这是你如何可以快速测试这种/部署此:
我的测试配置:
input {
stdin{}
}
filter {
grok {
match => ["message", "MA_Number= \(decimal\) \[%{NUMBER:num}\]" ]
}
}
output {
stdout { codec => rubydebug }
}
测试:
[email protected]:~/dev/logstash$ ./logstash-2.3.2/bin/logstash -f conf3/
Settings: Default pipeline workers: 8
Pipeline main started
MA_Number= (decimal) [123456789]
{
"message" => "MA_Number= (decimal) [123456789]",
"@version" => "1",
"@timestamp" => "2016-09-19T13:30:56.837Z",
"host" => "pandaadb",
"num" => "123456789"
}
看看如何将消息的编号提取到变量num中。
使用类似'MA_Number \ s * = \ s * \(decimal \)\ s * \ [%{NUMBER:num}]'([pandaadb's solution](http://stackoverflow.com/a/39572722/3832970)似乎是可行的,只是命名变量)。 –