簡介
Kibana是一個針對Elasticsearch的開源分析及可視化平臺,使用Kibana可以查詢、查看并與存盤在ES索引的資料進行互動操作,使用Kibana能執行高級的資料分析,并能以圖表、表格和地圖的形式查看資料,
Kibana安裝和使用
安裝Kibana
下載:
注意Kibana版本需要和Elasticsearch一致,
cd /opt/
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.12.1-linux-x86_64.tar.gz
解壓:
tar -zxvf kibana-7.12.1-linux-x86_64.tar.gz
修改Kibana組態檔
修改/opt/kibana-7.12.1-linux-x86_64/config/kibana.yml:
server.port: 5601
server.host: "10.0.2.15"
elasticsearch.hosts: ["http://localhost:9200"]
server.port:kibana埠,默認為5601,
elasticsearch.hosts:Elasticsearch服務地址,默認為http://localhost:9200,
server.host:要允許遠程用戶連接到Kibana,需要將該引數設定為一個非環回地址,
通過ifconfig命令查看該地址:

啟動Kibana
1.首先啟動Elasticsearch,
2.啟動Kibana,使用root用戶和非root用戶啟動Kibana有點區別,
使用root用戶啟動:
kibana默認不允許使用root用戶啟動,使用root用戶啟動需要啟動時指定--allow-root,
/opt/kibana-7.12.1-linux-x86_64/bin/kibana --allow-root
使用非root用戶啟動:
如使用es用戶啟動,首先保證kibana目錄擁有者為es用戶,否則需要設定kibana目錄擁有者為es用戶,
chown -R es:es kibana-7.12.1-linux-x86_64
然后在切換到es用戶啟動
/opt/kibana-7.12.1-linux-x86_64/bin/kibana
Kibana啟動成功后,瀏覽器訪問http://localhost:5601/顯示如下界面則表示啟動成功:

Kibana使用
成功啟動Kibana后,可以使用Kibana的Dev Tools進行Elasticsearch的REST API呼叫:

如查詢Elasticsearch中的索引資訊:

后續REST API的呼叫都將采用這種方式,
索引操作
接下來以user索引為例,簡單介紹下索引的基本操作,
創建索引
請求:
PUT /user
回應:
{
"acknowledged" : true,
"shards_acknowledged" : true,
"index" : "user"
}
acknowledged:回應結果,
shards_acknowledged:分片結果,
index:索引名稱,
索引名稱需要滿足以下條件
-
必須小寫,
-
不能包含\、/、*、?、"、<、>、|、空格符、,、#、:,
-
不能以-、_、+開頭,
-
不能為.或..,
-
不能超過255位元組(注意是位元組不是字符),
創建具有特定設定的索引
創建具有指定分片數和復制分片數的索引:
PUT /user
{
"settings": {
"index": {
"number_of_shards": 3,
"number_of_replicas": 2
}
}
}
創建索引并顯示指定映射資訊
顯示的指定欄位的資料型別:
PUT /user
{
"mappings": {
"properties": {
"age": { "type": "integer" },
"email": { "type": "keyword" },
"name": { "type": "text" }
}
}
}
資料型別可以參考官網:Field data types
查詢索引資訊
請求:
GET /user
回應:
{
"user" : {
"aliases" : { },
"mappings" : { },
"settings" : {
"index" : {
"routing" : {
"allocation" : {
"include" : {
"_tier_preference" : "data_content"
}
}
},
"number_of_shards" : "1",
"provided_name" : "user",
"creation_date" : "1622601754789",
"number_of_replicas" : "1",
"uuid" : "iz1nYZOlTSC94Ijry5YiPg",
"version" : {
"created" : "7120199"
}
}
}
}
}
user:索引名稱,
aliases:別名,
mappings:映射,
settings:設定,
creation_date:創建時間,
number_of_shards:主分片數量,
number_of_replicas:副分片數量,
uuid:索引唯一標識,
version:版本,
provided_name:索引名稱,
洗掉索引
請求:
DELETE /user
回應:
{
"acknowledged" : true
}
更多索引操作可以參考官網:Index APIs
檔案操作
創建檔案
請求:
POST /user/_doc/
{
"age":18,
"email":"asd.qq.com",
"name":"buhe"
}
回應:
{
"_index" : "user",
"_type" : "_doc",
"_id" : "Q2i2y3kB7sfcwRgV3OlC",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 0,
"_primary_term" : 1
}
_index:索引名稱,
_type:檔案型別,
_id:檔案的唯一標識,如果沒有指定則默認隨機生成,
_version:檔案版本,每次更新檔案時增加,
result:索引操作的結果(created/updated),
_shards:提供有關索引操作的復制程序的資訊,
_shards.total:表示索引操作應該在多少個分片副本(主分片和復制分片)上執行,
_shards.successful:表示索引操作成功的分片副本數,索引操作成功時,successful至少為1,
_shards.failed:表示索引操作失敗的分片副本數,
_seq_no:分配給檔案以進行索引操作的序列號,序列號用于確保檔案的舊版本不會覆寫新版本,
_primary_term:為索引操作分配給檔案的主要術語,
通過檔案id查詢檔案資料
請求:
GET /user/_doc/Q2i2y3kB7sfcwRgV3OlC
回應:
{
"_index" : "user",
"_type" : "_doc",
"_id" : "Q2i2y3kB7sfcwRgV3OlC",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"_source" : {
"age" : 18,
"email" : "asd.qq.com",
"name" : "buhe"
}
}
_source為JSON格式的檔案資料,
修改檔案
請求:
POST user/_update/Q2i2y3kB7sfcwRgV3OlC
{
"doc":{
"age" : 38
}
}
回應:
{
"_index" : "user",
"_type" : "_doc",
"_id" : "Q2i2y3kB7sfcwRgV3OlC",
"_version" : 5,
"result" : "updated",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 28,
"_primary_term" : 1
}
洗掉檔案
請求:
DELETE /user/_doc/Q2i2y3kB7sfcwRgV3OlC
回應:
{
"_index" : "user",
"_type" : "_doc",
"_id" : "Q2i2y3kB7sfcwRgV3OlC",
"_version" : 6,
"result" : "deleted",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 29,
"_primary_term" : 1
}
檔案的批量操作
可以使用Bulk API來完成檔案的批量操作,Bulk API的每一個命令占用兩行,每行都應該以\r\n結束,
第一行為元資料,第二行為有效載體,例如批量創建檔案如下:
POST /user/_bulk
{"create":{"_id":6}}
{"age":18,"email":"asd.qq.com","name":"buhe1"}
{"create":{"_id":7}}
{"age":18,"email":"asd.qq.com","name":"buhe2"}
{"create":{"_id":8}}
{"age":18,"email":"asd.qq.com","name":"buhe3"}
{"create":{"_id":9}}
{"age":18,"email":"asd.qq.com","name":"buhe4"}
{"create":{"_id":10}}
{"age":18,"email":"asd.qq.com","name":"buhe5"}
Bulk API不是原子操作,對應每個命令都會有一個執行結果,即使某個命令執行失敗也不會影響其他命令的執行,回應:
{
"took" : 14,
"errors" : false,
"items" : [
{
"create" : {
"_index" : "user",
"_type" : "_doc",
"_id" : "6",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 37,
"_primary_term" : 2,
"status" : 201
}
},
其他省略......
}
]
}
更多檔案操作可以參考官網:Document APIs
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/288419.html
標籤:Java
