我有一些問題讓logstash識別我的模式,似乎匹配在Grok調試器(https://grokdebug.herokuapp.com/)。_grokparsefailure在匹配grok調試器模式
這與其他StackOverflow問題(logstash _grokparsefailure issues)上發現的問題類似,但不幸的是,解決方案似乎不起作用。
這些都是我想匹配日誌:
Mon Jan 25 11:12:12.890 [conn44141] authenticate db: admin { authenticate: 1, user: "person", nonce: "f00000000f", key: "a0000000000e" }
"2015-01-25 14:46:31" id=Admin id=Admin,ou=user,dc=gooogle-wa,dc=com a000000a 100.00.00.01 INFO dc=gooooogle-wa,dc=com "cn=user,ou=AME Users,dc=goooogle,dc=com" BARF-4 aO.access "Not Available" 100.00.00.01
我使用分析這些模式的,分別爲:
if [type] == "openam" {
if [file] =~ "access" {
grok{
match => [ 'message', '\"%{TIMESTAMP_ISO8601:timestamp}\"(\s*)(%{QUOTEDSTRING:data_}|%{DATA:data_})(\s*)(%{QUOTEDSTRING:LoginID}|%{DATA:LoginID})(\s*)%{DATA:ContextID}(\s*)(\"%{DATA:IP}\"|%{IP:IP})(\s*)?%{LOGLEVEL:loglevel}(\s*)%{DATA:Domain}(\s*)\"%{DATA:LoggedBy}\"(\s*)(?<messageID>[a-zA-Z0-9._-]+)(\s*)(%{DATA:ModuleName})(\s*)\"%{DATA:NameID}\"(\s*)(%{IP:hostname}|%{GREEDYDATA:hostname}) '
]
add_tag => "openam_access"
}
}
else if [file] =~ "error" {
grok{
match => ['message', '\"%{TIMESTAMP_ISO8601:timestamp}\"(\s*)(%{QUOTEDSTRING:data_}|%{DATA:data_}) (\s*)(%{QUOTEDSTRING:LoginID}|%{DATA:LoginID}) (\s*)%{DATA:ContextID}(\s*)(\"%{DATA:IP}\"|%{IP:IP})(\s*)?%{LOGLEVEL:loglevel}(\s*)%{DATA:Domain}(\s*)\"%{DATA:LoggedBy}\"(\s*)(?<messageID>[a-zA-Z0-9._-]+)(\s*)(%{DATA:ModuleName})(\s*)\"%{DATA:NameID}\"(\s*)(%{IP:hostname}|%{GREEDYDATA:hostname})',
]
add_tag => "openam_error"
}
}
}
if [type] == "mongo" {
grok {
match => [
"message", "(?m)%{GREEDYDATA} \[conn%{NUMBER:mongoConnection}\] %{WORD:mongoCommand} %{WORD:mongoDatabase}.%{NOTSPACE:mongoCollection} %{WORD}: \{ %{GREEDYDATA:mongoStatement} \} %{GREEDYDATA} %{NUMBER:mongoElapsedTime:int}ms",
"message", "%{DATA:DayOfWeek} %{SYSLOGTIMESTAMP:timestamp} %{DATA:Thread} %{GREEDYDATA:msg} %{IP:ip}:%{NUMBER:port} ?#?%{NUMBER:ID}? %{GREEDYDATA:connections} ",
'message', '%{DATA:DayOfWeek} %{SYSLOGTIMESTAMP:timestamp} %{DATA:Thread} %{DATA:msg}: %{WORD:userType} \{ authenticate: %{NUMBER:authenticate}, user: %{QS:user}, nonce: %{QS:nonce}, key: %{QS:key} \}'
]
add_tag => "mongodb"
}
}
,你可以檢查,這些模式在調試器上可以正常工作,但由於某種原因,在我的kibana儀表板上,它們會顯示_grokparsefailure標記。我懷疑它要麼與我逃避角色或使用{QS}/{QOUTEDSTRING}
。
感謝
感謝您回答Magnus。但是,我並不認爲包含整個.conf文件。我還沒有包含整個文件,因爲我還沒有清理它,但我已經包含了更多我認爲是必需的代碼。如果您希望我粘貼整個文件,請告訴我。否則,如果您可以再次查看問題,我將不勝感激。 – FruitPunchSamurai 2015-01-27 14:31:43