Elasticsearch容器化部署

Elasticsearch標(biāo)準(zhǔn)軟件基于Bitnami Elasticsearch 構(gòu)建勒极。當(dāng)前版本為8.11.3

你可以通過(guò)輕云UC部署工具直接安裝部署敞恋,也可以手動(dòng)按如下文檔操作,該項(xiàng)目已經(jīng)全面開(kāi)源瘤泪,可以從如下環(huán)境獲取 配置文件地址: https://gitee.com/qingplus/qingcloud-platform

qinghub自動(dòng)安裝部署配置庫(kù)

簡(jiǎn)介

Elasticsearch是一個(gè)分布式灶泵、可擴(kuò)展、實(shí)時(shí)的搜索與數(shù)據(jù)分析引擎对途。它不僅僅只是全文搜索赦邻,還支持結(jié)構(gòu)化搜索、數(shù)據(jù)分析实檀、復(fù)雜的語(yǔ)言處理惶洲、地理位置和對(duì)象間關(guān)聯(lián)關(guān)系等。ES也是使用Java編寫(xiě)的劲妙,ES的底層依賴(lài)Lucene,它的內(nèi)部使用Lucene做索引與搜索,它的目的是隱藏Lucene的復(fù)雜性儒喊,取而代之的提供一套簡(jiǎn)單一致的Restful API镣奋。

初始化一個(gè)新實(shí)例

使用Docker 容器網(wǎng)絡(luò),應(yīng)用程序容器可以輕松訪問(wèn)容器內(nèi)運(yùn)行的 Elasticsearch 服務(wù)器怀愧。

連接到同一網(wǎng)絡(luò)的容器可以使用容器名稱(chēng)作為主機(jī)名來(lái)相互通信侨颈。

使用命令行

第 1 步:創(chuàng)建網(wǎng)絡(luò)

docker network create app-tier --driver bridge

第 2 步:?jiǎn)?dòng) Elasticsearch 服務(wù)器實(shí)例

docker run 添加命令--network app-tier的參數(shù), 將elasticsearch-server容器連接到網(wǎng)絡(luò)app-tier余赢。

docker run -d --name elasticsearch-server \

? ? --network app-tier \

? ? registry.cn-hangzhou.aliyuncs.com/qingcloudtech/elasticsearch:latest

第 3 步:?jiǎn)?dòng)應(yīng)用程序容器

docker run -d --name myapp \

? ? --network app-tier \

? ? YOUR_APPLICATION_IMAGE

重要

注意替換YOUR_APPLICATION_IMAGE_占位符

在容器中,使用主機(jī)名elasticsearch-server連接到 Elasticsearch 服務(wù)器

使用 Docker Compose 文件

如果未指定哈垢,Docker Compose 會(huì)自動(dòng)設(shè)置一個(gè)新網(wǎng)絡(luò)并將所有已部署的服務(wù)附加到該網(wǎng)絡(luò)妻柒。但是我們將顯式定義一個(gè)bridge名為app-tier的新網(wǎng)絡(luò)。在此示例中耘分,我們假設(shè)您希望從您自己的自定義應(yīng)用程序映像連接到 Elasticsearch 服務(wù)器举塔,該映像在以下代碼段中通過(guò)服務(wù)名稱(chēng)進(jìn)行標(biāo)識(shí)myapp。

version: '2'

networks:

? app-tier:

? ? driver: bridge

services:

? elasticsearch:

? ? image: 'registry.cn-hangzhou.aliyuncs.com/qingcloudtech/elasticsearch:latest'

? ? networks:

? ? ? - app-tier

? myapp:

? ? image: 'YOUR_APPLICATION_IMAGE'

? ? networks:

? ? ? - app-tier

重要

注意替換YOUR_APPLICATION_IMAGE_占位符

在容器中求泰,使用主機(jī)名elasticsearch-server連接到 Elasticsearch 服務(wù)器

使用以下命令啟動(dòng)容器:

docker-compose up -d

配置

環(huán)境變量

當(dāng)您啟動(dòng)elasticsearch鏡像時(shí)央渣,您可以通過(guò)在docker-compose文件或docker run命令行上傳遞一個(gè)或多個(gè)環(huán)境變量來(lái)調(diào)整實(shí)例的配置。

對(duì)于 Docker Compose渴频,在應(yīng)用程序部分下添加變量名稱(chēng)和值:

elasticsearch:

? ...

? environment:

? ? - ELASTICSEARCH_PORT_NUMBER=9201

? ...

...

對(duì)于手動(dòng)執(zhí)行芽丹,增加-e為每個(gè)變量和值添加一個(gè)選項(xiàng):

$ docker run -d --name elasticsearch \

? ? -p 9201:9201 --network=elasticsearch_network \

