【发布时间】:2021-07-04 20:25:44
【问题描述】:
我正在使用以下配置,并希望它能够按照以下字段进行解析。
下面是pipeline.conf 文件。
input {
beats {
port => "5044"
}
}
filter {
grok {
match => { "message" => "%{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:%{MINUTE}(?::?%{SECOND})\| %{USERNAME:exchangeId}\| %{DATA:trackingId}\| %{NUMBER:RoundTrip:int}%{SPACE}ms\| %{NUMBER:ProxyRoundTrip:int}%{SPACE}ms\| %{NUMBER:UserInfoRoundTrip:int}%{SPACE}ms\| %{DATA:Resource}\| %{DATA:subject}\| %{DATA:authmech}\| %{DATA:scopes}\| %{IPV4:Client}\| %{WORD:method}\| %{DATA:Request_URI}\| %{INT:response_code}\| %{DATA:failedRuleType}\| %{DATA:failedRuleName}\| %{DATA:APP_Name}\| %{DATA:Resource_Name}\| %{DATA:Path_Prefix}"}
}
geoip {
source => "Client"
}
}
output {
elasticsearch {
hosts => [ "localhost:9200" ]
}
}
实际的日志是这样的 -
2021-06-25T08:51:38,788| ETxatokABfg2U2wVXx2ww| atid:1b9mgcaaCgpwrcgE1FLBAiF88mk| 270 ms| 212 ms| 0 ms| api.dev.only.bfco.io [] / /*:443| | OAuth| | 156.50.222.27| POST| /piie-aiip/v5/aiip/account-success-constant| 201| | | Ba API| Root Resource| /*
2021-06-25T13:02:41,254| 3rURHHJEh936dQEBMx-6yA| atid:x6UY50zGPx2L_qZmFm251FkQDiU| 160 ms| 8 ms| 0 ms| api.dev.only.bfco.io [] / /*:443| | OAuth| | 156.50.222.27| GET| /piie-aiip/v5/aiip/account-success-constant/97e7a7b9-3e60-4508-a35b-d0a01ba902bb| 200| | | Ba API| Root Resource| /*
2021-06-25T13:03:51,257| P0nH46kGVFnhZZ5iC6ZU1g| atid:y7UX49zBPy1P_wXnFm251FkQDiU| 39 ms| 2 ms| 0 ms| api.dev.only.bfco.io [] / /*:443| | OAuth| | 156.50.222.27| GET| /piie-aiip/v5/aiip/account-success-constant-asu| 400| | | Ba API| Root Resource| /*
但是当在 kibana 上进行检查时,我看到消息字段是一个字段(如下),而不是如 pipeline.conf 中提到的那样分成上述各个字段。
以下来自扩展文档 - 表格。
message 2021-06-25T13:01:03,478| XQvIx-qYtp2lP0tLcr53pQ|
atid:y7UX99zGPx2L_qZmFm101EkQBiU| 180 ms| 10 ms| 0 ms| api.dev.only.bfco.io
[] / /*:443| | OAuth| | 156.50.222.27| POST| /piie-aiip/v5/aiip/account-success-
constant| 201| | | Ba API| Root Resource| /*
我想在其中一个字段上运行查询 (NUMBER:RoundTrip:int)
当在 Grok Debugger 中进行上述检查时,它会显示预期的结果。
即将样本数据放在日志行之一的上方, 用在 grok Patten 上面, 它给出了以下输出。
{
"response_code": "201",
"method": "POST",
"subject": "",
"Request_URI": "/piie-aiip/v5/aiip/account-success-constant",
"Resource": "api.dev.only.bfco.io [] / /*:443",
"UserInfoRoundTrip": 0,
"APP_Name": "Ba API",
"authmech": "OAuth",
"Resource_Name": "Root Resource",
"failedRuleName": "",
"exchangeId": "XEyIx-yYtp2lP0kLcr08kP",
"RoundTrip": 180,
"ProxyRoundTrip": 10,
"scopes": "",
"Client": "156.50.222.27",
"Path_Prefix": "",
"failedRuleType": "",
"trackingId": "atid:y8YX50zGPx3L_qZmg981FkEBiU"
}
1 Q. 有人可以请教 pipeline.conf 中的问题,防止消息字段成为单个字段。
2 Q. 也不确定为什么当索引模式以 int 形式传递时,以下字段在索引模式中显示的长度一样长。
【问题讨论】:
标签: elasticsearch logstash kibana logstash-grok