2321212dd 发表于 2016-11-28 11:14:17

elasticsearch5.0集群部署及故障测试

本文主要介绍两节点集群部署,节点故障测试,模拟验证集群脑裂现象。
一、实验环境节点1:192.168.115.11节点1:192.168.115.12版本:5.0.1二、安装配置具体部署过程见单机版1.修改配置文件
1
2
3
4
5
6
7
8
9
10
cat elasticsearch.yml
cluster.name: hnrtest
node.name: hnr01
path.data: /data/elasticsearch5/data
path.logs: /data/elasticsearch5/logs
network.host: 192.168.115.11
discovery.zen.ping.unicast.hosts: ["192.168.115.11", "192.168.115.12"]
discovery.zen.minimum_master_nodes: 1   # 由于只部署两个节点,因此设置为1,否则当master宕机,将无法重新选取master
http.cors.enabled: true
http.cors.allow-origin: "*"




2.启动服务分别启动两台服务su - elasticsearch-c "/usr/local/elasticsearch/bin/elasticsearch &"三、验证1.通过head插件连接查看
日志信息,提示配置的discovery.zen.minimum_master_nodes太少了 added{{hnr02}{L-jKkvuDQOWw8G6aCF8lPQ}{kCIS2DSDQvS-msW_k8cXIw}{192.168.115.12}{192.168.115.12:9300},},reason: zen-disco-node-join[{hnr02}{L-jKkvuDQOWw8G6aCF8lPQ}{kCIS2DSDQvS-msW_k8cXIw}{192.168.115.12}{192.168.115.12:9300}] value for setting"discovery.zen.minimum_master_nodes" is too low. This can result indata loss! Please set it to at least a quorum of master-eligible nodes (currentvalue: , total number of master-eligible nodes used for publishing in thisround: ) Cluster health status changed from to (reason: ] ...]).
2.批量插入数据使用python脚本插入数据,提前安装模块pip3install elasticsearch
1
2
3
4
5
6
7
8
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from elasticsearch import Elasticsearch
from datetime import datetime
# 创建连接
es = Elasticsearch(hosts='192.168.115.11')
for i in range(1,1000):
    es.index(index='els_student', doc_type='test-type', id=i, body={"name": "student" + str(i), "age": (i % 100), "timestamp": datetime.now()})





四、故障测试1.关闭hnr01节点,此时hnr02提升为主节点
重新选举master日志 detected_master{hnr01}{dr7haiVXSc2Pz8V9lHUr1Q}{73M2VfECTi2wfJO6WYR5Dw}{192.168.115.11}{192.168.115.11:9300},added {{hnr01}{dr7haiVXSc2Pz8V9lHUr1Q}{73M2VfECTi2wfJO6WYR5Dw}{192.168.115.11}{192.168.115.11:9300},},reason: zen-disco-receive(from master ]) publish_address {192.168.115.12:9200}, bound_addresses {192.168.115.12:9200} started master_left[{hnr01}{dr7haiVXSc2Pz8V9lHUr1Q}{73M2VfECTi2wfJO6WYR5Dw}{192.168.115.11}{192.168.115.11:9300}],reason master left (reason = shut_down), current nodes:{{hnr02}{L-jKkvuDQOWw8G6aCF8lPQ}{kCIS2DSDQvS-msW_k8cXIw}{192.168.115.12}{192.168.115.12:9300},} removed{{hnr01}{dr7haiVXSc2Pz8V9lHUr1Q}{73M2VfECTi2wfJO6WYR5Dw}{192.168.115.11}{192.168.115.11:9300},},reason: master_failed ({hnr01}{dr7haiVXSc2Pz8V9lHUr1Q}{73M2VfECTi2wfJO6WYR5Dw}{192.168.115.11}{192.168.115.11:9300}) Cluster healthstatus changed from to (reason: ). new_master{hnr02}{L-jKkvuDQOWw8G6aCF8lPQ}{kCIS2DSDQvS-msW_k8cXIw}{192.168.115.12}{192.168.115.12:9300},reason: zen-disco-elected-as-master ( nodes joined) scheduling reroute for delayedshards in (15 delayed shards)2.重新启动hnr01节点
master上日志输出 added{{hnr01}{dr7haiVXSc2Pz8V9lHUr1Q}{6RHGfHU7RdC5hWVlgQg7WQ}{192.168.115.11}{192.168.115.11:9300},},reason: zen-disco-node-join[{hnr01}{dr7haiVXSc2Pz8V9lHUr1Q}{6RHGfHU7RdC5hWVlgQg7WQ}{192.168.115.11}{192.168.115.11:9300}] value for setting"discovery.zen.minimum_master_nodes" is too low. This can result indata loss! Please set it to at least a quorum of master-eligible nodes (currentvalue: , total number of master-eligible nodes used for publishing in thisround: ) Cluster healthstatus changed from to (reason: ] ...]).五、集群脑裂验证
1.集群无法正常通信在hnr02节点上防火墙添加一条规则iptables -A OUTPUT-s 192.168.115.12 -p tcp --dport 9300 -j DROP在hnr01节点上防火墙添加一条规则iptables -A OUTPUT-s 192.168.115.11 -p tcp --dport 9300 -j DROP经过180秒

2.往各自节点写入数据hnr01节点



3.恢复集群取消防火墙规则,集群无法恢复,重启hnr02节点,集群恢复正常,往hnr02节点上写入的数据与hnr01节点索引相同,这部分数据会丢失

暴走小骚年 发表于 2016-12-7 08:49:35

感谢分享啊
页: [1]
查看完整版本: elasticsearch5.0集群部署及故障测试