需搭建服务器环境
操作系统 |
Host:port |
node |
|
1 |
CentOS 7.2.1511 |
11.1.11.127:9200 |
node1 |
2 |
CentOS 7.2.1511 |
11.1.11.128:9200 |
node2 |
3 |
CentOS 7.2.1511 |
11.1.11.129:9200 |
node3 |
Elasticsearch运行需要创建es用户
1 创建 elasticsearch 用户组
[root@localhost ~]# groupadd elasticsearch
2 创建用户 es 并设置密码为es
[root@localhost~]# useradd es
[root@localhost~]# passwd es
3 用户es 添加到 elasticsearch 用户组
[root@localhost ~]# usermod -G elasticsearch es
4 设置sudo权限
[root@localhost~]# visudo
#在root ALL=(ALL) ALL 一行下面
es ALL=(ALL) ALL
#添加es用户 如下:
es ALL=(ALL) ALL
#切换成es用户
[root@localhost~]# su es
安装Elasticsearch
针对三台服务器首先先进行Elasticsearch应用的安装,这里我们选择解压版的Elasticsearch,集群通过修改Elasticsearch的elasticsearch.yml配置文件可自动发现并加入集群。
5 下载elasticsearch安装包
[es@localhost root]$ cd /usr/local/
[es@localhost local]$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.1.tar.gz
[es@localhost local]$ tar -xvf elasticsearch-6.0.1.tar.gz
6 更改elasticsearch-6.0.1 文件夹以及内部文件的所属用户为es, 用户组组为elasticsearch,-R表示逐级
[es@localhost local]$ sudo chown -R es:elasticsearch elasticsearch-6.0.1
ElasticSearch 配置
[es@localhost elasticsearch-6.0.1]$ vim config/elasticsearch.yml
#搭建集群修改如下属性
cluster.name: my-application #集群名,同一集群下多个服务共享一个cluster.name
node.name: node-1 #节点名,同一集群下每个服务的name,唯一
node.master: true #是否为主节点,建议为true
node.data: true #是否为数据节点,建议为true
path.data: /path/to/data #数据存储目录,默认
path.logs: /path/to/logs #log存储目录,默认
network.host: 11.1.11.127 #本机ip
http.port: 9200 #默认端口
discovery.zen.ping.unicast.hosts: ["11.1.11.128", "11.1.11.129"] #设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。
discovery.zen.minimum_master_nodes: 2 # (集群总节点数量/2)+1
针对基础的集群搭建上述配置修改即可
关于elasticsearch.yml的详细配置可以参考https://www.cnblogs.com/liuchuanfeng/articles/7059268.html
#新建data和log数据存储目录
mkdir -pv /path/to/{data,logs}
chown -R elasticsearch es /path/to
#修改sysctl.conf
vim /etc/sysctl.conf
#在配置文件最后面添加如下内容
vm.max_map_count=655360
#刷新sysctl.conf
sysctl -p
#修改文件/etc/security/limits.conf
vim /etc/security/limits.conf
#添加
* hard nofile 65536
* soft nofile 65536
* soft nproc 2048
* hard nproc 4096
同理可配置其他集群节点,只需改动其他节点服务器的elasticsearch.yml文件并修改如下属性:
node.name: node-2/node-3 #节点名,需唯一。
network.host: 11.1.11.128/11.1.11.129 #本机ip
http.port: 9200 #默认端口。如果集群节点不在同一台服务器上,不需要修改
discovery.zen.ping.unicast.hosts: ["11.1.11.127", "11.1.11.129"] / ["11.1.11.127", "11.1.11.128"] #可发现节点
ElasticSearch 集群启动
#切换es用户启动elasticsearch并且进入elasticsearch目录
su es && cd /usr/local/elasticsearch-6.0.1/bin/
#启动服务
./elasticsearch -d
#按如上步骤依次启动其他节点服务
#使用curl测试节点是否可以正常访问,集群节点是否加入
curl http://11.1.11.127:9200/_cat/nodes?v