天天看點

ELK系列(二)、在Kibana中使用RESTful操作ES庫

上一篇講了如何安裝ELK:

ELK系列(一)、安裝ElasticSearch+Logstash+Kibana+Filebeat-v7.7.0

-----------------------------------------------------------------------------------------

這篇介紹如何使用kibana連接配接ES并操作,先介紹一下ES和關系型資料庫的概念對應:

在ES7以前的版本,每個index(庫)可以有多個type(表),但在ES7之後取消了type的概念,每個index下面隻有一個預設的_doc的type,即是說在ES7之後的版本中,是庫表合一的:

ES7之前

ES RDBMS
index database
type table
document row
field column

ES7之後

ES RDBMS
index database
type 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]"

ELK系列(二)、在Kibana中使用RESTful操作ES庫

 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 
           
ELK系列(二)、在Kibana中使用RESTful操作ES庫

繼續閱讀