上一篇讲了如何安装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