##############es集羣################html
1 ES基礎能夠參考java
https://blog.csdn.net/yezonggang/article/details/80064394node
https://blog.csdn.net/column/details/deep-elasticsearch.htmllinux
2 關閉防火牆github
systemctl stop firewalldweb
systemctl disable firewalldsql
setenforce 0npm
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/configbootstrap
3 設置yum源
這裏添加阿里源
cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/repo/Centos-7.repo
wget https://mirrors.aliyun.com/repo/epel-7.repo
4 修改系統參數
vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 655350
* soft nproc 65535
* hard nproc 655350
* soft memlock unlimited
* hard memlock unlimited
上面的* 也能夠換成指定用戶
5 設置es用戶內存權限大小
sysctl -w vm.max_map_count=262144
echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
##echo 'vm.swappiness=0'>> /etc/sysctl.conf 禁用減小用swap
注:爲何要儘量避免使用swap? # cat /proc/sys/vm/swappiness,值默認值是60, swappiness=0的時候表示最大限度使用物理內存,而後纔是 swap空間,swappiness=100的時候表示積極的使用swap分區,而且把內存上的數據及時的搬運到swap空間裏面。如今服務器的內存動不動就是上百G,或者雲主機架構,機器io太慢會極大的影響機器性能,因此咱們能夠把這個參數值設置的低一些,讓操做系統儘量的使用物理內存,下降系統對swap的使用,從而提升系統的性能。另:在大內存服務器中咱們須要設置這個值爲0,尤爲是在Mysql服務器上
——————————————上面的環境配置三節點都要操做————————————————-
6 配置java環境 (三個節點都操做)
使用yum安裝
yum install java-1.8.0-openjdk*
openjdk version "1.8.0_181"
也能夠用tar包安裝
下載1.8版本
tar zxf jdk-8u181-linux-x64.tar.gz -C /usr/local/jdk/
添加環境變量
vim /etc/profile
#JAVA Environment
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_181
export JRE_HOME=/usr/local/jdk/jdk1.8.0_181/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JRE_HOME/lib
7 安裝elasticsearch (三個節點都操做)
建立安裝目錄
mkdir -p /opt/els
cd /opt/els/
下載elasticsearch-5.6.4.tar.gz到els目錄
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.4.tar.gz
tar zxf elasticsearch-5.6.4.tar.gz
cd elasticsearch-5.6.4/
ls
bin config data es.log lib logs modules plugins script
8 修改配置 (三個節點都操做)
建立數據和日誌目錄
mkdir -p /opt/els/esdata
mkdir -p /opt/els/eslog
修改es配置文件elasticsearch.yml
cd /opt/els/elasticsearch-5.6.4/config/
備份原文件
cp elasticsearch.yml elasticsearch.yml.bak
vim elasticsearch.yml (三個節點配置中只有node.name的配置不一樣,其餘配置保持一致)
-----------------------------------------------------------------------------------
cluster.name: es-test
node.name: es135
path.data: /opt/els/esdata
path.logs: /opt/els/eslog
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: [「192.168.1.135」,」192.168.1.134」,」192.168.1.133」]
discovery.zen.minimum_master_nodes: 3
#gateway.recover_after_nodes: 3
#action.destructive_requires_name: true
http.cors.enabled: true
http.cors.allow-origin: "*"
-----------------------------------------------------------------------------------
解釋說明:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false訪問方面配置
cluster.name 集羣名字,同一個集羣中使用相同名字,單機就隨意
node.name: es135 節點名字
node.master: 是否爲集羣的master機器
node.data: true 是否做爲數據節點
network.host: 192.168.0.135 這個不用天然是配置ip地址的
http.port: 9200 端口號,不配置的話默認9200
discovery.zen.ping.unicast.hosts: [「192.168.1.135」,」192.168.1.134」,」192.168.1.133」] 這個就是配置集羣的時候要用的到了,[]中填上集羣中其餘集羣的ip的地址,若是是master的話請把全部salve的機器地址填上
discovery.zen.minimum_master_nodes: 3 機器節點數
http.cors.enabled: true 這個參數的設置和下面一個配置是關於ip的訪問策略,若是發現其餘ip地址訪問不了就有多是這參數沒有配置
http.cors.allow-origin: 「*」
下面修改jvm.options配置,能夠調整大一些,好比4g
vim jvm.options
-Xms2g ##配置ES服務最小JVM
-Xmx2g ##配置ES服務最大JVM
9 啓動elasticsearch (三個節點都操做)
ES只能用普通用戶啓動
建立els用戶
useradd els
chown -R els.els /opt/
su – els
cd /opt/els/elasticsearch-5.6.4/
./bin/elasticsearch -d
netstat -lnupt|grep java
tcp6 0 0 :::9200 :::* LISTEN 5404/java
tcp6 0 0 :::9300 :::* LISTEN 5404/java
10 瀏覽器訪問192.168.1.135:9200 出現以下正常反饋信息
{
"name" : "es135",
"cluster_name" : "es-test",
"cluster_uuid" : "0JExw5NuSjCspci1aTQL-w",
"version" : {
"number" : "5.6.4",
"build_hash" : "8bbedf5",
"build_date" : "2017-10-31T18:55:38.105Z",
"build_snapshot" : false,
"lucene_version" : "6.6.1"
},
"tagline" : "You Know, for Search"
}
11 安裝elasticsearch_head (web界面) (選擇一個機器操做)
若是機器不能連網,能夠在其餘機器上把安裝編譯好的elasticsearch-head-master包拷貝過來代替,安裝上node環境就能夠啓動head了。
cd /opt/els/
wget https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip master.zip
yum install –y nodejs
node -v
v6.14.3
npm -v
3.10.10
cd /opt/els/elasticsearch-head-master
yum install -y bzip2 安裝bzip2
npm install 須要安裝等待一下子
vim Gruntfile.js #增長監聽地址host,部分版本能夠選擇不增長host配置一樣能夠啓動。
connect: {
server: {
options: {
host: '192.168.1.135',
port: 9100,
base: '.',
keepalive: true
}
}
}
chown els.els -R /opt/
cd /opt/els/elasticsearch-head-master
sudo -u els ./node_modules/.bin/grunt server &
而後重啓ES
kill掉進程
cd /opt/els/elasticsearch-5.6.4/bin
# sudo -u els ./elasticsearch –d
12 啓動head服務,重啓ES
而後瀏覽器打開192.168.1.135:9100
修改localhost 爲192.168.1.135 而後點鏈接就能夠查看到三節點的集羣了