上一篇講了如何安裝ELK:
ELK系列(一)、安裝ElasticSearch+Logstash+Kibana+Filebeat-v7.7.0
-----------------------------------------------------------------------------------------
這篇介紹如何使用kibana連接ES並操作,先介紹一下ES和關係型數據庫的概念對應:
在ES7以前的版本,每個index(庫)可以有多個type(表),但在ES7之後取消了type的概念,每個index下面只有一個默認的_doc的type,即是說在ES7之後的版本中,是庫表合一的:
ES | RDBMS |
---|---|
index | database |
type | table |
document | row |
field | column |
ES | RDBMS |
---|---|
index | database |
table | |
document | row |
field | column |
RESTful接口
ES是基於RESTful接口操作的,也就說我們可以直接使用curl命令 或者python的request包直接操作,那麼這裏就介紹如何在Kibana中對ES的數據進行增刪改查等操作,在Kibana中點擊左邊的Dev Tool即可直接操作ES庫:
#建索引(庫)
PUT /noah
#查看某索引屬性
GET /noah/_settings
#新增/修改 獲取某庫某表某行記錄,這裏的3是id,主鍵,主鍵相同的會被更新,即使沒有修改數據,只要執行了就會更新,並且版本號+1
POST /noah/_doc/3
{
"name":"王義凱",
"age":27,
"email":"[email protected]",
"company":"CSDN"
}
#獲取某庫某表某行記錄
GET /noah/_doc/3
#獲取某庫某表某行記錄的字段值
GET /noah/_doc/1?_source=name
#獲取某庫某表某行記錄的值 不顯示其他版本號庫名錶名等屬性
GET /noah/_doc/1/_source
#獲取頭信息 404則沒記錄,200則成功
HEAD /noah/_doc/1
#刪除記錄,也會增加版本號,不會立刻刪除,過段時間會自動刪掉,刪除後再新增一條同樣的ID,版本號重置從1開始
DELETE /noah/_doc/1
#select * from 庫, index:庫, type:_doc表,document:記錄,field:字段
GET /noah/_search
#等同於查看錶結構
GET /noah/_mapping
#獲取索引裏的數據量
GET /noah/_count
#查看所有索引
GET /_cat/indices
#查看集羣狀態
GET /_cluster/health
#打開索引
POST /noah/_open
#關閉索引,關了之後就查不了了
POST /noah/_close
#清空索引但不刪除索引
POST /noah/_delete_by_query
{
"query": {"match_all": {}}
}
#刪除索引
DELETE /noah
上面也提到了,在ES7中,每個索引下面只能有一個默認的type,_doc,如果非要新增type會報錯:
"type" : "illegal_argument_exception",
"reason" : "Rejecting mapping update to [wyk] as the final mapping would have more than 1 type: [_doc, csdn]"
curl命令:
#刪除索引
curl -H "Content-Type: application/json" -X DELETE http://wykd:9200/csdn
#新建索引
curl -H "Content-Type: application/json" -X PUT http://wykd:9200/csdn
#新增記錄, -d後面跟json串,用單引號引,也可以跟json文件(需要用@關鍵字) 如果不加id的話,會自動生成id
curl -H "Content-Type: application/json" -X POST http://wykd:9200/csdn/_doc/1 -d '{"company":"CSDN","date":"2020-05-20"}'
curl -H "Content-Type: application/json" -X POST http://wykd:9200/csdn/_doc/1 -d @/root/tmp.json
#查看數據 指定id
curl -H "Content-Type: application/json" -X GET http://wykd:9200/csdn/_doc/1