? ? -e ELASTICSEARCH_PORT_NUMBER=9201 \

? ? -v /path/to/elasticsearch-data-persistence:/bitnami/elasticsearch/data \

? ? registry.cn-hangzhou.aliyuncs.com/qingcloudtech/elasticsearch

可用變量:

BITNAMI_DEBUG:增加初始化日志的詳細(xì)程度。默認(rèn)false

ELASTICSEARCH_EXTRA_FLAGS:elasticsearch守護(hù)進(jìn)程的額外命令行參數(shù)

ELASTICSEARCH_CLUSTER_NAME:Elasticsearch 集群名稱(chēng)卜朗。默認(rèn)值:elasticsearch-cluster

ELASTICSEARCH_CLUSTER_HOSTS:用于設(shè)置集群的elasticsearch主機(jī)列表拔第。可用的分隔符為“ ”场钉、“,”和“;”蚊俺。沒(méi)有默認(rèn)值。

ELASTICSEARCH_CLUSTER_MASTER_HOSTS:符合elasticsearch master資格的主機(jī)列表惹悄〈航校可用的分隔符為“ ”、“,”和“;”泣港。如果未提供任何值暂殖,它將具有與 相同的值ELASTICSEARCH_CLUSTER_HOSTS。

ELASTICSEARCH_IS_DEDICATED_NODE:Elasticsearch 節(jié)點(diǎn)充當(dāng)“專(zhuān)用節(jié)點(diǎn)”当纱。默認(rèn)值:false

ELASTICSEARCH_NODE_TYPE:充當(dāng)“專(zhuān)用節(jié)點(diǎn)”時(shí)的 Elasticsearch 節(jié)點(diǎn)類(lèi)型呛每。有效值:master、data坡氯、coordinating或ingest晨横。

ELASTICSEARCH_NODE_NAME:Elasticsearch 節(jié)點(diǎn)名稱(chēng)。沒(méi)有默認(rèn)值箫柳。

ELASTICSEARCH_BIND_ADDRESS:Elasticsearch 綁定的地址/接口手形。默認(rèn)值:0.0.0.0

ELASTICSEARCH_PORT_NUMBER:Elasticsearch 端口。默認(rèn)值:9200

ELASTICSEARCH_NODE_PORT_NUMBER:Elasticsearch 節(jié)點(diǎn)到節(jié)點(diǎn)端口悯恍。默認(rèn)值:9300

ELASTICSEARCH_PLUGINS:逗號(hào)库糠、分號(hào)或空格分隔的初始化時(shí)安裝的插件列表。沒(méi)有默認(rèn)值涮毫。

ELASTICSEARCH_KEYS:要存儲(chǔ)的以逗號(hào)瞬欧、分號(hào)或空格分隔的鍵值對(duì) (key=value) 列表贷屎。沒(méi)有默認(rèn)值。

ELASTICSEARCH_HEAP_SIZE:用于 Xmx 和 Xms java 堆值的內(nèi)存艘虎。默認(rèn)值:1024m

ELASTICSEARCH_FS_SNAPSHOT_REPO_PATH:Elasticsearch 文件系統(tǒng)快照存儲(chǔ)庫(kù)路徑唉侄。沒(méi)有默認(rèn)值。

ELASTICSEARCH_DATA_DIR_LIST:逗號(hào)野建、分號(hào)或空格分隔的用于數(shù)據(jù)存儲(chǔ)的目錄列表属划。沒(méi)有默認(rèn)值。

設(shè)置集群

可以使用以下環(huán)境變量設(shè)置集群:

ELASTICSEARCH_CLUSTER_NAME:Elasticsearch 集群名稱(chēng)贬墩。默認(rèn)值:elasticsearch-cluster

ELASTICSEARCH_CLUSTER_HOSTS:用于設(shè)置集群的elasticsearch主機(jī)列表榴嗅。可用的分隔符為' ', ',' and ';'. No defaults.

ELASTICSEARCH_CLIENT_NODE:Elasticsearch 節(jié)點(diǎn)充當(dāng) Kibana 應(yīng)用程序的“智能路由器”陶舞。默認(rèn)值:false

ELASTICSEARCH_NODE_NAME:Elasticsearch 節(jié)點(diǎn)名稱(chēng)嗽测。沒(méi)有默認(rèn)值。

ELASTICSEARCH_MINIMUM_MASTER_NODES:法定人數(shù)的最小 Elasticsearch 主節(jié)點(diǎn)肿孵。沒(méi)有默認(rèn)值唠粥。 對(duì)于較大的集群,您可以使用以下環(huán)境變量設(shè)置dedicated nodes:

ELASTICSEARCH_IS_DEDICATED_NODE:Elasticsearch 節(jié)點(diǎn)充當(dāng)dedicated nodes停做。默認(rèn)值: no

