目錄
搭建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 elasticsearch在elasticsearch.yml配置文件中,允許X-Pack創(chuàng)建以下索引:
action.auto_create_index: .monitoring,.watches,.triggered_watches,.watcher-history,.ml*
注意:如果您正在使用Logstash或Beats,那么您很可能需要額外的索引名稱配置在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 elasticsearch在elasticsearch.yml配置文件中,允許X-Pack創(chuàng)建以下索引:
action.auto_create_index: .monitoring,.watches,.triggered_watches,.watcher-history,.ml*
注意:如果您正在使用Logstash或Beats,那么您很可能需要額外的索引名稱配置在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窗口:
通過管理器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 elasticsearch1.在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
用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)配置