Elasticsearch學(xué)習(xí)筆記(4)

目錄

搭建Elasticsearch

本節(jié)包括關(guān)于如何設(shè)置Elasticsearch并使其運(yùn)行的信息,包括:

  • 下載
  • 安裝
  • 運(yùn)行
  • 配置
支持的平臺

這里提供了官方支持的操作系統(tǒng)和jvm的矩陣Support Matrix。Elasticsearch在列出的平臺上進(jìn)行了測試,但它也可能在其他平臺上工作。

JAVA(JVM)版本

Elasticsearch是基于Java構(gòu)建的,需要至少Java8來運(yùn)行它。只支持Oracle的Java和OpenJDK。所有Elasticsearch節(jié)點(diǎn)和客戶機(jī)都應(yīng)該使用相同的JVM版本。

我們推薦您安裝Java1.8.0_131版本或者Java 8發(fā)行版系列的后續(xù)版本。我們推薦您使用LTS JAVA版本。如果使用了已知的糟糕的Java版本,Elasticsearch將拒絕啟動。

Elasticsearch將使用的Java版本可以通過設(shè)置JAVA_HOME環(huán)境變量進(jìn)行配置。

安裝
用.zip或者.tar.gz安裝Elasticsearch

Elasticsearch提供.zip.tar.gz包。這些包可以用于在任何系統(tǒng)上安裝Elasticsearch,這是在試用Elasticsearch時(shí)最容易使用的包格式。

這些包在Elastic許可證下是免費(fèi)使用的。它包含開源和免費(fèi)的商業(yè)功能以及對付費(fèi)商業(yè)功能的訪問。

最新穩(wěn)定版的Elasticsearch可以在下載Elasticsearch頁面找到。其他版本可以在以前的版本頁面找到。

下載并安裝.zip包

可按如下方式下載并安裝Elasticsearch v6.5.1的.zip歸檔文件:

1.wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1.zip
2.wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1.zip.sha512
3.shasum -a 512 -c elasticsearch-6.5.1.zip.sha512
4.unzip elasticsearch-6.5.1.zip
5.cd elasticsearch-6.5.1

第3步是檢驗(yàn)?zāi)阆螺d的包和發(fā)布時(shí)的SHA
第5步這個目錄被稱為$ES_HOME

下載并安裝.tar.gz

可按如下方式下載并安裝Elasticsearch v.6.5.1的.tar.gz歸檔問價(jià):

1.wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1.tar.gz
2.wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1.tar.gz.sha512
3.shasum -a 512 -c elasticsearch-6.5.1.tar.gz.sha512
4.tar -xzf elasticsearch-6.5.1.tar.gz
5.cd elasticsearch-6.5.1/

第3步是檢驗(yàn)?zāi)阆螺d的包的SHA是否是發(fā)布時(shí)的SHA
第5步這個目錄被稱為$ES_HOME

啟用X-Pack索引的自動創(chuàng)建

X-Pack將嘗試在Elasticsearch中自動創(chuàng)建多個索引。默認(rèn)情況下,Elasticsearch配置為允許自動創(chuàng)建索引,不需要額外的步驟。但是,如果您在Elasticsearch中禁用了自動索引創(chuàng)建,則必須配置action.auto_create_index elasticsearchelasticsearch.yml配置文件中,允許X-Pack創(chuàng)建以下索引:

action.auto_create_index: .monitoring,.watches,.triggered_watches,.watcher-history,.ml*

注意:如果您正在使用LogstashBeats,那么您很可能需要額外的索引名稱配置在auto_create_index的配置項(xiàng)中,確切的值將取決于您的本地配置。如果您不確定環(huán)境的正確值,可以考慮將該值設(shè)置為*,這將允許自動創(chuàng)建所有索引。

啟動Elasticsearch

Elasticsearch可以使用以下的命令啟動:

./bin/elasticsearch

默認(rèn)情況下,Elasticsearch在前臺運(yùn)行,將其日志打印到標(biāo)準(zhǔn)輸出(stdout),按Ctrl-C即可停止。
注意:所有與Elasticsearch打包在一起的腳本都需要一個Bash版本,該版本支持?jǐn)?shù)組,并假設(shè)Bash在/bin/ Bash可用。因此,Bash應(yīng)該可以直接或通過符號鏈接在此路徑上可用。

檢查Elasticsearch是否在運(yùn)行

您可以通過發(fā)送HTTP請求到本地主機(jī)上的端口9200來測試您的Elasticsearch節(jié)點(diǎn)是否正在運(yùn)行:

curl -X GET "localhost:9200/"

這個命令應(yīng)該返回給你像這樣的響應(yīng)內(nèi)容:

{
"name" : "Cp8oag6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
"version" : {
"number" : "6.5.1",
"build_flavor" : "default",
"build_type" : "zip",
"build_hash" : "f27399d",
"build_date" : "2016-03-30T09:51:41.449Z",
"build_snapshot" : false,
"lucene_version" : "7.5.0",
"minimum_wire_compatibility_version" : "1.2.3",
"minimum_index_compatibility_version" : "1.2.3"
},
"tagline" : "You Know, for Search"
}

可以使用命令行上的-q或-quiet選項(xiàng)禁用stdout的日志打印。

作為守護(hù)進(jìn)程運(yùn)行

要將Elasticsearch作為守護(hù)程序運(yùn)行,請?jiān)诿钚兄兄付?d,并使用-p選項(xiàng)將進(jìn)程ID記錄在文件中

./bin/elasticsearch -d -p pid

日志消息可以在$ES_HOME/logs/目錄中找到。
要關(guān)閉Elasticsearch,請殺死pid文件中記錄的進(jìn)程ID:

kill pid號

注意:RPM和Debian包中提供的啟動腳本負(fù)責(zé)啟動和停止Elasticsearch過程。

在命令行配置Elasticsearch

默認(rèn)情況下Elasticsearch從$ES_HOME/config/elasticsearch.yml文件中加載它的配置。這個配置文件的格式在Configuring Elasticsearch中有說明。

任何可以在配置文件中指定的設(shè)置也可以在命令行中指定,使用-E語法如下所示:

./bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_1

備注:通常,任何集群范圍的設(shè)置(比如cluster.name)應(yīng)該添加到elasticsearch.yml配置文件中。而任何特定于節(jié)點(diǎn)的設(shè)置,如node.name,都可以在命令行中指定。

