最终步骤
0.SRE配置物理机环境,准备SSD磁盘,同步docker镜像
1.在rolling上启动节点(检查是否正常启动,max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
如果出现此错误,则需要SRE改下ulimit参数。
2.如启动成功,则将 新加的 ip 加入 host 映射中 nodes.es.snowballfinance.com,之后在 kibana 上查看是否已经发现新增节点
kibana查看地址:esmonitor.snowballfinance.com/app/monitor…
3.检查是否开始自动分片,如 shard activity 中 未开始分片,则检查 cluster.routing.allocation.enable 设置,开启自动分配分片
-
查看分片状态
http://10.10.55.1:9200/_cluster/settings 查看cluster.routing.allocation.enable 设置,为all则开启自动分片,为none则需要重新设置 -
调整代码
curl -XPUT 10.10.55.1:9200``/_cluster/settings-d '{`` ``"transient": {`` ``"cluster.routing.allocation.enable": ``"all"`` ``}`` ``}'
4 等待分片完成,检查功能是否正常。
5 调整 discovery.zen.minimum_master_nodes 参数 (查看 http://10.10.55.1:9200/_cluster/settings
curl -XPUT ``10.10``.``55.1``:``9200``/_cluster/settings -d '{`` ``"persistent" : {`` ``"discovery.zen.minimum_master_nodes" : nodes/``2 + ``1`` ``}`` ``}' |
|---|
方案
1.es集群由5个节点暂时扩容至7个节点。
2.status修改主片数量,重新索引。
3.stock迁移,优先级提升,确保盘中股票搜索稳定。
4.产品优化,将综合搜索中的帖子搜索拆分。
步骤
-1. 提前规划好各节点的副本数
0. 打开帖子搜索降级开关,并 暂停 search-thread,停止写入,降低资源开销
1.elasticsearch.yml 部分重要内容
| name | value | 作用 |
|---|---|---|
| cluster.name | es-search-prod | |
| ``` | ||
| node.name | ||
| ``` | ${ES_NODE_NAME} | ```html |
| {ENV}_{LAST_IP}" //sep_200-101 |
| ```
path.logs
``` | /persist/ssd/logs | 扩容顺便可以修改一下日志路径 |
| discovery.zen.ping.unicast.hosts | ["[nodes.es.snowballfinance.com](http://nodes.es.snowballfinance.com/)"] | ```
主要是在ES节点启动的时候会寻找的主机列表。默认扫描9300到9305端口
```如果这里配置的是域名的话,会扫描该域名由DNS解析出来的所有IP地址。如果节点在其他的服务器上,需要配置该服务器的ip和端口号 |
| discovery.zen.minimum_master_nodes | (total number of nodes / 2 + 1) | 这个数据可以通过api进行调整。见附录1。 |
| gateway.recover_after_nodes | 4 | ```
当集群中多少台机器成功加入集群后开始恢复数据。建议集群节点的一半节点
``` |
| gateway.expected_nodes | 5 | |
* 附录1
```html
minimum_master_nodes配置数量为N/2+1。N为集群节点数。
-
修改方式
```PUT /_cluster/settings { "persistent" : { "discovery.zen.minimum_master_nodes" : 2 } }
```
2.SRE部分,负责环境搭建
a:自动环境搭建 sre 通过docker 镜像同步环境
b:手动环境搭建:将55.1的escopy中新增节点。
ssh ``10.10``.``55.1``tar -cvf es.gz es``rsync -avz --progress --bwlimit=``1000 es.gz ``10.10``.``25.7``::share``ssh 需要扩容的ip ( ``10.10``.``31.10 10.10``.``36.6 )``cd /data/deploy/``rsync -avz --progress ``10.10``.``25.7``::share/es.gz .``tar -zvf es.gz |
|---|
3.改配置文件
cd es/config/prod
vim elasticsearch.yaml
修改discovery.zen.minimum_master_nodes为(total number of nodes / 2 + 1)
修改discovery.zen.ping.unicast.hosts,需要判断新增的ip是否在["nodes.es.snowballfinance.com"]中
节点还没成功之前,先用["10.10.55.1:9300","10.10.55.2:9300","10.10.55.3:9300","10.10.55.4:9300","10.10.55.5:9300","ip:9300"]
启动:sh start_server.sh
4.kibana查看节点状态
http://#########/app/monitoring#/elasticsearch/nodes?_g=(cluster_uuid:TaZ5d1F6T_eTCzzF6u74jg)
或者http://ip:9200/_cluster/health?pretty
http://ip:9200/_cluster/health?level=indices
5.sre增加节点到rolling中。
0:SRE配置物理机环境,准备SSD磁盘,同步docker镜像
1:在rolling上启动节点(检查是否正常启动,max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
如果出现此错误,则需要SRE改下ulimit参数。
2:如启动成功,则将 新加的 ip 加入 host 映射中 nodes.es.snowballfinance.com,之后在 kibana 上查看是否已经发现新增节点
3:检查是否开始自动分片,如 shard activity 中 未开始分片,则检查 cluster.routing.allocation.enable 设置,开启自动分配分片
4:等待分片完成,检查功能是否正常。
5:调整 discovery.zen.minimum_master_nodes 参数