Docker安裝部署elasticsearch
在我發(fā)的上一個博客里記錄了如何安裝7.x版本的elasticsearch,我在跟著教學(xué)學(xué)習(xí)Java Rest Client的時候發(fā)現(xiàn)在elastic的官網(wǎng)上Java Rest Client已經(jīng)被標(biāo)注為過時了,elastc提供了全新的Elasticsearch Java API Client,作為程序員,應(yīng)該勇于去嘗試新技術(shù),因此我決定繼續(xù)嘗試使用elasticsearch8.x版本。
elasticsearch已經(jīng)出到8.10.4,官方推薦使用8.10.2,docker鏡像有8.10.2但暫時沒有8.10.4,IK分詞器提供了8.10.4但沒有提供8.10.2。
綜合考慮之下原則8.10.2(畢竟官方都沒提供8.10.4的鏡像,我總不會閑到另辟蹊徑自己打包8.10.4版本的鏡像吧),IK分詞器版本問題將使用一個sao操作解決
拉取鏡像
docker pull elasticsearch:8.10.2
創(chuàng)建數(shù)據(jù)卷
一般來說,我們不希望在elasticsearch容器停止時丟失elasticsearch中的文件,因此我們創(chuàng)建一個數(shù)據(jù)卷來關(guān)聯(lián)elasticsearch的data文件夾。在elasticsearch的使用中我們可能會安裝各種插件,因此創(chuàng)建了另一個數(shù)據(jù)卷來關(guān)聯(lián)elasticsearch的plugins文件夾
docker volume create es-data
docker volume create es-plugins
創(chuàng)建網(wǎng)絡(luò)
一般來說,我們在使用elasticsearch的時候會結(jié)合kibana一起使用,為了他們能夠正常關(guān)聯(lián),我們創(chuàng)建一個網(wǎng)絡(luò)來連接他們
docker net create es-net
elasticsearch容器,啟動!
因?yàn)槲沂菃螜C(jī)啟動,所以將discovery.type設(shè)置為single-node
es-net為上一步我們創(chuàng)建的網(wǎng)絡(luò)名
docker run \
-d \
--name es \
--net es-net \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
elasticsearch:8.10.2
訪問9200端口,這次你不會看到任何東西,因?yàn)?.x版本已經(jīng)默認(rèn)采用https了。
訪問https://[yourIp]:9200,此時會顯示這是一個不安全的連接,選擇無視風(fēng)險繼續(xù)訪問,此時瀏覽器會彈出一個窗口讓你輸入用戶名和密碼。
elastic是一個默認(rèn)賬戶,而其密碼是隨機(jī)生成的。
首先我們進(jìn)入elasticsearch容器中執(zhí)行重置密碼的命令
docker exec -it es /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
接下來新生成的密碼將會打印到控制臺。
將用戶名和密碼輸入瀏覽器中的登錄窗口。出現(xiàn)下面這串字符串就成功了。
{
"name": "ab675a286e72",
"cluster_name": "docker-cluster",
"cluster_uuid": "ZdLfD65lQdKStAJi1yWMMQ",
"version": {
"number": "7.17.13",
"build_flavor": "default",
"build_type": "docker",
"build_hash": "2b211dbb8bfdecaf7f5b44d356bdfe54b1050c13",
"build_date": "2023-08-31T17:33:19.958690787Z",
"build_snapshot": false,
"lucene_version": "8.11.1",
"minimum_wire_compatibility_version": "6.8.0",
"minimum_index_compatibility_version": "6.0.0-beta1"
},
"tagline": "You Know, for Search"
}
踩坑:虛擬機(jī)磁盤擴(kuò)容
我之前選擇安裝7.x版本的原因就是我執(zhí)行重置密碼時會顯示集群狀態(tài)為RED執(zhí)行失敗。我在查看了運(yùn)行日志后發(fā)現(xiàn)是因?yàn)榇疟P占用達(dá)到了預(yù)警線90%,只需給磁盤擴(kuò)容就好了。
這里只分享圖形界面的擴(kuò)容方法,以ubuntu為例。
首先虛擬機(jī)關(guān)機(jī),在虛擬機(jī)設(shè)置界面選擇磁盤擴(kuò)容。
開機(jī),安裝工具Gparted
apt-get install gparted
然后選擇你要擴(kuò)充的分區(qū)。點(diǎn)擊左上角的擴(kuò)容,如果顯示無法給只讀權(quán)限的分區(qū)擴(kuò)容,右鍵查看該分區(qū)掛載在哪個路徑下,使用root用戶修改權(quán)限
我這是掛載在/和/var/snap/firefox/common/host-hunspell兩個路徑,所以輸入以下命令結(jié)束。
mount -o remount -rw /
mount -o remount -rw /var/snap/firefox/common/host-hunspell
Docker安裝部署Kibana
Kibana 是為 Elasticsearch設(shè)計(jì)的開源分析和可視化平臺
拉取鏡像
docker pull kibana:8.10.2
Kibana容器,啟動!
ELASTICSEARCH_HOSTS環(huán)境變量為elasticsearch服務(wù)的地址,其中http://es:9200中的es是我們運(yùn)行elasticsearch容器時起的別名
es-net為我們在之前創(chuàng)建的網(wǎng)絡(luò)的名稱
docker run \
-d \
--name kibana \
--net es-net \
-p 5601:5601 \
kibana:8.10.2
訪問5601端口,會要求你輸入elasticsearch的令牌
進(jìn)入elasticsearch容器獲取kibana的令牌
docker exec -it es /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
接下來會要求你輸入六位數(shù)的kibana驗(yàn)證碼,進(jìn)入kibana容器獲取驗(yàn)證碼
docker exec -it kibana bin/kibana-verification-code
完成以上兩步之后你只需要輸入elasticsearch的用戶名和密碼就能正常使用kibana了
安裝IK分詞器
IK分詞器沒有8.10.2版本,我們先下載8.10.4版本,按之前的步驟來。
安裝方式一:直接從github上下載
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.10.4/elasticsearch-analysis-ik-8.10.4.zip
安裝方式二
之前我們將es-plugins數(shù)據(jù)卷掛載到了es容器內(nèi)的plugins文件夾。
我們先使用魔法從github上下載
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.10.4/elasticsearch-analysis-ik-8.10.4.zip
然后將壓縮包解壓到數(shù)據(jù)卷對應(yīng)的位置,然后重啟elasticsearch容器即可。文章來源:http://www.zghlxwxcb.cn/news/detail-751357.html
修改版本信息
打開IK分詞器所在的位置,打開 plugin-descriptor.properties 文件,將version和elasticsearch.version的值從8.10.4修改為8.10.2,重啟容器完成。文章來源地址http://www.zghlxwxcb.cn/news/detail-751357.html
到了這里,關(guān)于Docker安裝部署[8.x]版本Elasticsearch+Kibana+IK分詞器的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!