您的位置:首页 > 运维架构

Elasticsearch集群管理、优化以及监控

2017-02-16 20:56 381 查看

ES集群管理

角色分配

①设置某台机器只做主节点,不做索引和shard,负责cluster内部的协调,数据的读取由集群的各个节点,共同完成的,但是数据的修改只有在master上完成。

node.master:true

node.data:false

②设置某台机器做索引和shard,不做主节点

node.master:false

node.data:true

③只做负载均衡器

node.master:false

node.data:fasle

(确定一个节点为master,其他的应该反着设置)

路径保存

①配置文件保存路径(this file and logging.yml)

path.conf:/path/

②这个节点的索引数据文件的存放路径

path.data:/path/to/data

path.data:/path/to/data1,/path/to/data2

插件设置

如果某个节点下面参数后的插件没有安装,将不会成功启动,保持默认值即可plugin mandatory

Recover设置

恢复过程需要等到集群中5个节点启动

gateway.recover_after_nodes:5

上述参数个数的集群节点启动成功后5分钟,开始恢复过程gateway.recover_after_time:5m

优先级高于上面,集群中的节点数成功启动5个后,即刻开始数据恢复gateway.expected_nodes:5

ES集群优化

软件层面

索引

分词器*

设置要合理,否则会使得索引变得相当庞大

Segment数量**

1.删除不用的索引

2.关闭索引 (文件仍然存在于磁盘,只是释放掉内存)。需要的时候可以重新打开。

3.定期对不再更新的索引做optimize (ES2.0以后更改为force merge api)。这Optimze的实质是对segment file强制做合并,可以节省大量的segment memory。



PS:wait_for_merge

参数,比较耗性能,一般保持默认值:false

分片数量

多:会导致交互多*

少:会导致分片大**

策略:冷热分离,依据时间戳建索引,先定一个小目标:30GB,到30GB后,可以再新建一个索引,将之前的保存至Hdfs上,一来可以备份,二来可以实现冷(hdfs)热(ES集群)分离的效果。

副本数量*

副本太多,性能会下降,通常副本数量设置为1即可。

(也可以设置为0,但前提是基于数据的重要程度以及是否有其他的备份机制)

系统层面

Linux,Centos,测试最大文件打开数。

ulimit -a



修改linux系统文件最大打开数

临时生效

ulimit -SHn 65535

:修改当前系统,文件最大打开数为65535

永久生效

vim /etc/security/limits.conf

末尾添加:* - nofile 65535

保存文件后重启即可

Linux(Centos )的网络内核参数优化来提高服务器并发处理能力

物理层面

内存:单实例分配32G(多了无济于事,内存锁定,给OS预留)**

硬盘:尽量大,Raid10,SSD**

CPU:配置尽量高*

网络:千兆,最好万兆*

(*代表重要程度,数量越多越重要)

ES集群监控

免费:Head &Bigdesk

收费:mavel(天上不掉馅饼)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息