ElasticSearch+Kibana通過Docker部署到Linux服務(wù)器中操作方法
1、ElasticSearch概念
Elasticsearch 是一個基于 Lucene 構(gòu)建的開源搜索引擎,它提供了一個分布式、RESTful 風格的搜索和數(shù)據(jù)分析引擎。Elasticsearch 能夠?qū)Υ罅繑?shù)據(jù)進行快速全文搜索,并且具有非常好的水平擴展能力,這意味著當你需要處理更多數(shù)據(jù)時,可以通過增加更多的服務(wù)器來提升性能。
文檔和字段:elasticsearch是面向文檔(Document)存儲的,可以是數(shù)據(jù)庫中的一條商品數(shù)據(jù),一個訂單信息。文檔數(shù)據(jù)會被序列化為json格式后存儲在elasticsearch中,原本數(shù)據(jù)庫中的一行數(shù)據(jù)就是ES中的一個JSON文檔;而數(shù)據(jù)庫中每行數(shù)據(jù)都包含很多列,這些列就轉(zhuǎn)換為JSON文檔中的字段(Field);
索引和映射:將類型相同的文檔集中在一起管理,稱為索引(Index),我們可以把索引當做是數(shù)據(jù)庫中的表;
數(shù)據(jù)庫的表會有約束信息,用來定義表的結(jié)構(gòu)、字段的名稱、類型等信息。因此,索引庫中就有映射(mapping),是索引中文檔的字段約束信息,類似表的結(jié)構(gòu)約束。
2、ElasticSearch、Kibana和IK分詞器部署
1.1、安裝ElasticSearch(版本:7.12.1)
1、在虛擬機中找到一個用于存放所有鏡像的文件夾位置,進入到選中的文件夾層級拉取鏡像到本地服務(wù)器;(推薦root~)
docker pull elasticsearch:7.12.1
2、通過下面的Docker命令安裝單機版的ElasticSearch;
docker run -d \ --name es \ -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \ -e "discovery.type=single-node" \ -v es-data:/usr/share/elasticsearch/data \ -v es-plugins:/usr/share/elasticsearch/plugins \ --privileged \ --network hm-net \ -p 9200:9200 \ -p 9300:9300 \ elasticsearch:7.12.1
注釋:
- docker run:運行一個新的容器。
- -d:以“后臺模式”(detached mode)運行容器。
- --name es:為容器指定一個名稱,這里命名為es。
- -e:設(shè)置環(huán)境變量。
- ES_JAVA_OPTS=-Xms512m -Xmx512m:為 ElasticSearch 的 JVM 設(shè)置堆內(nèi)存大小。
- discovery.type=single-node:將 ElasticSearch 配置為單節(jié)點模式,適合開發(fā)或測試環(huán)境,避免集群配置的復(fù)雜性。
- -v:掛載數(shù)據(jù)卷。
- es-data:/usr/share/elasticsearch/data:將主機的 es-data 數(shù)據(jù)卷掛載到容器內(nèi)的 /usr/share/elasticsearch/data 目錄。
- es-plugins:/usr/share/elasticsearch/plugins:將主機的 es-plugins 數(shù)據(jù)卷掛載到容器內(nèi)的 /usr/share/elasticsearch/plugins 目錄。
- --privileged:賦予容器特權(quán)模式。
- --network hm-net:將容器連接到名為 hm-net 的 Docker 網(wǎng)絡(luò)。
- -p:映射端口。
- 9200:9200:將主機的 9200 端口映射到容器的 9200 端口。
- 9300:9300:將主機的 9300 端口映射到容器的 9300 端口。
- elasticsearch:7.12.1:指定要運行的鏡像名稱和版本。這里使用的是 ElasticSearch 的 7.12.1 版本。
3、驗證ElasticSearch是否運行;
# 檢查容器是否正常運行 docker ps # 查看容器運行日志文件(-f 實時查看) docker logs -f es
4、最后可以訪問ElasticSearch的接口:http://localhost:9200,返回如下內(nèi)容表示成功啟動了;
{ "name" : "node-1", "cluster_name" : "docker-cluster", "cluster_uuid" : "abc123", "version" : { "number" : "8.10.0", "build_flavor" : "default", "build_type" : "docker", "build_hash" : "abc123", "build_date" : "2023-10-01T00:00:00.000Z", "build_snapshot" : false, "lucene_version" : "9.7.0", "minimum_wire_compatibility_version" : "7.17.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "You Know, for Search" }
注:8以上版本的JavaAPI變化很大,有需要的自行研究;
1.2、安裝Kibana(ElasticSearch官方提供的可視化工具)
1、通過下面的Docker命令拉取Kibana鏡像(注:Kibana的版本號要和ElasticSearch一致,后面提到的ik分詞器也是一樣)
docker pull kibana:7.12.1
2、通過下面的docker命令部署Kibana工具
docker run -d \ --name kibana \ -e ELASTICSEARCH_HOSTS=http://es:9200 \ --network=hm-net \ -p 5601:5601 \ kibana:7.12.1
3、檢查完成后,訪問5601端口即可
- 選擇Explore on my own之后,進入主頁面;
- 然后選中Dev tools,進入開發(fā)工具頁面;
1.3、安裝IK分詞器(版本保持一致)
方法一、在線安裝
執(zhí)行以下命令:
docker exec -it es ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip
重啟es容器:
docker restart es
方法二、離線安裝(網(wǎng)速差的情況)
先查看之前安裝的ElasticSearch容器的plugins數(shù)據(jù)卷目錄:
docker volume inspect es-plugins
結(jié)果如下:
[
{
"CreatedAt": "2024-11-06T10:06:34+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/es-plugins/_data",
"Name": "es-plugins",
"Options": null,
"Scope": "local"
}
]
可以看到elasticsearch的插件掛載到了/var/lib/docker/volumes/es-plugins/_data這個目錄,我們需要把IK分詞器上傳至這個目錄。
這里的ik分詞器需要自己找,直接將ik分詞器上傳到/var/lib/docker/volumes/es-plugins/_data這個目錄下;
最后重啟es容器:
docker restart es
關(guān)于ik分詞器 主要包含兩種模式:
- ik_smart:智能語義切分
- ik_max_word:最細粒度切分
但有時ik分詞器也無法做到對一些網(wǎng)絡(luò)熱詞拆分,這就需要ik分詞器的擴展詞匯的功能;(/_data/ik/config) 注意,如果采用在線安裝的通過,默認是沒有config目錄的,需要找網(wǎng)絡(luò)上的資料提供的ik下的config上傳至對應(yīng)目錄。 在IKAnalyzer.cfg.xml配置文件內(nèi)容中添加:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>IK Analyzer 擴展配置</comment> <!--用戶可以在這里配置自己的擴展字典 *** 添加擴展詞典--> <entry key="ext_dict">ext.dic</entry> </properties>
在IK分詞器的config目錄新建一個 ext.dic,可以參考config目錄下復(fù)制一個配置文件進行修改,文件中就是需要組合的詞語了;
再次重啟es:
docker restart es
到此這篇關(guān)于ElasticSearch+Kibana通過Docker部署到Linux服務(wù)器中的文章就介紹到這了,更多相關(guān)ElasticSearch+Kibana通過Docker部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker搭建MySQL5.7主從復(fù)制的實現(xiàn)
本文主要介紹了Docker搭建MySQL5.7主從復(fù)制的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06Docker容器的調(diào)試技巧之docker logs與docker service logs
這篇文章主要介紹了Docker容器的調(diào)試技巧之docker logs與docker service logs,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01Docker中使用Nginx代理多個應(yīng)用站點的方法
這篇文章主要介紹了Docker中使用Nginx代理多個應(yīng)用站點的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12