使用Docker?Compose搭建部署ElasticSearch的配置過(guò)程
什么是 Elasticsearch?
Elasticsearch 是一個(gè)分布式的開(kāi)源搜索和分析引擎,適用于所有類(lèi)型的數(shù)據(jù),包括文本、數(shù)字、地理空間、結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。Elasticsearch 在Apache Lucene 的基礎(chǔ)上開(kāi)發(fā)而成,由 Elasticsearch N.V.(即現(xiàn)在的 Elastic)于 2010 年首次發(fā)布。Elasticsearch 以其簡(jiǎn)單的 REST 風(fēng)格 API、分布式特性、速度和可擴(kuò)展性而聞名,是 Elastic Stack 的核心組件;Elastic Stack 是適用于數(shù)據(jù)采集、充實(shí)、存儲(chǔ)、分析和可視化的一組開(kāi)源工具。人們通常將Elastic Stack 稱(chēng)為 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列豐富的輕量型數(shù)據(jù)采集代理,這些代理統(tǒng)稱(chēng)為Beats,可用來(lái)向 Elasticsearch 發(fā)送數(shù)據(jù)。
Elasticsearch 的用途是什么?
Elasticsearch 在速度和可擴(kuò)展性方面都表現(xiàn)出色,而且還能夠索引多種類(lèi)型的內(nèi)容,這意味著其可用于多種用例:
- 應(yīng)用程序搜索
- 網(wǎng)站搜索
- 企業(yè)搜索
- 日志處理和分析
- 基礎(chǔ)設(shè)施指標(biāo)和容器監(jiān)測(cè)
- 應(yīng)用程序性能監(jiān)測(cè)
- 地理空間數(shù)據(jù)分析和可視化
- 安全分析
- 業(yè)務(wù)分析
Elasticsearch 的工作原理是什么?
原始數(shù)據(jù)會(huì)從多個(gè)來(lái)源(包括日志、系統(tǒng)指標(biāo)和網(wǎng)絡(luò)應(yīng)用程序)輸入到 Elasticsearch 中。數(shù)據(jù)采集指在 Elasticsearch 中進(jìn)行索引之前解析、標(biāo)準(zhǔn)化并充實(shí)這些原始數(shù)據(jù)的過(guò)程。這些數(shù)據(jù)在 Elasticsearch 中索引完成之后,用戶(hù)便可針對(duì)他們的數(shù)據(jù)運(yùn)行復(fù)雜的查詢(xún),并使用聚合來(lái)檢索自身數(shù)據(jù)的復(fù)雜匯總。在 Kibana 中,用戶(hù)可以基于自己的數(shù)據(jù)創(chuàng)建強(qiáng)大的可視化,分享儀表板,并對(duì) Elastic Stack 進(jìn)行管理。
Elasticsearch 索引是什么?
Elasticsearch 索引指相互關(guān)聯(lián)的文檔集合。Elasticsearch 會(huì)以 JSON 文檔的形式存儲(chǔ)數(shù)據(jù)。每個(gè)文檔都會(huì)在一組鍵(字段或?qū)傩缘拿Q(chēng))和它們對(duì)應(yīng)的值(字符串、數(shù)字、布爾值、日期、數(shù)值組、地理位置或其他類(lèi)型的數(shù)據(jù))之間建立聯(lián)系。
Elasticsearch 使用的是一種名為倒排索引的數(shù)據(jù)結(jié)構(gòu),這一結(jié)構(gòu)的設(shè)計(jì)可以允許十分快速地進(jìn)行全文本搜索。倒排索引會(huì)列出在所有文檔中出現(xiàn)的每個(gè)特有詞匯,并且可以找到包含每個(gè)詞匯的全部文檔。
在索引過(guò)程中,Elasticsearch 會(huì)存儲(chǔ)文檔并構(gòu)建倒排索引,這樣用戶(hù)便可以近實(shí)時(shí)地對(duì)文檔數(shù)據(jù)進(jìn)行搜索。索引過(guò)程是在索引 API 中啟動(dòng)的,通過(guò)此API 您既可向特定索引中添加 JSON 文檔,也可更改特定索引中的 JSON 文檔。
說(shuō)明
由于我本機(jī)配置較低,無(wú)法開(kāi)啟多臺(tái)虛擬機(jī),ES的集群需要用到不同的ip,故而只搭建單機(jī),不做集群。
一、目錄準(zhǔn)備
mkdir /docker/es mkdir /docker/es/data mkdir /docker/es/config mkdir /docker/es/plugins
二、es配置準(zhǔn)備
cd /docker/es vi elasticsearch.yml
使用以下配置:
# 集群名稱(chēng) cluster.name: elasticsearch-cluster # 節(jié)點(diǎn)名稱(chēng) node.name: es-node-1 # 綁定host,0.0.0.0代表當(dāng)前節(jié)點(diǎn)的ip network.host: 0.0.0.0 # 設(shè)置其它節(jié)點(diǎn)和該節(jié)點(diǎn)交互的ip地址,如果不設(shè)置它會(huì)自動(dòng)判斷,值必須是個(gè)真實(shí)的ip地址(本機(jī)ip) network.publish_host: 192.168.200.135 # 設(shè)置對(duì)外服務(wù)的http端口,默認(rèn)為9200 http.port: 9200 # 設(shè)置節(jié)點(diǎn)間交互的tcp端口,默認(rèn)是9300 transport.tcp.port: 9300 # 是否支持跨域,默認(rèn)為false http.cors.enabled: true # 當(dāng)設(shè)置允許跨域,默認(rèn)為*,表示支持所有域名,如果我們只是允許某些網(wǎng)站能訪問(wèn),那么可以使用正則表達(dá)式。比如只允許本地地址。 /https?:\/\/localhost(:[0-9]+)?/ http.cors.allow-origin: "*" # 表示這個(gè)節(jié)點(diǎn)是否可以充當(dāng)主節(jié)點(diǎn) node.master: true # 是否充當(dāng)數(shù)據(jù)節(jié)點(diǎn) node.data: true # 所有主從節(jié)點(diǎn)ip:port #discovery.seed_hosts: ["192.168.200.135:9300"] #本地只有一個(gè)節(jié)點(diǎn),無(wú)法正常啟動(dòng),先注釋 # 這個(gè)參數(shù)決定了在選主過(guò)程中需要 有多少個(gè)節(jié)點(diǎn)通信 預(yù)防腦裂 N/2+1 discovery.zen.minimum_master_nodes: 1 #初始化主節(jié)點(diǎn) #cluster.initial_master_nodes: ["es-node-1"] #本地只有一個(gè)節(jié)點(diǎn),無(wú)法正常啟動(dòng),先注釋
三、準(zhǔn)備docker-compose.yml
vi docker-compose.yml
內(nèi)容如下:
version: '3' services: elasticsearch: image: elasticsearch:6.8.13 restart: always hostname: es1 container_name: es-single volumes: - /docker/es/data:/usr/share/elasticsearch/data - /docker/es/plugins:/usr/share/elasticsearch/plugins - /docker/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml environment: - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - discovery.type=single-node ports: - '9200:9200' #java、集群通信端口 - '9300:9300' #http通信端口 privileged: true #環(huán)境變量
四、啟動(dòng)容器
docker-compose up -d
五、查看
docker-compose ps
如果啟動(dòng)是吧,可以使用docker container logs 容器id/es-single logs
查看啟動(dòng)日志
參考:
docker部署redis/mongodb/rabbitmq中的es小節(jié)
如果出現(xiàn)啟動(dòng)日志中出現(xiàn)java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes
,需要給data目錄設(shè)置權(quán)限 chmod 777 /docker/es/data
到此這篇關(guān)于使用DockerCompose搭建部署ElasticSearch的文章就介紹到這了,更多相關(guān)DockerCompose部署ElasticSearch內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用Docker搭建本地https環(huán)境的完整步驟
這篇文章主要給大家介紹了關(guān)于如何利用Docker搭建本地https環(huán)境的完整步驟,文中通過(guò)示例代碼將實(shí)現(xiàn)的步驟介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2018-04-04群暉NAS利用Docker容器搭建KMS激活服務(wù)器實(shí)現(xiàn)激活windows系統(tǒng)和office(操作步驟)
本文跟大家分享一下如何利用群暉NAS的Docker容器套件搭建KMS服務(wù)器,并演示如何利用我們自己的KMS服務(wù)器激活Windows操作系統(tǒng)與Microsoft Office,感興趣的朋友跟隨小編一起看看吧2021-05-05Docker自定義安裝更改默認(rèn)安裝位置簡(jiǎn)單方法
安裝Docker的過(guò)程相對(duì)簡(jiǎn)單,你只需要雙擊下載的安裝程序并按照提示進(jìn)行安裝即可。在安裝過(guò)程中,你可以選擇自定義安裝選項(xiàng),這篇文章主要給大家介紹了關(guān)于Docker自定義安裝更改默認(rèn)安裝位置的簡(jiǎn)單方法,需要的朋友可以參考下2024-01-01docker image tag為什么出現(xiàn)none的原因及解決
當(dāng)我們使用docker加載新的鏡像時(shí),有時(shí)候會(huì)發(fā)現(xiàn)Repository和Tag名稱(chēng)都為none的情況,這通常是由于沒(méi)有指定正確的標(biāo)簽名稱(chēng)或者倉(cāng)庫(kù)名稱(chēng)所導(dǎo)致的,本文主要介紹了docker image tag為什么出現(xiàn)none的原因及解決,感興趣的可以了解一下2023-10-10Docker容器編譯LNMP的實(shí)現(xiàn)示例
本文主要介紹了Docker容器編譯LNMP,使用Docker容器基于centos鏡像分別制作nginx鏡像,mysql鏡像和php鏡像使用編譯安裝的方式,具有一定的參考價(jià)值,感興趣的可以了解一下2021-12-12替換docker容器中的一個(gè)文件的實(shí)現(xiàn)
在某些情況下,我們可能確實(shí)需要更新容器內(nèi)的文件,本文主要介紹了替換docker容器中的一個(gè)文件的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06