1. 程式人生 > >elasticsearch 集群部署

elasticsearch 集群部署

sans onf ice CA ini rest -a size sco

Elasticsearch是一個分布式搜索服務,提供Restful API,底層基於Lucene,采用多shard的方式保證數據安全,並且提供自動resharding的功能,github等大型的站點也都采用Elasticsearch作為其搜索服務。廢話在此就不多贅述了,下面記錄下CentOS7Elasticsearch集群部署過程:

1)基礎信息

elk-es01.kevin.cn 192.168.10.44

elk-es02.kevin.cn 192.168.10.45

elk-es03.kevin.cn 192.168.10.46

下面操作在三個節點機上都要操作

[root@elk-es01 ~]# systemctl stop firewalld.service

[root@elk-es01 ~]# systemctl disable firewalld.service

[root@elk-es01 ~]# firewall-cmd --state

not running

[root@elk-es01 ~]# setenforce 0

setenforce: SELinux is disabled

[root@elk-es01 ~]# getenforce

Disabled

[root@elk-es01 ~]# vim /etc/sysconfig/selinux

......

SELINUX=disabled

[root@elk-es01 ~]# cat /etc/hosts

.....

192.168.10.44 elk-es01.kevin.cn

192.168.10.45 elk-es02.kevin.cn

192.168.10.46 elk-es03.kevin.cn

[root@elk-es01 ~]# /usr/sbin/ntpdate ntp1.aliyun.com

2)安裝java8環境,官方建議5.4版本最至少Java 8或以上(三個節點機都要操作)

解壓文件到/opt/

jdk-8u121-linux-x64.tar.gz

配置環境變量

#vim /etc/profile

#**************DMP JAVA ENV********************

export JAVA_HOME=/opt/jdk1.8.0_121

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

3)安裝elasticsearch(三個節點機都要操作)

創建用戶,用戶組

#groupadd es

#useradd es –g es –p 123456

#chown –R es:es /opt/els-node1

#chown –R es:es /opt/els-node2

#chown –R es:es /opt/els-node3

創建數據目錄和日誌目錄

#mkdir -p /opt/els-data/{data1,log1}

#mkdir -p /opt/els-data/{data2,log2}

#mkdir -p /opt/els-data/{data3,log3}

#chown -R es:es /opt/els-node*

優化系統

1,

# cd /etc [root@localhost etc]

# cp sysctl.conf sysctl.conf.bak

# vim sysctl.conf

# elasticsearch config start

vm.max_map_count=262144

# elasticsearch config end

#sysctl -p

2,

# cd /etc/security/

cp limits.conf limits.conf.bak

然後編輯limits.conf增加如下配置:

# elasticsearch config start

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

# elasticsearch config end

下載安裝包

#wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.zip

配置els

Node-1

node.name: node-1

path.data: /opt/els-data/data1

path.logs: /opt/els-data/logs1

network.host: 192.168.15.143

transport.tcp.port: 9301

http.port: 9201

discovery.zen.ping.unicast.hosts: ["192.168.15.143:9301", "192.168.15.143:9302", "192.168.15.143:9303"]

http.cors.enabled: true

http.cors.allow-origin: "*"

Node-2

node.name: node-2

path.data: /opt/els-data/data2

path.logs: /opt/els-data/logs2

network.host: 192.168.15.143

transport.tcp.port: 9302

http.port: 9202

discovery.zen.ping.unicast.hosts: ["192.168.15.143:9301", "192.168.15.143:9302", "192.168.15.143:9303"]

http.cors.enabled: true

http.cors.allow-origin: "*"

Node-3

node.name: node-3

path.data: /opt/els-data/data3

path.logs: /opt/els-data/logs3

network.host: 192.168.15.143

transport.tcp.port: 9303

http.port: 9203

discovery.zen.ping.unicast.hosts: ["192.168.15.143:9301", "192.168.15.143:9302", "192.168.15.143:9303"]

http.cors.enabled: true

http.cors.allow-origin: "*"

啟動服務

./bin/elasticsearch -d

測試:

curl "192.168.15.143:9203"

{

"name" : "node-3",

"cluster_name" : "elasticsearch",

"cluster_uuid" : "5HJLIt_5Ra26HHs4vNRQuA",

"version" : {

"number" : "6.3.0",

"build_flavor" : "default",

"build_type" : "zip",

"build_hash" : "424e937",

"build_date" : "2018-06-11T23:38:03.357887Z",

"build_snapshot" : false,

"lucene_version" : "7.3.1",

"minimum_wire_compatibility_version" : "5.6.0",

"minimum_index_compatibility_version" : "5.0.0"

},

"tagline" : "You Know, for Search"

}


elasticsearch 集群部署