.zip和.tar.gz解壓后的目錄布局

.zip和.tar.gz包是完全獨(dú)立的。默認(rèn)情況下,所有文件和目錄都包含在$ES_HOME,這是在解壓存檔時(shí)創(chuàng)建的目錄。

這非常方便,因?yàn)槟恍枰獎?chuàng)建任何目錄來開始使用Elasticsearch,卸載Elasticsearch與刪除$ES_HOME目錄一樣簡單。但是,建議更改配置目錄、數(shù)據(jù)目錄和日志目錄的默認(rèn)位置,以便以后不刪除重要數(shù)據(jù)。

Type Description Default Location Setting
home Elasticsearch主目錄或者$ES_HOME 解壓縮包時(shí)創(chuàng)建的目錄
bin 二進(jìn)制腳本包括啟動節(jié)點(diǎn)的elasticsearch和安裝插件的elasticsearch插件 $ES_HOME/bin
config 配置文件,包括elasticsearch.yml $ES_HOME/config ES_PATH_CONF
data 節(jié)點(diǎn)上分配的每個索引/碎片的數(shù)據(jù)文件的位置。可以容納多個位置。 $ES_HOME/data path.data
logs 日志文件位置 $ES_HOME/logs path.logs
plugins 插件文件的位置。每個插件將包含在子目錄中。 $ES_HOME/plugins
repo 共享的文件系統(tǒng)存儲庫位置??梢匀菁{多個位置。文件系統(tǒng)存儲庫可以放在這里指定的任何目錄的任何子目錄中。 未配置 path.repo
script 腳本文件的位置 $ES_HOME/scripts path.scripts
在Windows上使用.zip包安裝Elasticsearch

可以使用.zip包在Windows上安裝Elasticsearch。自帶elasticsearch-service.bat命令,它將設(shè)置Elasticsearch作為服務(wù)運(yùn)行。
備注:歷來,Elasticsearch都是使用.zip歸檔文件安裝在Windows上的。一個MSI安裝包提供了最簡單的Windows入門體驗(yàn)。如果愿意,可以繼續(xù)使用.zip方法。

這個包在彈性許可證下是免費(fèi)使用的。它包含開源和免費(fèi)的商業(yè)功能以及對付費(fèi)商業(yè)功能的訪問。最新穩(wěn)定版的Elasticsearch可以在 Download Elasticsearch頁面找到。其他版本可以在 Past Releases page頁面找到。

下載并安裝.zip包

下載Elasticsearch v6.5.1版本的.zip包,下載地址:

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1.zip

或者,您可以下載以下包,其中只包含Apache 2.0許可下可用的特性,下載地址:

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-oss-6.5.1.zip

用你最喜歡的解壓工具解壓。這將創(chuàng)建一個名為elasticsearch-6.5.1的文件夾,我們將其稱為%ES_HOME%。例如,在終端窗口中,cd到%ES_HOME%目錄:

cd c:\elasticsearch-6.5.1

啟用x-pack索引的自動創(chuàng)建

X-Pack將嘗試在Elasticsearch中自動創(chuàng)建多個索引。默認(rèn)情況下,Elasticsearch配置為允許自動創(chuàng)建索引,不需要額外的步驟。但是,如果您在Elasticsearch中禁用了自動索引創(chuàng)建,則必須配置action.auto_create_index elasticsearchelasticsearch.yml配置文件中,允許X-Pack創(chuàng)建以下索引:

action.auto_create_index: .monitoring,.watches,.triggered_watches,.watcher-history,.ml*

注意:如果您正在使用LogstashBeats,那么您很可能需要額外的索引名稱配置在auto_create_index的配置項(xiàng)中,確切的值將取決于您的本地配置。如果您不確定環(huán)境的正確值,可以考慮將該值設(shè)置為*,這將允許自動創(chuàng)建所有索引。

從命令行啟動Elasticsearch

Elasticsearch可以從命令行開始,如下所示:

.\bin\elasticsearch.bat

默認(rèn)情況下,Elasticsearch在前臺運(yùn)行,將其日志打印到STDOUT,按Ctrl-C即可停止。

在命令行上配置Elasticsearch

默認(rèn)情況下Elasticsearch從%ES_HOME%\config\ elasticsearch.yml加載其配置,這個配置文件的格式在 Configuring Elasticsearch中有說明。

任何可以在配置文件中指定的設(shè)置也可以在命令行中指定,使用-E語法如下:

.\bin\elasticsearch.bat -Ecluster.name=my_cluster -Enode.name=node_1

注意:包含空格的值必須用引號括起來。例如-Epath.logs="C:\My Logs\logs"。

備注:通常,應(yīng)該向elasticsearch添加任何集群范圍的設(shè)置(比如cluster.name)。而任何特定于節(jié)點(diǎn)的設(shè)置,如node.name,都可以在命令行中指定。

驗(yàn)證Elasticsearch是否在運(yùn)行

您可以通過發(fā)送HTTP請求到本地主機(jī)上的端口9200來測試您的Elasticsearch節(jié)點(diǎn)是否正在運(yùn)行:

curl -X GET "localhost:9200/"

這個請求返回給你的響應(yīng)內(nèi)容大概是這樣的:

{
"name" : "Cp8oag6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
"version" : {
"number" : "6.5.1",
"build_flavor" : "default",
"build_type" : "zip",
"build_hash" : "f27399d",
"build_date" : "2016-03-30T09:51:41.449Z",
"build_snapshot" : false,
"lucene_version" : "7.5.0",
"minimum_wire_compatibility_version" : "1.2.3",
"minimum_index_compatibility_version" : "1.2.3"
},
"tagline" : "You Know, for Search"
}

將Elasticsearch作為一個服務(wù)安裝在Windows系統(tǒng)上

Elasticsearch可以作為服務(wù)安裝在后臺運(yùn)行,或者在啟動時(shí)自動啟動,無需任何用戶交互。這可以通過在bin\文件夾中elasticsearch-service.bat腳本獲得,它允許安裝、刪除、管理或配置服務(wù),并可能從命令行啟動和停止服務(wù)。

c:\elasticsearch-6.5.1\bin>elasticsearch-service.bat

Usage: elasticsearch-service.bat install|remove|start|stop|manager [SERVICE_ID]

腳本需要一個參數(shù)(要執(zhí)行的命令),然后是一個可選的參數(shù),指示服務(wù)id(在安裝多個Elasticsearch服務(wù)時(shí)有用)。
可用的命令有:

  • install - 安裝Elasticsearch作為一個服務(wù)
  • remove - 移除已安裝的Elasticsearch服務(wù)(如果是已啟動的服務(wù)將會被停止)
  • start - 啟動Elasticsearch服務(wù)(如果已經(jīng)安裝了)
  • stop - 停止Elasticsearch服務(wù)(如果已經(jīng)啟動了)
  • manager - 啟動一個GUI來管理已安裝的服務(wù)

服務(wù)的名稱和JAVA_HOME的值將會在安裝過程中獲得:

c:\elasticsearch-6.5.1\bin>elasticsearch-service.bat install
Installing service : "elasticsearch-service-x64"
Using JAVA_HOME (64-bit): "c:\jvm\jdk1.8"
The service 'elasticsearch-service-x64' has been installed.

注意:雖然JRE可以用于Elasticsearch服務(wù),但是由于它使用的是客戶機(jī)VM(而不是服務(wù)器JVM,后者為長時(shí)間運(yùn)行的應(yīng)用程序提供更好的性能),因此不鼓勵使用JRE,并會發(fā)出警告。

注意:系統(tǒng)環(huán)境變量JAVA_HOME應(yīng)該設(shè)置為您希望服務(wù)使用的JDK安裝的路徑。如果升級JDK,不需要重新安裝服務(wù),但是必須將系統(tǒng)環(huán)境變量JAVA_HOME的值設(shè)置為新JDK安裝的路徑。但是,不支持跨JVM類型進(jìn)行升級(例如JRE和SE),并且需要重新安裝服務(wù)。

定制服務(wù)設(shè)置

通過設(shè)置以下環(huán)境變量(使用命令行中的set命令或通過系統(tǒng)屬性->環(huán)境變量GUI),可以在安裝之前配置Elasticsearch服務(wù)。

  • SERVICE_ID - 服務(wù)的唯一標(biāo)識符。如果在同一臺機(jī)器上安裝多個實(shí)例,這很有用。 默認(rèn)為elasticsearch-service-x64.
  • SERVICE_USERNAME - 運(yùn)行服務(wù)的用戶,默認(rèn)為本地系統(tǒng)帳戶
  • SERVICE_PASSWORD - 在%SERVICE_USERNAME%中指定的用戶的密碼
  • SERVICE_DISPLAY_NAME - 服務(wù)的名稱。
  • SERVICE_DESCRIPTION - 服務(wù)的描述。
  • JAVA_HOME - 運(yùn)行服務(wù)所需的JVM的安裝目錄。
  • SERVICE_LOG_DIR - 服務(wù)日志目錄,默認(rèn)為%ES_HOME%\logs。注意,這并不控制Elasticsearch日志的路徑;這些路徑是通過在elasticsearch.yml配置文件中的path.logs設(shè)置或命令行上設(shè)置的。
  • ES_PATH_CONF - 配置文件目錄()
    Configuration file directory (需要包含 elasticsearch.yml, jvm.options, and log4j2.properties文件), 默認(rèn)是 %ES_HOME%\config。
  • ES_JAVA_OPTS - 您可能想要應(yīng)用的任何其他JVM系統(tǒng)屬性。
  • ES_START_TYPE - 服務(wù)的啟動模式。可以是自動的,也可以是手動的(默認(rèn))。
  • ES_STOP_TIMEOUT - 等待服務(wù)優(yōu)雅退出的超時(shí)時(shí)間(秒)。默認(rèn)值為0。

注意: 其核心elasticsearch-service.bat安裝服務(wù)依賴于Apache Commons Daemon項(xiàng)目。在服務(wù)安裝之前設(shè)置的環(huán)境變量將被復(fù)制,并將在服務(wù)生命周期中使用。這意味著,除非重新安裝服務(wù),否則在安裝之后對它們所做的任何更改都不會被接收。

注意:在Windows上,當(dāng)從命令行運(yùn)行Elasticsearch或第一次將Elasticsearch作為服務(wù)安裝時(shí),堆大小可以任意配置。要為已安裝的服務(wù)調(diào)整堆大小,請使用服務(wù)管理器:bin\elasticsearch-service.bat manager。

注意:服務(wù)在運(yùn)行時(shí)自動配置一個私有臨時(shí)目錄,供Elasticsearch使用。這個私有臨時(shí)目錄被配置為運(yùn)行安裝的用戶的私有臨時(shí)目錄的子目錄。如果服務(wù)將在不同的用戶下運(yùn)行,您可以在執(zhí)行服務(wù)安裝之前將環(huán)境變量ES_TMPDIR設(shè)置為首選位置,從而配置服務(wù)應(yīng)該使用的臨時(shí)目錄的位置。

使用Manager GUI

在服務(wù)已經(jīng)被安裝之后還可以使用manager GUI(elasticsearch-service-mgr.exe)配置服務(wù)。該GUI可以深入了解已安裝的服務(wù),包括其狀態(tài)、啟動類型、JVM、啟動和停止設(shè)置等。從命令行簡單地調(diào)用elasticsearch-service.bat manager 將打開anager窗口:


service-manager-win.png

通過管理器GUI進(jìn)行的大多數(shù)更改(如JVM設(shè)置)都需要重新啟動服務(wù)才能產(chǎn)生效果。

.zip解壓后的目錄布局

zip包是完全獨(dú)立的。默認(rèn)情況下,所有文件和目錄都包含在%ES_HOME%——解壓存檔時(shí)創(chuàng)建的目錄。

這非常方便,因?yàn)槟恍枰獎?chuàng)建任何目錄來開始使用Elasticsearch,卸載Elasticsearch與刪除%ES_HOME%目錄一樣簡單。但是,建議更改配置目錄、數(shù)據(jù)目錄和日志目錄的默認(rèn)位置,以便以后不刪除重要數(shù)據(jù)。

