用Elasticsearch作爲後臺數據的存儲,kibana用來前端的報表展示。Logstash在其過程中擔任搬運工的角色,它爲數據存儲,報表查詢和日誌解析創建了一個功能強大的管道鏈。
用logstash把統計各項API的運行情況的日誌拿過來,存儲到Elasticsearch,在Elasticsearch建立索引,日誌中的headers、response各個屬性值都被放到了_source中,在kibana也可以看到這些字段
但是使用聚合的時候就會報錯:
"aggs": {
"group_by_uri": {
"terms": {
"field": "api.upstream_url",
"size": 1000
}
}
}
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "Fielddata is disabled on text fields by default
按網上的說法是要
聚合前
PUT megacorp/_mapping/employee/
{
"properties": {
"interests": {
"type": "text",
"fielddata": true
}
}
}
其實也可不用,,直接把我們的那個field後面加上keyword就可以正確執行了
"field": "api.upstream_url.keyword"