背景
这两天有开发向我反馈说elasticsearch有报错,嘿,我定睛一看,这不是进入只读状态了,看来是存储达到额度,我马上加个新的数据节点,平衡一下存储压力
报错信息:
1Elasticsearch Error {type:cluster_block_exception,reason:”blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];}
新建服务器,安装elasticsearch
为了和之前的服务器一样,我简单写一下我elasticsearch版本和服务器系统版本
软件 | 版本 |
---|---|
centos | 7.9 |
elasticsearch | 6.7.2 |
JDK | 1.8.61 |
内存 | 32G |
安装和配置elasticsearch
使用rpm 安装
1wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.2.rpm
1rpm --install elasticsearch-6.7.2.rpm
配置参数,进入/etc/elasticsearch
目录
修改配置vim elasticsearch.yml
1# ======================== Elasticsearch Configuration =========================
2
3cluster.name: cluster-prod-es # 集群名称
4
5node.name: node-x # 节点名称
6
7path.data: /var/lib/elasticsearch # 数据存储
8
9path.logs: /var/log/elasticsearch # 日志存储
10
11network.host: 192.168.0.170 # 主机IP地址
12
13http.port: 9200 # 端口号
14
15discovery.zen.ping.unicast.hosts: ["192.168.0.171", "192.168.0.172", "192.168.0.173"] # 集群节点
16
17discovery.zen.minimum_master_nodes: 2 #防止脑裂
修改配置vim jvm.options
1-Xms16g
2-Xmx16g
启动elasticsearch 服务
1systemctl start elasticsearch.service
等待数据节点自动调节
这里要等待一会儿数据节点自动调节,这个调节时间取决于你数据的大小,一般来说几个小时也好了,如果数据重要性不太高的话,和领导沟通一下,就别傻坐着等他迁移完,正常下班就行了。
关闭索引只读
对了,千万不要忘记关闭只读状态,虽然你新增了节点,但是当前的只读状态并没有关闭,所以要执行一下命令关闭只读状态
1curl -XPUT -H "Content-Type: application/json" http://192.168.0.170:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
或者你在head-elasticsearch上操作