Type Description Default Location Setting
home Elasticsearch主目錄或者$ES_HOME 解壓縮包時(shí)創(chuàng)建的目錄
bin 二進(jìn)制腳本包括啟動節(jié)點(diǎn)的elasticsearch和安裝插件的elasticsearch插件 $ES_HOME/bin
config 配置文件,包括elasticsearch.yml $ES_HOME/config ES_PATH_CONF
data 節(jié)點(diǎn)上分配的每個索引/碎片的數(shù)據(jù)文件的位置。可以容納多個位置。 $ES_HOME/data path.data
logs 日志文件位置 $ES_HOME/logs path.logs
plugins 插件文件的位置。每個插件將包含在子目錄中。 $ES_HOME/plugins
repo 共享的文件系統(tǒng)存儲庫位置??梢匀菁{多個位置。文件系統(tǒng)存儲庫可以放在這里指定的任何目錄的任何子目錄中。 未配置 path.repo
用Debian包安裝ELasticsearch

可從我們的網(wǎng)站或APT庫下載Elasticsearch的Debian軟件包。它可以用于在任何基于Debian的系統(tǒng)(如Debian和Ubuntu)上安裝Elasticsearch。

導(dǎo)入Elasticsearch PGP Key

我們使用Elasticsearch簽名密鑰(PGP密鑰D88E42B4,可從https://pgp.mit.edu獲得)簽名所有包:

4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4

下載并安裝公共簽名密鑰:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

從APT存儲庫安裝

在繼續(xù)之前,您可能需要在Debian上安裝apt-transport-https包:

sudo apt-get install apt-transport-https

將存儲庫定義保存到/etc/ap /sources.list.d/elastic-6.x.list

echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

備注:由于以下幾個原因,這些指令不使用add-apt-repository:
1.add-apt-repository將條目添加到系統(tǒng)/etc/apt/sources.list文件中而不是/etc/ap /sources.list.d下增加一個干凈的存儲庫文件
2.add-apt-repository并不是許多發(fā)行版上默認(rèn)安裝的一部分,它需要許多非默認(rèn)依賴項(xiàng)
3.舊版本的add-apt-repository總是會添加一個debi -src條目,這會導(dǎo)致錯誤,因?yàn)槲覀儧]有提供源代碼包。如果您已經(jīng)添加了deba -src條目,那么在刪除deba -src行之前,您將看到如下所示的錯誤:

