當前位置:
首頁 > 最新 > 離線環境快速搭建ElasticSearch集群

離線環境快速搭建ElasticSearch集群

ElasticSearch作為當下流行的一款全文檢索工具,其官方提供ELK日誌檢索方案被許多公司使用,只不過各個公司在做日誌收集流程的時候加入一些其他的軟體,比如使用Linux系統自帶的rsyslog轉發日誌,而不是使用Logstash侵入到各個伺服器,所以ElasticSearch集群的搭建就比較關鍵,本文將帶著大家來搭建一個三個節點的ElasticSearch集群環境。

準備工作

在安裝ElasticSearch的時候需要提前安裝好jdk環境,筆者集群使用的jdk版本是jdk8,伺服器配置:

操作系統CentOS7.2

內存16G

數量三台

ElasticSearch版本5.6

ElasticSearch安裝

安裝使用官網提供的rpm安裝包,對ElasticSearch進行離線安裝。

1、新建用戶elasticsearch,設置用戶密碼

為用戶添加sudo許可權,命令如下:

vi /etc/sudoers

在文件中添加如下內容

elasticsearch ALL=(ALL) ALL

設置用戶密碼

passwd elasticsearch(密碼可自行設定)

2、安裝elasticsearch的rpm安裝包

切換到elasticsearch用戶

su – elasticsearch

使用rpm包安裝elasticsearch

sudo rpm -ivh elast icsearch-5.6.0.rpm(需要注意安裝包的屬主)

3、設置ElasticSearch以系統服務的方式啟動

重新載入系統服務

sudo systemctl daemon-reload

將elasticsearch添加到系統服務

sudo chkconfig --add elasticsearch

elasticsearch啟動命令,此處我們先不用,修改完下面的參數後我們再用

sudo systemctl start elasticsearch.service

sudo systemctl stop elasticsearch.service

上面的步驟需要在集群其他節點伺服器執行一遍,不再重複。服務也可以設置為隨系統啟動,此處不做介紹。

Linux 系統參數修改

生產環境中ElasticSearch的啟動對系統參數以及ElasticSearch本身的配置都比較嚴格,所以ElasticSearch的啟動需要修改如下的系統參數(下面參數的修改請使用root用戶,並對集群中每台伺服器均做此操作)

1、修改limits.conf配置文件

vi /etc/security/limits.conf

將下面部分添加到配置文件中:

* soft nofile 65536

* hard nofile 131072

* soft noproc 2048

* hard noproc 4096

以上部分配置參數如果已經存在,請修改成上面的值,若不存在,直接添加,下面為新增內容:

#allow usr elasticsearch mlockall 備註行可以自行選擇是否添加

elasticsearch soft memlock unlimited

elasticsearch hard memlock unlimited

2、修改20-nproc.conf 配置文件

編輯配置文件

vi /etc/security/limits.d/20-nproc.conf

修改如下內容

* soft nproc 1024

修改為

* soft nproc 2048

註:如果文件中的配置大於2048,可以不修改

3、修改/etc/sysctl.conf配置文件

vi /etc/sysctl.conf

在文件中添加如下內容:

vm.max_map_count=262144

4、使配置生效

執行如下命令使配置生效

sysctl -p

控制會列印出來下面的信息,也就是我們在上一步配置文件中添加的內容

vm.max_map_count=262144

5、修改elasticsearch腳本文件中的JAVA_HOME變數

在elasticsearch安裝路徑的bin目錄下找到elasticsearch腳本文件(參考文件位置:/usr/share/elasticsearch/bin/elasticsearch),添加如下內容,在#!/bin/bash 行下面添加Java的環境變數,如不添加,啟動時會提示找不到Java

JAVA_HOME=/usr/java/jdk (根據實際jdk安裝路徑填寫)

6、配置elasticsearch為集群運行

rpm方式安裝的elasticsearch,文件路徑為:/etc/elasticsearch/elasticsearch.yml

#集群名稱

cluster.name : my-application

#節點名稱

node.name : node-1

#數據存儲位置

path.data : /home/elasticsearch/data

#ElasticSearch日誌存放位置

path.logs : /home/elasticsearch/logs

#鎖定內存,阻止操作系統管理內存,可以有效的防止內存數據被交換到磁碟空間,

#交換過程中磁碟會抖動,會對性能產生較大的影響。因為ES是基於JAVA開發的

# 可以能過垃圾回收器來單獨管理內存,所以關閉操作系統級別的內存管理可以

#提升性能

bootstrap.memory_lock : true

# 綁定節點上的所有網路介面,用於接收通過任意網卡傳輸過來的請求

network.host : 0.0.0.0

# HTTP 通信埠

http.port : 9200

其餘兩個節點的不同之處

54:node.name : node-2

55 : node.name : node-2

註:slave01、slave02、slave03為主機名,也可使用IP。

對ElasticSearch 的其他非必須參數,此處不再進行介紹,如有需要可以查閱官方文檔進行參數調整。

7、創建override.conf配置文件

因為使用rpm方式安裝elasticsearch,當系統使用systemd方式時,system 限制是從systemd獲取,啟動時會從/usr/lib/systemd/system/elasticsearch.service讀取默認限制,為使得elasticsearch能夠正常啟動,需要在/etc/systemd/system/下創建目錄elasticsearch.service.d,在該目錄下面創建文件override.conf,文件內容如下:

[Service]

LimitMEMLOCK=infinity

至此我們就可以啟動我們的ElasticSearch集群了

踩過的雷,你不要碰

上一節第6步中修改配置文件如下部分時:

network.host : 0.0.0.0

http.port : 9200

必須是這種格式,每行空一格,冒號前後各空一格,如果讀者對yml文件格式了解則可能很輕易繞過,筆者當初因為不熟悉這個格式,只是單純的把ElasticSearch配置文件中的#去掉,結果無法啟動,修改成上面的格式後,方才正常啟動。

結束語

平時在網上看到過許多關於ElasticSearch的安裝介紹,但是參照相關文檔在公司環境都沒有安裝成功,最後對著啟動提示的錯誤,一點點的修改,方才安裝成功,也希望對讀者有所幫助。記得認識的一位技術大佬曾經對我說過,你現在沒有能力,可以去拿一些開源的東西,等你有能力的時候,一定要回饋開源社區,這句話我一直記得,在此分享給大家,也是我分享這篇文章的初衷。最後也同樣希望讀者能回饋開源,不要只索取不付出,開源就是分享,一篇文章,一段代碼,足已。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

為愛的人煮完暖心的八寶粥
請以你的名字呼喚我,因為那是最大的美好

TAG:全球大搜羅 |