ELASTICSEARCH_NODE_TYPE:充當(dāng)dedicated nodes時(shí)的 Elasticsearch 節(jié)點(diǎn)類(lèi)型晤愧。有效值:master, data, coordinating or ingest

ELASTICSEARCH_CLUSTER_MASTER_HOSTS:符合elasticsearch master資格的主機(jī)列表蛉腌」俜荩可用的分隔符為' ', ',' , ';'。如果未提供任何值烙丛,它將具有與ELASTICSEARCH_CLUSTER_HOSTS相同的值驰凛。

第 1 步:創(chuàng)建新網(wǎng)絡(luò)

docker network create elasticsearch_network

步驟2:創(chuàng)建第一個(gè)節(jié)點(diǎn)

docker run --name elasticsearch-node1 \

? --net=elasticsearch_network \

? -p 9200:9200 \

? -e ELASTICSEARCH_CLUSTER_NAME=elasticsearch-cluster \

? -e ELASTICSEARCH_CLUSTER_HOSTS=elasticsearch-node1,elasticsearch-node2 \

? -e ELASTICSEARCH_NODE_NAME=elastic-node1 \

? registry.cn-hangzhou.aliyuncs.com/qingcloudtech/elasticsearch:latest

在上面的命令中永罚,容器被添加到elasticsearch-cluster使用ELASTICSEARCH_CLUSTER_NAME. 該ELASTICSEARCH_CLUSTER_HOSTS參數(shù)設(shè)置設(shè)置集群的節(jié)點(diǎn)的名稱(chēng),因此我們需要為第二個(gè)節(jié)點(diǎn)啟動(dòng)其他容器。最后井联,該ELASTICSEARCH_NODE_NAME參數(shù)允許指定節(jié)點(diǎn)的已知名稱(chēng)力崇,否則elasticsearch將生成一個(gè)隨機(jī)名稱(chēng)反砌。

步驟 3:創(chuàng)建第二個(gè)節(jié)點(diǎn)

docker run --name elasticsearch-node2 \

? --link elasticsearch-node1:elasticsearch-node1 \

? --net=elasticsearch_network \

? -e ELASTICSEARCH_CLUSTER_NAME=elasticsearch-cluster \

? -e ELASTICSEARCH_CLUSTER_HOSTS=elasticsearch-node1,elasticsearch-node2 \

? -e ELASTICSEARCH_NODE_NAME=elastic-node2 \

? registry.cn-hangzhou.aliyuncs.com/qingcloudtech/elasticsearch:latest

在上面的命令中呻拌,一個(gè)新的elasticsearch節(jié)點(diǎn)被添加到由ELASTICSEARCH_CLUSTER_NAME指示的elasticsearch集群中。

您現(xiàn)在已經(jīng)啟動(dòng)并運(yùn)行了一個(gè)兩節(jié)點(diǎn) Elasticsearch 集群媚值,可以通過(guò)添加/刪除節(jié)點(diǎn)來(lái)擴(kuò)展該集群狠毯。

通過(guò) Docker Compose,可以使用以下命令設(shè)置集群配置:

version: '2'

services:

? elasticsearch-node1:

? ? image: registry.cn-hangzhou.aliyuncs.com/qingcloudtech/elasticsearch:latest

? ? environment:

? ? ? - ELASTICSEARCH_CLUSTER_NAME=elasticsearch-cluster

? ? ? - ELASTICSEARCH_CLUSTER_HOSTS=elasticsearch-node1,elasticsearch-node2

? ? ? - ELASTICSEARCH_NODE_NAME=elastic-node1

? elasticsearch-node2:

? ? image: registry.cn-hangzhou.aliyuncs.com/qingcloudtech/elasticsearch:latest

? ? environment:

? ? ? - ELASTICSEARCH_CLUSTER_NAME=elasticsearch-cluster

? ? ? - ELASTICSEARCH_CLUSTER_HOSTS=elasticsearch-node1,elasticsearch-node2

? ? ? - ELASTICSEARCH_NODE_NAME=elastic-node2

配置文件

為了使用自定義配置文件而不是開(kāi)箱即用的默認(rèn)配置文件褥芒,您可以創(chuàng)建一個(gè)名為的文件elasticsearch.yml并將其掛載于/opt/bitnami/elasticsearch/config/elasticsearch.yml以覆蓋默認(rèn)配置:

docker run -d --name elasticsearch \

? ? -p 9201:9201 \

? ? -v /path/to/elasticsearch.yml:/opt/bitnami/elasticsearch/config/elasticsearch.yml \

? ? -v /path/to/elasticsearch-data-persistence:/bitnami/elasticsearch/data \

? ? registry.cn-hangzhou.aliyuncs.com/qingcloudtech/elasticsearch:latest

或者通過(guò)更改docker-compose.yml文件:

elasticsearch:

? ...

? volumes:

? ? - /path/to/elasticsearch.yml:/opt/bitnami/elasticsearch/config/elasticsearch.yml

? ? - /path/to/elasticsearch-data-persistence:/bitnami/elasticsearch/data

? ...

請(qǐng)注意嚼松,整個(gè)配置文件將被提供的默認(rèn)配置文件替換;確保您提供的語(yǔ)法和字段設(shè)置正確且詳盡。

如果您寧愿擴(kuò)展而不是用您的設(shè)置替換默認(rèn)配置惜颇,請(qǐng)掛載自定義配置文件到容器/opt/bitnami/elasticsearch/config/my_elasticsearch.yml。

初始化一個(gè)新實(shí)例

當(dāng)容器第一次執(zhí)行時(shí)少辣,它會(huì)執(zhí)行/docker-entrypoint-initdb.d目錄下擴(kuò)展名為.sh的文件.

為了將自定義文件放入 Docker 容器中凌摄,您可以將它們掛載為卷。

日志

docker logs elasticsearch

或使用 Docker Compose:

docker-compose logs elasticsearch

如果您希望以不同方式使用容器日志漓帅,您可以使用該選項(xiàng)配置容器日志記錄驅(qū)動(dòng)程序锨亏。--log-driver在默認(rèn)配置中,docker 使用json-file驅(qū)動(dòng)程序忙干。

此外器予,如果您想修改 Elasticsearch 日志記錄配置,可以通過(guò)覆蓋該文件來(lái)完成/opt/bitnami/elasticsearch/config/log4j2.properties捐迫。該文件的語(yǔ)法可以在 Elasticsearch日志記錄文檔中找到乾翔。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市施戴,隨后出現(xiàn)的幾起案子反浓,更是在濱河造成了極大的恐慌,老刑警劉巖赞哗,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雷则,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡肪笋,警方通過(guò)查閱死者的電腦和手機(jī)月劈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)藤乙,“玉大人猜揪,你說(shuō)我怎么就攤上這事⊥搴校” “怎么了湿右?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)罚勾。 經(jīng)常有香客問(wèn)我毅人,道長(zhǎng),這世上最難降的妖魔是什么尖殃? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任丈莺,我火速辦了婚禮,結(jié)果婚禮上送丰,老公的妹妹穿的比我還像新娘缔俄。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布俐载。 她就那樣靜靜地躺著蟹略,像睡著了一般。 火紅的嫁衣襯著肌膚如雪遏佣。 梳的紋絲不亂的頭發(fā)上挖炬,一...
    開(kāi)封第一講書(shū)人閱讀 51,521評(píng)論 1 304
  • 那天,我揣著相機(jī)與錄音状婶,去河邊找鬼意敛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛膛虫,可吹牛的內(nèi)容都是我干的草姻。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼稍刀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼撩独!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起账月,我...
    開(kāi)封第一講書(shū)人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤跌榔,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后捶障,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體僧须,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年项炼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了担平。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡锭部,死狀恐怖暂论,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拌禾,我是刑警寧澤取胎,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站湃窍,受9級(jí)特大地震影響闻蛀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜您市,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一觉痛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧茵休,春花似錦薪棒、人聲如沸手蝎。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)棵介。三九已至,卻和暖如春吧史,著一層夾襖步出監(jiān)牢的瞬間鞍时,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工扣蜻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人及塘。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓莽使,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親笙僚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子芳肌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

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

  • RabbitMQ標(biāo)準(zhǔn)軟件基于Bitnami RabbitMQ 構(gòu)建。當(dāng)前版本為3.12 你可以通過(guò)輕云UC部署工具...
    qinghub閱讀 1,058評(píng)論 0 1
  • Kafka docker 容器化部署 Kafka標(biāo)準(zhǔn)軟件基于Bitnami Kafka 構(gòu)建肋层。當(dāng)前版本為3.6.1...
    qinghub閱讀 3,191評(píng)論 0 1
  • PostgreSQL標(biāo)準(zhǔn)軟件基于Bitnami PostgreSQL 構(gòu)建亿笤。當(dāng)前版本為16.1.0 你可以通過(guò)輕云...
    qinghub閱讀 1,400評(píng)論 0 1
  • 輕云Cassandra標(biāo)準(zhǔn)軟件基于Bitnami cassandra 構(gòu)建。當(dāng)前版本為4.0.12 你可以通過(guò)輕云...
    qinghub閱讀 449評(píng)論 0 1
  • Etcd標(biāo)準(zhǔn)軟件基于Bitnami Etcd 構(gòu)建栋猖。當(dāng)前版本為3.5.11 你可以通過(guò)輕云UC部署工具直接安裝部署...
    輕云科技閱讀 344評(píng)論 0 1