ElasticSearch+Kibana通過Docker部署到Linux服務器中操作方法

1、ElasticSearch概念
Elasticsearch 是一個基于 Lucene 構建的開源搜索引擎,它提供了一個分布式、RESTful 風格的搜索和數(shù)據(jù)分析引擎。Elasticsearch 能夠對大量數(shù)據(jù)進行快速全文搜索,并且具有非常好的水平擴展能力,這意味著當你需要處理更多數(shù)據(jù)時,可以通過增加更多的服務器來提升性能。
文檔和字段:elasticsearch是面向文檔(Document)存儲的,可以是數(shù)據(jù)庫中的一條商品數(shù)據(jù),一個訂單信息。文檔數(shù)據(jù)會被序列化為json格式后存儲在elasticsearch中,原本數(shù)據(jù)庫中的一行數(shù)據(jù)就是ES中的一個JSON文檔;而數(shù)據(jù)庫中每行數(shù)據(jù)都包含很多列,這些列就轉換為JSON文檔中的字段(Field);
索引和映射:將類型相同的文檔集中在一起管理,稱為索引(Index),我們可以把索引當做是數(shù)據(jù)庫中的表;
數(shù)據(jù)庫的表會有約束信息,用來定義表的結構、字段的名稱、類型等信息。因此,索引庫中就有映射(mapping),是索引中文檔的字段約束信息,類似表的結構約束。
2、ElasticSearch、Kibana和IK分詞器部署
1.1、安裝ElasticSearch(版本:7.12.1)
1、在虛擬機中找到一個用于存放所有鏡像的文件夾位置,進入到選中的文件夾層級拉取鏡像到本地服務器;(推薦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:設置環(huán)境變量。
- ES_JAVA_OPTS=-Xms512m -Xmx512m:為 ElasticSearch 的 JVM 設置堆內存大小。
- discovery.type=single-node:將 ElasticSearch 配置為單節(jié)點模式,適合開發(fā)或測試環(huán)境,避免集群配置的復雜性。
- -v:掛載數(shù)據(jù)卷。
- es-data:/usr/share/elasticsearch/data:將主機的 es-data 數(shù)據(jù)卷掛載到容器內的 /usr/share/elasticsearch/data 目錄。
- es-plugins:/usr/share/elasticsearch/plugins:將主機的 es-plugins 數(shù)據(jù)卷掛載到容器內的 /usr/share/elasticsearch/plugins 目錄。
- --privileged:賦予容器特權模式。
- --network hm-net:將容器連接到名為 hm-net 的 Docker 網(wǎng)絡。
- -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,返回如下內容表示成功啟動了;
{
"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
結果如下:
[
{
"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
關于ik分詞器 主要包含兩種模式:
- ik_smart:智能語義切分
- ik_max_word:最細粒度切分
但有時ik分詞器也無法做到對一些網(wǎng)絡熱詞拆分,這就需要ik分詞器的擴展詞匯的功能;(/_data/ik/config) 注意,如果采用在線安裝的通過,默認是沒有config目錄的,需要找網(wǎng)絡上的資料提供的ik下的config上傳至對應目錄。 在IKAnalyzer.cfg.xml配置文件內容中添加:
<?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目錄下復制一個配置文件進行修改,文件中就是需要組合的詞語了;
再次重啟es:
docker restart es
到此這篇關于ElasticSearch+Kibana通過Docker部署到Linux服務器中的文章就介紹到這了,更多相關ElasticSearch+Kibana通過Docker部署內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
淺談docker學習之docker數(shù)據(jù)卷(volume)
這篇文章主要介紹了淺談docker學習之docker數(shù)據(jù)卷(volume),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12
詳解Docker方式實現(xiàn)MySql 主從復制(實踐篇)
本篇文章主要介紹了詳解Docker方式實現(xiàn)MySql 主從復制(實踐篇),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11