Unable to find expected entry 'main/source/Sources' in Release file
(Wrong sources.list entry or malformed file)

您可以使用以下命令安裝Elasticsearch Debian軟件包:

sudo apt-get update && sudo apt-get install elasticsearch

警告:如果同一個Elasticsearch存儲庫存在兩個條目,那么在apt-get更新期間會看到這樣的錯誤:

Duplicate sources.list entry https://artifacts.elastic.co/packages/6.x/apt/ ...`
檢查/etc/apt/sources.list.d/elasticsearch-6.x.list列出重復(fù)條目或在/etc/apt/source.list.d/中的文件中查找重復(fù)條目和/etc/apt/sources.list文件。

備注:在基于系統(tǒng)的發(fā)行版中,安裝腳本將嘗試設(shè)置內(nèi)核參數(shù)(例如vm.max_map_count);您可以通過屏蔽systemd-sysctl.service unit跳過此步驟。

手動下載并安裝Debian軟件包(推薦)

可從本網(wǎng)站下載Elasticsearch v6.5.1的Debian軟件包,安裝如下:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1.deb.sha512
shasum -a 512 -c elasticsearch-6.5.1.deb.sha512
sudo dpkg -i elasticsearch-6.5.1.deb

或者,您可以下載以下包,其中只包含Apache 2.0許可下可用的特性:

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-oss-6.5.1.deb

啟用x-pack自動創(chuàng)建索引

X-Pack將嘗試在Elasticsearch中自動創(chuàng)建多個索引。默認(rèn)情況下,Elasticsearch的配置允許自動創(chuàng)建索引,不需要額外的步驟。但是,如果您在Elasticsearch中禁用了自動索引創(chuàng)建,則必須在elasticsearch.yml中配置action.auto_create_index 允許X-Pack創(chuàng)建以下索引:

action.auto_create_index: .monitoring,.watches,.triggered_watches,.watcher-history,.ml*

如果您正在使用Logstash或Beats,那么您的操作很可能需要額外的索引名稱,確切的值將取決于您的本地配置。如果您不確定環(huán)境的正確值,可以考慮將該值設(shè)置為*,這將允許自動創(chuàng)建所有索引。

SysV init vs systemd

Elasticsearch安裝后不會自動啟動。如何啟動和停止Elasticsearch取決于您的系統(tǒng)是使用SysV init還是systemd(用于較新的發(fā)行版)。您可以通過運(yùn)行此命令來判斷使用哪個命令:

ps -p 1

使用SysV init運(yùn)行Elasticsearch

使用update-rc.d命令配置Elasticsearch以在系統(tǒng)啟動時(shí)自動啟動:

sudo update-rc.d elasticsearch defaults 95 10

可以使用以下命令啟動和停止Elasticsearch服務(wù):

sudo -i service elasticsearch start
sudo -i service elasticsearch stop

如果Elasticsearch由于任何原因無法啟動,它會打印出失敗的原因。日志文件可以在/var/ Log /elasticsearch/中找到。

使用systemd運(yùn)行Elasticsearch

要配置Elasticsearch在系統(tǒng)啟動時(shí)自動啟動,運(yùn)行以下命令:

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service

可以按如下方式啟動和停止Elasticsearch:

sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service

這些命令沒有提供關(guān)于Elasticsearch是否成功啟動的反饋。相反,這些信息將寫入位于/var/log/elasticsearch/中的日志文件中。

默認(rèn)情況下,Elasticsearch服務(wù)不會在系統(tǒng)日志中記錄信息。要啟用journalctl日志記錄,必須在elasticsearch.service文件中的ExecStart命令行刪除——quiet選項(xiàng)。

啟用systemd日志記錄時(shí),可以使用journalctl命令獲取日志信息:
跟蹤日志:

sudo journalctl -f

列出elasticsearch服務(wù)的日志條目:

sudo journalctl --unit elasticsearch

從給定時(shí)間開始列出elasticsearch服務(wù)的日志條目:

sudo journalctl --unit elasticsearch --since "2016-10-30 18:17:16"

