ES(六)| ES集群搭建、使用cerebro来监控ES集群状态
上一篇:ES(五)| 集群搭建、集群脑裂问题、分布式存储和查询、集群故障转移
部署es集群
我们会在单机上利用docker
容器运行多个es实例来模拟es集群。不过生产环境推荐大家每一台服务节点仅部署一个es
的实例。
部署es集群可以直接使用docker-compose
来完成,但这要求你的Linux虚拟机至少有4G的内存空间
1.创建es集群
首先编写一个docker-compose.yml
文件,放入虚拟机的/root
目录下,内容如下:
version: '2.2'
services:
es01:
image: elasticsearch:7.12.1 # 指定ES镜像版本
container_name: es01 # 容器名称
environment: # 环境变量
- node.name=es01 # 节点名称
- cluster.name=es-docker-cluster # 集群名称,只需要集群名称一样,ES会自动把各个节点自动组装成集群
- discovery.seed_hosts=es02,es03 # 集群中另外节点的IP地址,这里用的docker容器,容器内互联可直接通过容器互联
- cluster.initial_master_nodes=es01,es02,es03 # 初始化的主节点,选举得到
- "ES_JAVA_OPTS=-Xms512m -Xmx512m" # 配置JVM堆内存的最大内存和最小内存
volumes: # 数据卷
- data01:/usr/share/elasticsearch/data
ports: # 端口映射
- 9200:9200
networks:
- elastic
es02:
image: elasticsearch:7.12.1
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- data02:/usr/share/elasticsearch/data
ports:
- 9201:9200
networks:
- elastic
es03:
image: elasticsearch:7.12.1
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- data03:/usr/share/elasticsearch/data
networks:
- elastic
ports:
- 9202:9200
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
es
运行需要修改一些linux
系统权限,修改/etc/sysctl.conf
文件
vi /etc/sysctl.conf
添加下面的内容:
vm.max_map_count=262144
然后执行命令,让配置生效:
sysctl -p
在/root
目录下,通过docker-compose
命令启动集群:
docker-compose up -d
2.集群状态监控
kibana
可以监控es
集群,不过新版本需要依赖es
的x-pack
功能,配置比较复杂。
这里推荐使用cerebro
来监控es
集群状态,官方网址:https://github.com/lmenezes/cerebro
安装包:
- 链接:https://pan.baidu.com/s/1tC4SNhkNrD_V1ZXcH_iN6Q
- 提取码:0mea
解压即可使用,非常方便。
解压好的目录如下:
进入对应的bin
目录:
双击其中的cerebro.bat
文件即可启动服务。
访问http://localhost:9000即可进入管理界面:
输入你的elasticsearch
的任意节点的地址和端口,点击connect
即可:
绿色的条,代表集群处于绿色(健康状态)。
3.创建索引库(两种方式)
1)利用kibana的DevTools创建索引库
在DevTools
中输入指令:
PUT /huangtu1234
{
"settings": {
"number_of_shards": 3, // 分片数量
"number_of_replicas": 1 // 副本数量
},
"mappings": {
"properties": {
// mapping映射定义 ...
}
}
}
2)利用cerebro创建索引库
利用cerebro
还可以创建索引库:
填写索引库信息,点击右下角的create
按钮:
4.查看分片效果
回到首页,即可查看索引库分片效果:
欢迎关注公众号:慌途L
后面会慢慢将文章迁移至公众号,也是方便在没有电脑的情况下可以进行翻阅,更新的话会两边同时更新,大家不用担心!