kibana
一、安装
安装docker
docker命令安装与启动elasticsearch和kibana集成
docker pull nshou/elasticsearch-kibana
docker run -d -p 9200:9200 -p 9300:9300 -p 5601:5601 --name eskibana nshou/elasticsearch-kibana
进入容器修改kibana为中文
docker exec -it e4287ef6a10f /bin/bash
#容器中代码
cd /home/elasticsearch/kibana-7.12.1-linux-x86_64/config/
vim kibana.yml
#最后一行加上这个 i18n.locale: "zh-CN"
验证ES:
打开浏览器,输入IP:端口,比如我的:http://127.0.0.1:9200/
验证Kibana:
打开浏览器,输入Kibana的IP:端口,比如我的:http://127.0.0.1:5601/
ElasticSearch Head,它相当于是ES的图形化界面,这个更简单,它是一个浏览器的扩展程序,直接在chrome浏览器扩展程序里下载安装即可
二、基础使用
1、介绍
ES | MySql |
---|---|
字段 | 列 |
文档 | 一行数据 |
类型(已废弃) | 表 |
索引 | 数据库 |
分片
- 通过分片技术,咱们可以水平拆分数据量,同时它还支持跨碎片(可能在多个节点上)分布和并行操作,从而提高性能/吞吐量;
- ES可以完全自动管理分片的分配和文档的聚合来完成搜索请求,并且对用户完全透明;
- 主分片数在索引创建时指定,后续只能通过Reindex修改,但是较麻烦,一般不进行修改。
- 在创建索引时,只需要咱们定义所需的碎片数量就可以了,其实每个分片都可以看作是一个完全功能性和独立的索引,可以托管在集群中的任何节点上。
副本分片
- 当分片或者节点发生故障时提供高可用性。因此,需要注意的是,副本分片永远不会分配到复制它的原始或主分片所在的节点上;
- 可以提高扩展搜索量和吞吐量,因为ES允许在所有副本上并行执行搜索;
- 默认情况下,ES中的每个索引都分配5个主分片,并为每个主分片分配1个副本分片。主分片在创建索引时指定,不能修改,副本分片可以修改。
2、创建一个空索引(库)
如下代码,咱们创建了一个0副本2分片的ropledata索引,然后咱们可以在Elasticsearch Head里刷新一下,并查看索引的信息:
PUT /ropledata
{
"settings": {
"number_of_shards": "2",
"number_of_replicas": "0"
}
}
3、修改副本(库)
咱们如果对刚才创建的索引副本数量不满意,可以进行修改,注意:分片不允许修改。
PUT ropledata/_settings
{
"number_of_replicas" : "2"
}
4、删除索引(库)
当这个索引不想用了,可以进行删除,执行如下命令即可,执行成功后,刷新ElasticSearch Head可以看到刚才创建的ropledata索引消失了:
DELETE /ropledata
5、数据插入数据
插入数据的时候可以指定id,如果不指定的话,ES会自动帮我们生成。我们以指定id为例,如下代码是我们创建了一个101的文档,创建成功后,可以在Elasticsearch Head的数据浏览模块里看到这些数据,代码及演示如下:
//指定id
POST /ropledata/_doc/mydb1
{
"id":1,
"name":"渊哥",
"page":"www.baidu.com",
"say":"测试罢了"
}
6、局部更新
POST /ropledata/_update/mydb1
{
"doc":
{
"say":"奥力给"
}
}
这时候我们可以多次去执行上面的局部更新代码,会发现除了第一次执行,后续不管又执行了多少次,_version都不再变化!
7、查询数据
GET /ropledata/_doc/mydb1
8、删除数据
比如我们想把ropledata索引下的id为mydb1的文档删除,可以使用如下命令:
DELETE /ropledata/_doc/mydb1
查询或者删除时候用到的ID是创建文档时候指定或者ES自动生成的那个id,而不是文档里面的那个叫id 字段!文档里面的文档字段是可以没有id 的。