查看man journalctl或https://www.freedesktop.org/software/systemd/man/journalctl.html以獲得更多命令行選項(xiàng)。

校驗(yàn)Elasticsearch是否在運(yùn)行

您可以通過發(fā)送HTTP請求到本地主機(jī)上的端口9200來測試您的Elasticsearch節(jié)點(diǎn)是否正在運(yùn)行:

curl -X GET "localhost:9200/"

返回給你的響應(yīng)內(nèi)容大概像這樣:

{
"name" : "Cp8oag6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
"version" : {
"number" : "6.5.1",
"build_flavor" : "default",
"build_type" : "zip",
"build_hash" : "f27399d",
"build_date" : "2016-03-30T09:51:41.449Z",
"build_snapshot" : false,
"lucene_version" : "7.5.0",
"minimum_wire_compatibility_version" : "1.2.3",
"minimum_index_compatibility_version" : "1.2.3"
},
"tagline" : "You Know, for Search"
}

配置Elasticsearch

Elasticsearch默認(rèn)使用/etc/elasticsearch進(jìn)行運(yùn)行時(shí)配置。這個目錄和在這個目錄下的所有文件的所有權(quán)在包安裝時(shí)設(shè)置為root:elasticsearch,這個目錄設(shè)置了setgid標(biāo)志,以便在/etc/elasticsearch這個目錄下創(chuàng)建的任何文件和子目錄具有相同的所有權(quán)。希望能夠保持這種狀態(tài),以便Elasticsearch進(jìn)程可以通過組權(quán)限讀取該目錄下的文件。

默認(rèn)情況下Elasticsearch從/etc/elasticsearch/elasticsearch.yml文件中加載它的配置。這個配置文件的格式在配置Elasticsearch中有說明。

Debian包還有一個系統(tǒng)配置文件(/etc/default/elasticsearch),允許您設(shè)置以下參數(shù):
JAVA_HOME: 設(shè)置要使用的自定義Java路徑
MAX_OPEN_FILES: 打開文件的最大數(shù)量,默認(rèn)為65536。
MAX_LOCKED_MEMORY:最大鎖定內(nèi)存大小。如果你在elasticsearch.yml中啟用bootstrp.memory_lock內(nèi)存鎖配置項(xiàng),設(shè)置其為unlimited。
MAX_MAP_COUNT:進(jìn)程可能擁有的內(nèi)存映射區(qū)域的最大數(shù)量。如果使用mmapfs作為索引存儲類型,請確保將其設(shè)置為高值。有關(guān)更多信息,請參閱關(guān)于max_map_count的linux內(nèi)核文檔。這是在啟動Elasticsearch之前通過sysctl設(shè)置的。默認(rèn)為262144。
ES_PATH_CONF:配置文件目錄(需要包含elasticsearch.yml、jvm.options和log4j2.properties);默認(rèn)為/etc/elasticsearch。
ES_JAVA_OPTS:您可能想要應(yīng)用的任何其他JVM系統(tǒng)屬性。
RESTART_ON_UPGRADE:在包升級時(shí)配置重啟,默認(rèn)為false。這意味著您必須在手動安裝包之后重新啟動Elasticsearch實(shí)例。這樣做的原因是為了確保集群中的升級不會導(dǎo)致連續(xù)的碎片重分配,從而導(dǎo)致高網(wǎng)絡(luò)流量和減少集群的響應(yīng)時(shí)間。

注意:使用systemd的發(fā)行版要求通過systemd配置系統(tǒng)資源限制,而不是通過/etc/sysconfig/elasticsearch文件。有關(guān)更多信息,請參閱Systemd配置。

Debian軟件包的目錄布局

Debian軟件包將配置文件、日志和數(shù)據(jù)目錄放在基于Debian的系統(tǒng)的適當(dāng)位置:

Type Description Default Location Setting
home Elasticsearch主目錄或者$ES_HOME /usr/share/elasticsearch
bin 二進(jìn)制腳本包括啟動節(jié)點(diǎn)的elasticsearch和安裝插件的elasticsearch插件 /usr/share/elasticsearch/bin
config 配置文件,包括elasticsearch.yml /etc/elasticsearch ES_PATH_CONF
conf 環(huán)境變量包括堆大小、文件描述符。 /etc/default/elasticsearch
data 節(jié)點(diǎn)上分配的每個索引/碎片的數(shù)據(jù)文件的位置。可以容納多個位置。 /var/lib/elasticsearch path.data
logs 日志文件位置 /var/log/elasticsearch path.logs
plugins 插件文件的位置。每個插件將包含在子目錄中。 /usr/share/elasticsearch/plugins
repo 共享的文件系統(tǒng)存儲庫位置??梢匀菁{多個位置。文件系統(tǒng)存儲庫可以放在這里指定的任何目錄的任何子目錄中。 未配置 path.repo
用RPM包安裝ELasticsearch

Elasticsearch的RPM可以從我們的網(wǎng)站RPM存儲庫下載。它可以用于在OpenSuSE、SLES、Centos、Red Hat和Oracle Enterprise等任何基于rpm的系統(tǒng)上安裝Elasticsearch。

備注:RPM安裝不支持使用舊版本RPM的發(fā)行版,例如SLES 11和CentOS 5。請參閱安裝Elasticsearch使用.zip或.tar.gz代替。
最新穩(wěn)定版的Elasticsearch可以在Elasticsearch下載頁面找到。其他版本可以在以前的版本頁面找到。

導(dǎo)入Elasticsearch PGP Key

我們使用Elasticsearch簽名密鑰(PGP密鑰D88E42B4,可從https://pgp.mit.edu獲得)簽名所有包:

4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4

下載并安裝公開簽名密鑰:

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

從RPM存儲庫安裝

在/etc/yum.repos.d/目錄下為RedHat的發(fā)行版創(chuàng)建一個名為elasticsearch.repo的源文件,或者在基于OpenSuSE發(fā)行版的/etc/zypp/repos.d/目錄,包含:

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

您的存儲庫已經(jīng)可以使用了?,F(xiàn)在,您可以使用以下命令之一安裝Elasticsearch:

1.sudo yum install elasticsearch
2.sudo dnf install elasticsearch
3.sudo zypper install elasticsearch

1.在CentOS和較早的Red Hat發(fā)行版上使用yum
2.在Fedora和其他較新的Red Hat發(fā)行版上使用dnf
3.在基于OpenSUSE的發(fā)行版上使用zypper

手動下載并安裝RPM

Elasticsearch v6.5.1的RPM可以從網(wǎng)站下載,安裝如下:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1.rpm.sha512
shasum -a 512 -c elasticsearch-6.5.1.rpm.sha512
sudo rpm --install elasticsearch-6.5.1.rpm

啟用X-Pack索引的自動創(chuàng)建

X-Pack將嘗試在Elasticsearch中自動創(chuàng)建多個索引。默認(rèn)情況下,Elasticsearch的配置允許自動創(chuàng)建索引,不需要額外的步驟。但是,如果您在Elasticsearch中禁用了自動索引創(chuàng)建,則必須在elasticsearch.yml文件中配置action.auto_create_index配置項(xiàng)以允許X-Pack創(chuàng)建以下索引:

action.auto_create_index: .monitoring,.watches,.triggered_watches,.watcher-history,.ml*

SysV init vs systemd

Elasticsearch安裝后不會自動啟動。如何啟動和停止Elasticsearch取決于您的系統(tǒng)是使用SysV init還是systemd(用于較新的發(fā)行版)。你可以使用這個命令知道哪個正在運(yùn)行:

ps -p 1

使用SysV init運(yùn)行Elasticsearch

使用chkconfig命令配置Elasticsearch在系統(tǒng)啟動時(shí)自動啟動:

sudo chkconfig --add elasticsearch

可以使用服務(wù)命令啟動和停止Elasticsearch:

sudo -i service elasticsearch start
sudo -i service elasticsearch stop

如果Elasticsearch由于任何原因無法啟動,它會打印出失敗的原因。日志文件可以在/var/ Log /elasticsearch/中找到。

使用systemd運(yùn)行Elasticsearch

要配置Elasticsearch在系統(tǒng)啟動時(shí)自動啟動,運(yùn)行以下命令:

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service

Elasticsearch的啟動和停止方式如下:

sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service

這些命令沒有提供關(guān)于Elasticsearch是否成功啟動的反饋。相反,這些信息將寫入位于/var/log/elasticsearch/中的日志文件中。

默認(rèn)情況下,Elasticsearch服務(wù)不會在系統(tǒng)日志中記錄信息。要啟用journalctl日志記錄,必須在elasticsearch.service文件中從ExecStart命令行刪除 --quiet選項(xiàng)。

啟用systemd日志記錄時(shí),可以使用journalctl命令獲取日志信息:
跟蹤日志:

sudo journalctl -f

列出elasticsearch服務(wù)的日志條目:

sudo journalctl --unit elasticsearch

從給定時(shí)間開始列出elasticsearch服務(wù)的日志條目:

sudo journalctl --unit elasticsearch --since "2016-10-30 18:17:16"

校驗(yàn)ELasticsearch是否運(yùn)行

您可以通過發(fā)送HTTP請求到本地主機(jī)上的端口9200來測試您的Elasticsearch節(jié)點(diǎn)是否正在運(yùn)行:

curl -X GET "localhost:9200/"

返回給你的響應(yīng)內(nèi)容大概是這樣的:

{
"name" : "Cp8oag6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
"version" : {
"number" : "6.5.1",
"build_flavor" : "default",
"build_type" : "zip",
"build_hash" : "f27399d",
"build_date" : "2016-03-30T09:51:41.449Z",
"build_snapshot" : false,
"lucene_version" : "7.5.0",
"minimum_wire_compatibility_version" : "1.2.3",
"minimum_index_compatibility_version" : "1.2.3"
},
"tagline" : "You Know, for Search"
}

配置Elasticsearch

Elasticsearch默認(rèn)使用/etc/elasticsearch進(jìn)行運(yùn)行時(shí)配置。這個目錄和在這個目錄下的所有文件的所有權(quán)在包安裝時(shí)設(shè)置為root:elasticsearch,這個目錄設(shè)置了setgid標(biāo)志,以便在/etc/elasticsearch這個目錄下創(chuàng)建的任何文件和子目錄具有相同的所有權(quán)。希望能夠保持這種狀態(tài),以便Elasticsearch進(jìn)程可以通過組權(quán)限讀取該目錄下的文件。

默認(rèn)情況下Elasticsearch從/etc/elasticsearch/elasticsearch.yml文件中加載它的配置。這個配置文件的格式在配置Elasticsearch中有說明。

Debian包還有一個系統(tǒng)配置文件(/etc/default/elasticsearch),允許您設(shè)置以下參數(shù):
JAVA_HOME: 設(shè)置要使用的自定義Java路徑
MAX_OPEN_FILES: 打開文件的最大數(shù)量,默認(rèn)為65536。
MAX_LOCKED_MEMORY:最大鎖定內(nèi)存大小。如果你在elasticsearch.yml中啟用bootstrp.memory_lock內(nèi)存鎖配置項(xiàng),設(shè)置其為unlimited。
MAX_MAP_COUNT:進(jìn)程可能擁有的內(nèi)存映射區(qū)域的最大數(shù)量。如果使用mmapfs作為索引存儲類型,請確保將其設(shè)置為高值。有關(guān)更多信息,請參閱關(guān)于max_map_count的linux內(nèi)核文檔。這是在啟動Elasticsearch之前通過sysctl設(shè)置的。默認(rèn)為262144。
ES_PATH_CONF:配置文件目錄(需要包含elasticsearch.yml、jvm.options和log4j2.properties);默認(rèn)為/etc/elasticsearch。
ES_JAVA_OPTS:您可能想要應(yīng)用的任何其他JVM系統(tǒng)屬性。
RESTART_ON_UPGRADE:在包升級時(shí)配置重啟,默認(rèn)為false。這意味著您必須在手動安裝包之后重新啟動Elasticsearch實(shí)例。這樣做的原因是為了確保集群中的升級不會導(dǎo)致連續(xù)的碎片重分配,從而導(dǎo)致高網(wǎng)絡(luò)流量和減少集群的響應(yīng)時(shí)間。

注意:使用systemd的發(fā)行版要求通過systemd配置系統(tǒng)資源限制,而不是通過/etc/sysconfig/elasticsearch文件。有關(guān)更多信息,請參閱Systemd配置

RPM軟件包的目錄布局

Debian軟件包將配置文件、日志和數(shù)據(jù)目錄放在基于Debian的系統(tǒng)的適當(dāng)位置:

Type Description Default Location Setting
home Elasticsearch主目錄或者$ES_HOME /usr/share/elasticsearch
bin 二進(jìn)制腳本包括啟動節(jié)點(diǎn)的elasticsearch和安裝插件的elasticsearch插件 /usr/share/elasticsearch/bin
config 配置文件,包括elasticsearch.yml /etc/elasticsearch ES_PATH_CONF
conf 環(huán)境變量包括堆大小、文件描述符。 /etc/sysconfig/elasticsearch
data 節(jié)點(diǎn)上分配的每個索引/碎片的數(shù)據(jù)文件的位置。可以容納多個位置。 /var/lib/elasticsearch path.data
logs 日志文件位置 /var/log/elasticsearch path.logs
plugins 插件文件的位置。每個插件將包含在子目錄中。 /usr/share/elasticsearch/plugins
repo 共享的文件系統(tǒng)存儲庫位置??梢匀菁{多個位置。文件系統(tǒng)存儲庫可以放在這里指定的任何目錄的任何子目錄中。 未配置 path.repo
用Windows MSI安裝程序安裝Elasticsearch

參考官網(wǎng)

用Docker安裝Elasticsearch

Elasticsearch也可以作為Docker圖像使用。圖像使用centos:7作為基礎(chǔ)圖像

所有已發(fā)布的Docker圖像和標(biāo)簽的列表可以在www.docker.elastic.co上找到。源代碼在GitHub中。

拉取圖像

獲取Docker的Elasticsearch就像對彈性Docker注冊表發(fā)出Docker pull命令一樣簡單:

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.5.1

或者,您可以下載其他Docker圖像,這些圖像只包含Apache 2.0許可下可用的特性。要下載這些圖像,請?jiān)L問www.docker.elastic.co。

從命令行運(yùn)行Elasticsearch
  • 開發(fā)模式:
    通過以下命令可以快速啟動Elasticsearch用于開發(fā)或測試使用:

    docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.5.1

  • 生產(chǎn)模式:
    vm.max_map_count內(nèi)核設(shè)置需要設(shè)置為至少262144以供生產(chǎn)使用。取決于您的平臺:

    • Linux
      vm.max_map_count設(shè)置應(yīng)該在/etc/sysctl.conf中永久設(shè)置:

      $ grep vm.max_map_count /etc/sysctl.conf
      vm.max_map_count=262144

      要在活動系統(tǒng)類型上應(yīng)用該設(shè)置:sysctl -w vm.max_map_count=262144

    • macOS with Docker for Mac
      vm.max_map_count設(shè)置必須在xhyve虛擬機(jī)中設(shè)置:

      $ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

      只需按下enter并配置sysctl設(shè)置,就像在Linux中那樣:

      sysctl -w vm.max_map_count=262144

    • Windows and macOS with Docker Toolbox
      vm.max_map_count設(shè)置必須通過docker-machine設(shè)置:

      docker-machine ssh
      sudo sysctl -w vm.max_map_count=262144

下面的示例給出了一個包含兩個Elasticsearch節(jié)點(diǎn)的集群。要打開集群,請使用docker-compose.yml。只需要輸入:

docker-compose up

注意:docker -compose不是與Linux上的Docker一起預(yù)先安裝的。安裝說明可以在Docker Compose webpage上找到。

節(jié)點(diǎn)elasticsearch監(jiān)聽localhost:9200, elasticsearch2通過Docker網(wǎng)絡(luò)與elasticsearch對話。

這個例子還使用Docker named volumes,稱為esdata1和esdata2,如果還沒有出現(xiàn),將創(chuàng)建它們。
docker-compose.yml:

version: '2.2'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.5.1
    container_name: elasticsearch
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - esnet
  elasticsearch2:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.5.1
    container_name: elasticsearch2
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.zen.ping.unicast.hosts=elasticsearch"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata2:/usr/share/elasticsearch/data
    networks:
      - esnet

volumes:
  esdata1:
    driver: local
  esdata2:
    driver: local

networks:
  esnet:

要停止集群,請鍵入docker-compose down。數(shù)據(jù)量將保持不變,所以可以使用docker-compose up重新啟動集群,使用相同的數(shù)據(jù)。要破壞集群和數(shù)據(jù)卷,只需鍵入docker-compose down -v。

檢查集群狀態(tài)

curl http://127.0.0.1:9200/_cat/health
1472225929 15:38:49 docker-cluster green 2 2 4 2 0 0 0 0 - 100.0%

日志消息轉(zhuǎn)到控制臺,由配置好的Docker日志驅(qū)動程序處理。默認(rèn)情況下,您可以使用docker logs訪問日志。

使用docker配置ELasticsearch

Elasticsearch從/usr/share/elasticsearch/config/下的文件加載配置。在配置Elasticsearch和設(shè)置JVM選項(xiàng)中記錄了這些配置文件。

該圖像提供了幾種配置Elasticsearch設(shè)置的方法,傳統(tǒng)的方法是提供定制的文件,即elasticsearch .yml。也可以使用環(huán)境變量來設(shè)置選項(xiàng):

A.通過docker環(huán)境變量配置參數(shù):
例如,使用docker run定義集群名稱,您可以傳遞-e "cluster.name=mynewclustername"。需要雙引號。

B.綁定裝載配置:
創(chuàng)建自定義配置文件,并將其掛載到圖像的相應(yīng)文件上。例如,可以使用docker run帶有以下參數(shù)來綁定-掛載一個custom_elasticsearch.yml:

-v full_path_to/custom_elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml

注意:容器使用uid:gid 1000:1000作為用戶Elasticsearch運(yùn)行Elasticsearch。綁定掛載的主機(jī)目錄和文件,例如上面的custom_elasticsearch.yml,需要被這個用戶訪問。對于數(shù)據(jù)和日志目錄,例如/usr/share/elasticsearch/data,也需要寫訪問。請參閱下面的注釋1。

c .定制的圖像
在某些環(huán)境中,準(zhǔn)備包含配置的自定義映像可能更有意義。實(shí)現(xiàn)這一點(diǎn)的Dockerfile可能非常簡單:

FROM docker.elastic.co/elasticsearch/elasticsearch:6.5.1
COPY --chown=elasticsearch:elasticsearch elasticsearch.yml /usr/share/elasticsearch/config/

然后,您可以構(gòu)建并嘗試這樣的圖像:

docker build --tag=elasticsearch-custom .
docker run -ti -v /usr/share/elasticsearch/data elasticsearch-custom

一些插件需要額外的安全權(quán)限。您必須顯式地接受它們,或者在運(yùn)行Docker映像時(shí)附加一個tty,并在提示符下接受yes,或者分別檢查安全權(quán)限,如果您不介意的話,還可以在plugin install命令中添加--batch標(biāo)志。有關(guān)更多細(xì)節(jié),請參閱插件管理文檔。

d.覆蓋圖像的默認(rèn)CMD
選項(xiàng)可以通過覆蓋圖像的默認(rèn)命令作為命令行選項(xiàng)傳遞給Elasticsearch進(jìn)程。例如:

docker run <various parameters> bin/elasticsearch -Ecluster.name=mynewclustername

使用Elasticsearch Docker映像配置SSL/TLS

參考 Encrypting Communications in an Elasticsearch Docker Container.

生產(chǎn)用途和默認(rèn)值的說明

我們收集了一些用于生產(chǎn)的最佳實(shí)踐。下面提到的任何Docker參數(shù)都假定使用docker run
1.默認(rèn)情況下,Elasticsearch作為用戶Elasticsearch在容器中運(yùn)行,使用uid:gid 1000:1000。

如果綁定-掛載本地目錄或文件,請確保該用戶能夠讀懂它,而數(shù)據(jù)和日志dirs則需要另外的寫訪問權(quán)限。一個好的策略是為本地目錄授予組對gid 1000或0的訪問權(quán)限。例如,準(zhǔn)備一個本地目錄,以便通過綁定掛載存儲數(shù)據(jù):

mkdir esdatadir
chmod g+rwx esdatadir
chgrp 1000 esdatadir

最后,您還可以強(qiáng)制容器通過環(huán)境變量TAKE_FILE_OWNERSHIP來更改用于數(shù)據(jù)和日志dirs的綁定掛載的所有權(quán);在這種情況下,它們將歸uid:gid 1000:0所有,根據(jù)需要提供對Elasticsearch進(jìn)程的讀寫訪問。

2.對于Elasticsearch容器,確保增加nofile和nproc的ulimit是很重要的。驗(yàn)證Docker守護(hù)進(jìn)程的init系統(tǒng)已經(jīng)將這些值設(shè)置為可接受的值,如果需要,可以在守護(hù)進(jìn)程中調(diào)整它們,或者在每個容器中覆蓋它們,例如使用docker run:

--ulimit nofile=65536:65536

檢查上述ulimit的Docker守護(hù)程序缺省值的一種方法是:

docker run --rm centos:7 /bin/bash -c 'ulimit -Hn && ulimit -Sn && ulimit -Hu && ulimit -Su'

3.為了性能和節(jié)點(diǎn)穩(wěn)定性,需要禁用交換。這可以通過Elasticsearch文檔中提到的任何方法來實(shí)現(xiàn)。如果你選擇bootstrap.memory_lock: true方法,除了通過任何配置方法定義它之外,您還需要memlock: true ,它可以在Docker守護(hù)進(jìn)程中定義,也可以專門為容器設(shè)置。以上在docker- composel中進(jìn)行了演示。如果使用docker run:

-e "bootstrap.memory_lock=true" --ulimit memlock=-1:-1

4.該圖像公開TCP端口9200和9300。對于集群,建議使用**--publish-all對已發(fā)布端口進(jìn)行隨機(jī)化,除非在每個主機(jī)上固定一個容器。

5.使用ES_JAVA_OPTS環(huán)境變量設(shè)置堆大小。例如,為使用16GB使用**docker run ** -e ES_JAVA_OPTS="-Xms16g -Xmx16g":

docker run -e ES_JAVA_OPTS="-Xms16g -Xmx16g"

6.將部署鎖定到Elasticsearch Docker映像的特定版本。例如,docker.elastic.co / elasticsearch / elasticsearch: 6.5.1

7.總是使用/usr/share/elasticsearch/data的卷綁定,如生產(chǎn)示例所示,原因如下:
a.如果容器被殺死,您的elasticsearch節(jié)點(diǎn)的數(shù)據(jù)不會丟失
b.Elasticsearch對I/O很敏感,Docker存儲驅(qū)動程序?qū)τ诳焖買/O并不理想
c.它允許使用高級Docker卷插件

8.如果使用的是devicemapper存儲驅(qū)動程序,請確保沒有使用默認(rèn)的loop-lvm模式。配置docker-engine來使用direct-lvm

9.考慮使用不同的日志驅(qū)動程序集中日志。還要注意,默認(rèn)的json文件日志驅(qū)動程序并不適合生產(chǎn)使用。

下一步

你現(xiàn)在已經(jīng)建立了一個測試Elasticsearch環(huán)境。在開始真正的開發(fā)或使用Elasticsearch投入生產(chǎn)之前,必須做一些額外的設(shè)置:

  • 學(xué)習(xí)如何配置Elasticsearch
  • 配置重要的Elasticsearch配置
  • 配置重要的系統(tǒng)配置

下一章 —— Elasticsearch學(xué)習(xí)筆記(5)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,702評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,143評論 3 415
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,553評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,620評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,416評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,940評論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,024評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,170評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,709評論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,597評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,784評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,291評論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,029評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,407評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,663評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,403評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,746評論 2 370

推薦閱讀更多精彩內(nèi)容

  • 官網(wǎng)地址:https://www.elastic.co/cn/ 官網(wǎng)權(quán)威指南:https://www.elasti...
    Anwar_ec28閱讀 6,691評論 0 11
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,887評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,777評論 18 139
  • Elastic+logstash+head簡單介紹 一. 概述 ElasticSearch是一個基于Lucene的...
    柒月失凄閱讀 4,295評論 0 4
  • 萼綠華者,吳之姑蘇人也。生而異于人,極善才情。及長,號為才女,名動江關(guān),世稱其文如汪洋大海,寬不可渡,深不可測。 ...
    墨未滿閱讀 292評論 0 0