??1 參考文檔
docker安裝elasticsearch(最詳細(xì)版)| Bright1668-CSDN
es在Windows環(huán)境啟動(dòng)報(bào)錯(cuò) | 你道本部院是個(gè)書生-CSDN
??2 安裝和部署Elasticsearch
2.1 設(shè)置max_map_count
-
查看max_map_count的值 默認(rèn)是
65530
。cat /proc/sys/vm/max_map_count
-
重新設(shè)置max_map_count的值。
sysctl -w vm.max_map_count=262144
2.2 拉取鏡像
docker pull elasticsearch::8.0.1
2.3 創(chuàng)建容器
docker run --name es -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-e xpack.security.enabled=false \
-d elasticsearch:8.0.1
- –name es:設(shè)置容器的名稱為"es"。
- -p 9200:9200 -p 9300:9300:這部分將主機(jī)的端口與容器的端口進(jìn)行映射。
- -e “discovery.type=single-node”:通過設(shè)置此環(huán)境變量,將Elasticsearch配置為單節(jié)點(diǎn)模式。
- -e ES_JAVA_OPTS=“-Xms512m -Xmx512m”:這部分設(shè)置了Elasticsearch的Java虛擬機(jī)(JVM)選項(xiàng)。具體來說,設(shè)置了初始堆大小(Xms)為512MB和最大堆大?。╔mx)為512MB。
- -e xpack.security.enabled=false:此部分設(shè)置了Elasticsearch的安全性選項(xiàng)。通過將
xpack.security.enabled
設(shè)置為false
,禁用了Elasticsearch的安全特性。在實(shí)際生產(chǎn)環(huán)境中,通常會(huì)啟用安全性來保護(hù)Elasticsearch集群。- -d:此選項(xiàng)告訴Docker在后臺(tái)運(yùn)行容器,即以守護(hù)進(jìn)程模式運(yùn)行容器。
- elasticsearch:8.0.1:最后部分指定了要運(yùn)行的Docker鏡像的名稱和版本。
2.4 訪問Elasticsearch
在瀏覽器中導(dǎo)航到http://your_server_ip:9200
,訪問Elasticsearch信息頁面。
??3 安裝Elasticsearch Head
3.1 拉取鏡像和創(chuàng)建容器
# 拉取鏡像
docker pull mobz/elasticsearch-head:5
# 創(chuàng)建容器
docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5
# 啟動(dòng)容器
docker start elasticsearch-head
3.2 訪問Elasticsearch Head
在瀏覽器中導(dǎo)航到http://your_server_ip:9100
,訪問Elasticsearch Head管理頁面。
?? 4 出現(xiàn)的問題
4.1 嘗試連接Easticsearch會(huì)出現(xiàn)無法訪問此網(wǎng)站
-
由于是前后端分離開發(fā),所以會(huì)存在跨域問題,需要在服務(wù)端做CORS的配置。
-
解決辦法:修改docker中elasticsearch的elasticsearch.yml文件。
docker exec -it elasticsearch /bin/bash (進(jìn)不去使用容器id進(jìn)入) vi config/elasticsearch.yml
-
在最下面添加2行。
http.cors.enabled: true http.cors.allow-origin: "*"
-
退出并重啟服務(wù)
exit docker restart elasticsearch-head
4.2 進(jìn)行跨域修改之后還是無法訪問
-
查看日志。
docker logs -f es
-
因?yàn)镋S默認(rèn)會(huì)去官網(wǎng)下載最新的GEO信息,公司內(nèi)網(wǎng)server一般和外網(wǎng)不通或者網(wǎng)速慢,所以會(huì)報(bào)錯(cuò)。
{"@timestamp":"2023-09-03T03:24:59.123Z", "log.level":"ERROR", "message":"exception during geoip databases update", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"elasticsearch[29b38b4a9a99][generic][T#4]","log.logger":"org.elasticsearch.ingest.geoip.GeoIpDownloader","elasticsearch.cluster.uuid":"1tSrvzuJQfaJmy8qyEmwnQ","elasticsearch.node.id":"EzRz2RjkQLC112uJ_BYZUg","elasticsearch.node.name":"29b38b4a9a99","elasticsearch.cluster.name":"docker-cluster","error.type":"java.net.UnknownHostException","error.message":"geoip.elastic.co","error.stack_trace":"java.net.UnknownHostException: geoip.elastic.co\n\tat java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:567)\n\tat ...
-
仍需要編輯config/elasticsearch.yml,在末尾添加。
ingest.geoip.downloader.enabled: false
4.3 Elasticsearch-head操作時(shí)不修改配置,默認(rèn)會(huì)報(bào)406錯(cuò)誤碼
-
修改配置。
#復(fù)制vendor.js到外部 docker cp elasticsearch-head:/usr/src/app/_site/vendor.js /usr/local/ #修改vendor.js vim /usr/src/app/_site/vendor.js
-
編輯vendor.js。
-
6886
行:contentType:"application/x-www-form-urlencoded"
改成contentType:"application/json;charset=UTF-8"
-
7574
行:var inspectData = s.contentType === "application/x-www-form-urlencoded"&&
改成var inspectData = s.contentType === contentType:"application/json;charset=UTF-8&&"
-
-
修改完成在復(fù)制回容器。文章來源:http://www.zghlxwxcb.cn/news/detail-702261.html
docker cp /usr/local/vendor.js elasticsearch-head:/usr/src/app/_site
-
重啟elasticsearch-head。文章來源地址http://www.zghlxwxcb.cn/news/detail-702261.html
docker restart elasticsearch-head
到了這里,關(guān)于使用Docker安裝和部署Elasticsearch出現(xiàn)問題以及解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!