我正在使用Logstash將來自Tomcat訪問日誌的日誌輸出到elasticsearch。 我使用的模式如下:Elasticsearch不理解Logstash類型
grok {
type => "access_log"
pattern => "\[%{DATA:my_timestamp}\] %{IP:client} %{WORD:method} %{URIPATHPARAM:request} \[%{DATA:auth_data}\] \[%{DATA:another_timstamp}\] %{NUMBER:result_code} %{NUMBER:duration} %{NUMBER:bytes}"
}
當你場期間我們格式化爲NUMBER上面看到的。
登錄時elasticsearch的信息,並通過鍍鉻感插件做一個REST查詢,如下所示:
GET /_all/_mapping?pretty=1
它識別領域,但與String類型如下:
"duration": {
"type": "multi_field",
"fields": {
"duration": {
"type": "***string***",
"omit_norms": true
},
"raw": {
"type": "string",
"index": "not_analyzed",
"omit_norms": true,
"index_options": "docs",
"include_in_all": false,
"ignore_above": 256
}
}
}
我期望它把它理解爲一個數字。這是預期的嗎?
例如geoip等其他字段被理解爲與字符串不同的類型。
"geoip": {
"dynamic": "true",
"properties": {
"location": {
"type": "geo_point"
}
}
},
THX提前
Thx。您提供的方向非常有幫助,並將我帶入解決方案。 –
@ isaac.hazan所以我有同樣的問題,你的評論導致我認爲這不是直接的答案? – stedotmartin
是的,爲了使這項工作,我必須在elasticsearch中定義索引的類型如下:「evtTime」:{「type」:「date」,「format」:「dd/MMM/yyyy:HH:mm:ss」 }, –