正則表達式對這個數字,假設有每行處理的一個接一個的,與神交,將是:
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)似乎是可行的,只是命名變量)。 –