ELK 中的elasticsearch 集群的部署
2017-05-27 15:39
411 查看
本文内容
背景ES集群中第一个master节点
ES slave节点
本文总结 Elasticsearch(以下简称ES)搭建集群的经验。以 Elasticsearch-rtf-2.2.1 版本为例。
我搭过三个集群:研究ELK时搭了一个;测试环境搭了一个;生产环境搭了一个。回想起来,搭建这三个集群时遇到的问题都不一样(我这么说,主要针对集群中节点发现,以及master问题,而不是es启动不起来或报错等问题)~
研究ELK时,搭建ES集群倒是很顺利,原因很简单,先从一台机器开始的;
可是测试环境搭建集群时,遭遇新加入节点一直不能发现 master 节点,或是集群节点出现都选举自己为 master 这两个情况,因为,节点都是陆续启动的,配置不当,是会出问题;
等到在生产环境搭建集群时,遭遇无法选举出 master 节点的情况。ES head 和 kopf 两个插件都不可用,因为,既然集群没有选举出 master 节点,显然,整个集群是用不了的。而前面的情况,head 和 kopf 插件还是能用的,但能用,意义也不大~
总结起来,搭建集群,应该注意两个问题。首先,当然是 Elasticsearch.yml 配置是否正确;再就是你的操作方式。比如节点启动步骤等。
因为,如果搭建一个集群,那么必须保证集群有一个 master 节点,一般来说,第一个启动的节点,一定是 master。然后,分别启动其他节点,这些节点就会找到 master 节点,而 master 节点,也会发现这些节点。
因此,配置集群中的第一个master节点,务必简单(简单到什么程度,后面再说),先启动它,它会立刻成为 master 节点。之后,再配置其他节点,最好直接告诉它们,可能的 master 节点是什么,然后启动他们,它们就会发现 master,而 master 节点,也会发现新加入的节点。
否则,如果第一个启动的节点,配置过于复杂(条件苛刻),造成它不能成为 master 节点,那么,整个集群会失败。
稍后,你再配置节点时,可以采用更高级、复杂点的配置,就不会有什么问题了~
所以,我才强调,ES 集群中第一个 master 节点的配置务必简单,以后再调整。
背景
假设,我们想搭建这样一个名为 myfirstcluster 的ES集群,它有两个节点:节点 | 主机名 | 是否为 master |
192.168.1.2 | es-01 | 是 |
192.168.1.3 | es-02 | 否 |
ES集群中第一个master节点
最简单的 ES master 节点配置如下。该配置文件,是一个完整的 ES 配置文件,所以很长。我顺便翻译成了中文。1: # ======================== Elasticsearch Configuration ========================= [code]
http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html>
http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-gateway.html>
[/code]
说明:
第15行,指定集群名称 myfirstcluster;
第21行,指定节点名称,最好写主机名;
第22和23行,指定该是否可能为master节点,以及是否为数据节点。ES的所说master节点,其实弱化了很多,仅仅就是为了节点发现和选举master节点而已,它甚至都可以不用来保存数据。
因此,看你的规划,完全可以让一个 master 节点,不保存任何数据;
第54行,指定节点IP地址,192.168.1.2;
第57行,指定HTTP端口,比如,head、kopf插件等插件,都使用该端口。事实上,你可以指定从 92开头的任何端口;
第59行,指定集群内部通信的端口,比如,节点发现都使用该端口。事实上,你可以指定93开头的任何端口,该行也可以写成“transport.tcp.port: 9300”;
这7行配置,在我看来,针对集群中第一个master节点,必须配置正确的。其他配置,可以暂时不用。
其中,第57行和第59行,实际上,一台物理机,是可以运行多个 ES,只需要指定不同的配置文件即可。
第69行,指定节点初始化列表,因为该节点是集群第一台机器,并且要当 master,所以写”127.0.0.1:9300”,端口号,就是你在第59行指定的端口。相关资料显示,也可以不指定端口,那是不是会93开头的所有端口扫描一下呢?;
从97行开始,是配置ES的分词。
slave 节点
Slave 节点配置如下。该配置文件内容只列出了配置项,但是是完整的。1: # ======================== Elasticsearch Configuration ========================= [code]
[/code]
说明:
第7行,也是指定了集群名称;
第13行,指定了节点名称为 es-02(主机名)
第14和15行,指定了该节点可能成为 master 节点,还可以是数据节点;
第35行,指定节点IP地址为 192.168.1.3;
第39行,指定http端口,你使用head、kopf等相关插件使用的端口;
第40行,集群内部通信端口,用于节点发现等;
上面的配置master也是这么配置的。
第47行,跟master节点配置不一样了。这里直接告诉该的节点,可能的master节点是什么。
文章摘自:http://www.cnblogs.com/liuning8023/p/5454696.html
相关文章推荐
- elasticsearch5.2集群部署
- ELK集群的搭建和Elasticsearchd api的简单使用
- ELK部署之ElasticSearch 安装
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(十) elasticsearch集群部署
- elasticsearch 2.4.6 集群+kibana 4.6安装部署学习记录
- Elasticsearch集群搭建1Welcome to my ELK world!
- centos7 部署Elasticsearch单机/集群并安装head插件实现ES集群的可视化管理
- elasticsearch 单机部署,脱离集群
- 部署 elk 日志系统 elasticsearch、logstash、 kibana
- elasticsearch集群部署
- Elasticsearch单机双节点集群部署实战
- elasticsearch5.2集群部署
- ELK 性能(2) — 如何在大业务量下保持 Elasticsearch 集群的稳定
- elasticsearch6.2.3安装以及单机集群部署
- elasticsearch集群部署
- elasticsearch集群部署
- ELK集群部署实例(转)
- Elasticsearch2.4学习(二)------Elasticsearch2.4.1集群部署及elasticsearch.yml配置
- Elasticsearch集群部署
- elasticsearch之集群部署