ElasticSearch 集羣安裝node
1、ElasticSearchbootstrap
關於ElasticSearch(後續簡稱es)的介紹這裏就多說了,單機版的安裝於配置能夠參考《elasticsearch安裝及配置》,其實集羣版和單機安裝區別不大,只是多一些配置以及須要注意的地方,集羣版也能夠單個節點啓動運行。vim
ElasticSearch 官網:https://www.elastic.co/products/elasticsearchcentos
2、ElasticSearch安裝安全
1.環境介紹:cors
Elasticsearch:5.5.2版本curl
操做系統:Centos 6.5elasticsearch
JDK: 1.8tcp
集羣節點3臺:192.168.252.129;192.168.252.130;192.168.252.131工具
這裏es是依賴jdk的須要安裝jdk,這裏咱們使用的es 5.5.2版本,依賴的jdk必須是1.8及以上。因爲公司環境是CentOS 6.5 環境,咱們採用CentOS 6.5的環境安裝es集羣,這裏須要注意CentOS6.5 6.5版本安裝es 5.x,須要修改es 的核心配置文件,具體配置見後文。
各安裝包建議從官網上下,後續有時間會補上筆者的安裝包百度雲盤路徑。
2.ES集羣安裝
Es的集羣安裝,能夠先配置一臺節點,而後複製es文件到其餘節點,再分別修改各節點配置,或者能夠選擇一些批量處理工具等。下面就選擇一臺節點進行安裝配置。
1.官網下載安裝包
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.0.tar.gz
2.解壓安裝
tar -xvf elasticsearch-5.5.2.tar.gz -C /usr/local
3. 修改系統相關配置
1. 設置內核參數
vim /etc/sysctl.conf
添加以下內容:
fs.file-max=65536
vm.max_map_count=262144
以後可使用sysctl –a查看 –p刷新
2. 設置資源參數
vim /etc/security/limits.conf
添加以下內容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
3. 修改進程數 (7.x是修改20-nproc.conf文件)
vim /etc/security/limits.d/90-nproc.conf
修改( * soft nproc )的值爲2048
4.修改ES集羣配置文件:%ES%/config/elasticsearch.yml
# ======================== Elasticsearch Configuration =========================
# 配置項value 前須要加空格 如:cluster.name: amala_es
# ---------------------------------- Cluster -----------------------------------
# 配置es的集羣名稱, es會自動發如今同一網段下的es,若是在同一網段下有多個集羣,就能夠用這個屬性來區分不一樣的集羣
cluster.name: amala_es
# ------------------------------------ Node ------------------------------------
# 節點名稱
node.name: node_1
#指定該節點是否有資格被選舉成爲master
node.master: true
#指定該節點是否存儲索引數據,默認爲true
node.data: true
#設置集羣中master節點的初始列表,能夠經過這些節點來自動發現新加入集羣的節點。
discovery.zen.ping.unicast.hosts: ["192.168.252.129","192.168.252.130","192.168.252.131"]
# ---------------------------------- Network -----------------------------------
# 設置綁定的ip地址還有其它節點和該節點交互的ip地址
network.host: 192.168.252.130
# 指定http端口,你使用head kopf等相關插件使用的端口
http.port: 9200
#設置節點間交互的tcp端口,默認是9300。
transport.tcp.port: 9300
#若是要使用head,那麼須要增長新的參數,使head插件能夠訪問es
http.cors.enabled: true
http.cors.allow-origin: "*"
# centos 6.5 版本中,啓動時報錯:system call filters failed to install;
# check the logs and fix your configuration or disable system call filters at your own risk
# 添加該配置項
bootstrap.system_call_filter: false
其餘節點安上述配置,不一樣節點,保證node.name、network.host配置項不能相同。
5.啓動服務
建議集羣首次啓動前先清空es 中data文件夾下的文件,啓動前關閉防火牆。
Es的高版本中,已經不容許使用root用戶來啓動了(由於es會接收執行語句,出於安全),這裏須要爲es建立普通用戶,並設置es文件夾歸屬爲es普通用戶,再經過es普通用戶啓動es。具體步驟以下:
#使用root用戶建立es普通用戶
useradd es
#設置elasticsearch文件夾的歸屬
chown -R es /usr/local/elasticsearch
#切換爲es用戶
su es
#切換目錄到es的bin目錄下
cd /usr/local/elasticsearch/bin
#當前窗口啓動es服務 或者加 -d 參數後臺啓動
./elasticsearch
6.檢查啓動
執行:curl 'http://localhost:9200/?pretty' 出現相似以下內容,則說明啓動成功。
注意事項:
1.出現以下報錯,說明Centos版本低,而出現的報警。解決辦法:能夠選用高版本的CentOS(7.x),或者在es核心配置文件中添加bootstrap.system_call_filter: false,關閉檢測。
2.出現以下報錯,說明es核心配置文件中,配置項值得格式不符合yml格式,具體要求,配置項值前須要空格,配置項後不要留空格,符號使用英文輸入法格式。解決辦法:詳細檢查該配置文件,修改不符合的格式。
3.出現以下報錯,說明啓動的時候使用root用戶啓動。解決辦法:使用普通用戶啓動es。
4.出現以下報錯,說明啓動時es的data目錄下留有其餘配置是啓動留下的文件,與當前配置衝突。該錯誤通常出如今複製虛擬機或者複製es目錄時產生。解決辦法:刪除data下的所有文件(將會刪除數據,自行選擇);覈對各節點配置文件中的node.name、network.host配置項是否有重名衝突。
[2017-08-30T15:17:40,016][INFO ][o.e.d.z.ZenDiscovery ] [pros-node-2] failed to send join request to master [{pros-node-1}{Dhq0h4IHS6GF4MgFwc1Vhw}{w8mXRXG6S6qvSnjHGqrYwQ}{10.45.32.90}{10.45.32.90:10800}], reason [RemoteTransportException[[pros-node-1][10.45.32.90:10800][internal:discovery/zen/join]]; nested: IllegalArgumentException[can't add node {pros-node-2} {Dhq0h4IHS6GF4MgFwc1Vhw}{EttroN0-StienfP37gyLag} {10.45.32.30}{10.45.32.30:10800}, found existing node {pros-node-1}{Dhq0h4IHS6GF4MgFwc1Vhw}{w8mXRXG6S6qvSnjHGqrYwQ}{10.45.32.90}{10.45.32.90:10800} with the same id but is a different node instance]; ]