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
簡(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日志記錄文檔中找到乾翔。