前言
CentOS 7下安裝ElasticSearch7.6.1詳細(xì)教程
ElasticSearch客戶端Kibana7.6.1安裝教程
ElasticSearch分詞器IK安裝教程
Elasticsearch-head插件安裝教程
想要學(xué)習(xí)ElasticSearch技術(shù),需要在服務(wù)器搭建ElasticSearch環(huán)境。
一、安裝Elasticsearch
1、版本聲明
CenOS:7;
JDK:1.8;
Elasticsearch:7.6.1;
2、創(chuàng)建普通用戶
ES不能使用root用戶來(lái)啟動(dòng),必須使用普通用戶來(lái)安裝啟動(dòng)。
我們必須創(chuàng)建一個(gè)es專門的用戶。這里我們創(chuàng)建一個(gè)普通用戶以及定義一些常規(guī)目錄用于存放我們的數(shù)據(jù)文件以及安裝包等。
使用root用戶在服務(wù)器執(zhí)行以下命令。
先創(chuàng)建組, 再創(chuàng)建用戶:
1)創(chuàng)建 elasticsearch 用戶組
[root@localhost ~] groupadd elasticsearch
2)創(chuàng)建用戶 shcms 并設(shè)置密碼
[root@localhost ~] useradd shcms
[root@localhost ~] passwd shcms
3) 創(chuàng)建es文件夾,并修改owner為cms用戶
[root@localhost ~] mkdir -p /opt/es
4)用戶es 添加到 elasticsearch 用戶組
[root@localhost ~] usermod -G elasticsearch shcms
# 此處我們需要先到/opt/es目錄下創(chuàng)建elasticsearch-7.6.1目錄,然后才能執(zhí)行下面的命令
[root@localhost ~] chown -R shcms /opt/es/elasticsearch-7.6.1
5)設(shè)置sudo權(quán)限
#為了讓普通用戶有更大的操作權(quán)限,我們一般都會(huì)給普通用戶設(shè)置sudo權(quán)限,方便普通用戶的操作
#三臺(tái)機(jī)器使用root用戶執(zhí)行visudo命令然后為es用戶添加權(quán)限
[root@localhost ~] visudo
#在root ALL=(ALL) ALL 一行下面添加一行:shcms ALL=(ALL) ALL
6)添加成功保存后切換到shcms用戶操作
[root@localhost ~] su shcms
[shcms@localhost root]$
3、上傳壓縮包并解壓
使用【shcms】用戶來(lái)執(zhí)行以下操作:
- 將es安裝包上傳到指定服務(wù)器
- 并使用es用戶(shcms)執(zhí)行以下命令解壓。
1) 上傳壓縮包
[root@localhost ~] su root
[root@localhost ~] rz -be
2 ) 解壓Elasticsearch
[root@localhost ~] su shcms
[shcms@localhost root]$
3 ) 由于我們前面創(chuàng)建了elasticsearch-7.6.1目錄,此處我們直接解壓覆蓋這個(gè)目錄即可
[shcms@localhost root] tar -zvxf elasticsearch-7.6.1-linux-x86_64.tar.gz -C /opt/es/
4、修改配置文件
4.1 修改elasticsearch.yml
1)在/opt/es/elasticsearch-7.6.1/下創(chuàng)建data和log目錄
[shcms@localhost root] mkdir -p /opt/es/elasticsearch-7.6.1/log
[shcms@localhost root] mkdir -p /opt/es/elasticsearch-7.6.1/data
2)進(jìn)入服務(wù)器使用shcms用戶來(lái)修改配置文件
[root@localhost ~] su shcms
[shcms@localhost root]$
[shcms@localhost root] cd /opt/es/elasticsearch-7.6.1/config
[shcms@localhost config] rm -rf elasticsearch.yml
[shcms@localhost config] vim elasticsearch.yml
3)講以下配置復(fù)制到elasticsearch.yml中
# 集群名稱, 處于同一個(gè)集群所有節(jié)點(diǎn),該名稱必須相同
cluster.name: cms-es-cluster
# 節(jié)點(diǎn)名稱. 三臺(tái)機(jī)器名字必須都不一樣
node.name: node1
path.data: /opt/es/elasticsearch-7.6.1/data
path.logs: /opt/es/elasticsearch-7.6.1/log
# 網(wǎng)絡(luò)綁定,這里我綁定 0.0.0.0,支持外網(wǎng)訪問(wèn)
network.host: 0.0.0.0
# 設(shè)置對(duì)外服務(wù)的http端口,默認(rèn)為9200
http.port: 9200
# 集群發(fā)現(xiàn)。 集群配置:["192.168.43.10","192.168.43.11","192.168.43.12"]
discovery.seed_hosts: ["127.0.0.1"]
# 手動(dòng)指定可以成為 master 的所有節(jié)點(diǎn)的 name 或者 ip,這些配置將會(huì)在第一次選舉中進(jìn)行計(jì)算。 集群配置:["node1","node2","node3"]
cluster.initial_master_nodes: ["node1"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
# 支持跨域訪問(wèn)
http.cors.enabled: true
http.cors.allow-origin: "*"
4.2 修改jvm.option
修改jvm.option配置文件,調(diào)整jvm堆內(nèi)存大小。
node1.shcms.cn使用shcms用戶
執(zhí)行以下命令調(diào)整jvm堆內(nèi)存大小,每個(gè)人根據(jù)自己服務(wù)器的內(nèi)存大小來(lái)進(jìn)行調(diào)整。
[root@localhost ~] su shcms
[shcms@localhost root]$
[shcms@localhost root] cd /opt/es/elasticsearch-7.6.1/config
[shcms@localhost config] vim jvm.options
-Xms2g
-Xmx2g
二、修改系統(tǒng)配置,解決啟動(dòng)時(shí)候的問(wèn)題
由于現(xiàn)在使用普通用戶來(lái)安裝es服務(wù),且es服務(wù)對(duì)服務(wù)器的資源要求比較多,包括內(nèi)存大小,線程數(shù)等。所以我們需要給普通用戶解開(kāi)資源的束縛。
1、普通用戶打開(kāi)文件的最大數(shù)限制
問(wèn)題錯(cuò)誤信息描述:
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
ES因?yàn)樾枰罅康膭?chuàng)建索引文件,需要大量的打開(kāi)系統(tǒng)的文件,所以我們需要解除linux系統(tǒng)當(dāng)中打開(kāi)文件最大數(shù)目的限制,不然ES啟動(dòng)就會(huì)拋錯(cuò)。
1 ) 三臺(tái)機(jī)器使用shcms用戶執(zhí)行以下命令解除打開(kāi)文件數(shù)據(jù)的限制:
[root@localhost ~] su shcms
[shcms@localhost root]$
[shcms@localhost root]sudo vi /etc/security/limits.conf
添加如下內(nèi)容: 注意*不要去掉了:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
2)此文件修改后 需要重新登錄用戶,才會(huì)生效。
2、普通用戶啟動(dòng)線程數(shù)限制
問(wèn)題錯(cuò)誤信息描述:
max number of threads [1024] for user [es] likely too low, increase to at least [4096]
原因:
無(wú)法創(chuàng)建本地線程問(wèn)題, 用戶最大可創(chuàng)建線程數(shù)太小。
解決方案:
修改90-nproc.conf 配置文件(修改普通用戶可以創(chuàng)建的最大線程數(shù))。
三臺(tái)機(jī)器使用shcms用戶執(zhí)行以下命令修改配置文件:
[root@localhost ~] su shcms
[shcms@localhost root]$
# Centos6
[shcms@localhost root] sudo vi /etc/security/limits.d/90-nproc.conf
# Centos7(我的是7)
[shcms@localhost root] sudo vi /etc/security/limits.d/20-nproc.conf
找到如下內(nèi)容:
* soft nproc 1024
#修改為
* soft nproc 4096
3、普通用戶調(diào)大虛擬內(nèi)存
錯(cuò)誤信息描述:
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
原因:
最大虛擬內(nèi)存太?。ㄕ{(diào)大系統(tǒng)的虛擬內(nèi)存)。
每次啟動(dòng)機(jī)器都手動(dòng)執(zhí)行下。
三臺(tái)機(jī)器執(zhí)行以下命令 :
1)切換root用戶
[root@localhost ~] su
[root@localhost root]$
2)編輯 /etc/sysctl.conf,追加以下內(nèi)容:vm.max_map_count=262144
3)保存后,執(zhí)行:sysctl -p
4、重新連接
以上三個(gè)問(wèn)題解決完成之后,重新連接secureCRT或者重新連接xshell生效 。
三、啟動(dòng)ES服務(wù)
1、開(kāi)放服務(wù)器端口
對(duì)于我而言,我是把遠(yuǎn)程服務(wù)器防火墻永久關(guān)閉了的,所以外界可以訪問(wèn)我服務(wù)器任意端口(包括ES的9200端口)。
關(guān)閉Linux防火墻:
永久性生效,重啟后不會(huì)復(fù)原
開(kāi)啟: chkconfig iptables on
關(guān)閉: chkconfig iptables off
即時(shí)生效,重啟后復(fù)原
開(kāi)啟: service iptables start
關(guān)閉: service iptables stop
2、啟動(dòng)ES
三臺(tái)機(jī)器使用shcms用戶執(zhí)行以下命令啟動(dòng)es服務(wù)。
1、切換shcms用戶:
su shcms
2、
后臺(tái)啟動(dòng)ES 進(jìn)入bin目錄 ./elasticsearch -d
3、啟動(dòng)成功之后jsp即可看到es的服務(wù)進(jìn)程:
4、并且訪問(wèn)頁(yè)面http://192.168.43.10:9200/?pretty ,能夠看到es啟動(dòng)之后的一些信息:
3、常見(jiàn)錯(cuò)誤分析
問(wèn)題1:
如果哪一臺(tái)機(jī)器服務(wù)啟動(dòng)失敗,那么就到哪一臺(tái)機(jī)器的/opt/es/elasticsearch-7.6.1/log
這個(gè)路徑下面去查看錯(cuò)誤日志;
問(wèn)題2:
如果服務(wù)端ES啟動(dòng)成功,但是客戶端訪問(wèn)不了ES,則可能是服務(wù)器端沒(méi)有開(kāi)放端口??梢試L試關(guān)閉Linux防火墻:
永久性生效,重啟后不會(huì)復(fù)原
開(kāi)啟: chkconfig iptables on
關(guān)閉: chkconfig iptables off
即時(shí)生效,重啟后復(fù)原
開(kāi)啟: service iptables start
關(guān)閉: service iptables stop
問(wèn)題3:
如果啟動(dòng)ES的時(shí)候出現(xiàn) Permission denied則可能是當(dāng)前的用戶沒(méi)有對(duì)XX文件或目錄的操作權(quán)限;
四、ES集群配置
1、準(zhǔn)備三臺(tái)虛擬機(jī)
IP分別是:192.168.43.10、192.168.43.11、192.168.43.12.
2、刪除nodes文件
如果前面已經(jīng)搭建了單機(jī)的es,現(xiàn)在準(zhǔn)備講該服務(wù)器的es當(dāng)中集群中的一個(gè)節(jié)點(diǎn),那么該目錄下的nodes必須刪掉
,刪掉之后再重啟es
。否則集群節(jié)點(diǎn)啟動(dòng)的時(shí)候會(huì)發(fā)現(xiàn):es1啟動(dòng),es2啟動(dòng)后es1終止,es3啟動(dòng)后es2終止。
3、修改配置
搭建es集群的步驟和上面搭建es單機(jī)的步驟是一樣的。
-
唯一需要修改的地方是elasticsearch.yml文件中的:node.name、discovery.seed_hosts、cluster.initial_master_nodes三項(xiàng)。具體的修改我已在上面的elasticsearch.yml文件注釋中寫了;
-
kibana只需要在一臺(tái)es機(jī)器中安裝就行了;
當(dāng)然,如果嫌棄需要在每臺(tái)機(jī)器重復(fù)配置ES,我們可以直接對(duì)虛擬機(jī)進(jìn)行【克隆
】,然后對(duì)克隆后的機(jī)器分別修改elasticsearch.yml。雖然,三臺(tái)機(jī)器都有kibana,但是實(shí)際上我們只需要啟動(dòng)一個(gè)kibana即可(克隆后機(jī)器的kibana配置文件中host指向需要指向新機(jī)器IP)。
4、啟動(dòng)
- 分別啟動(dòng)三臺(tái)機(jī)器的ES;
- 啟動(dòng)kibana(我只在192.168.43.10機(jī)器上啟動(dòng)kibana)
5、通過(guò)kibana訪問(wèn)es
http://192.168.43.10:5601/app/kibana#/dev_tools/console文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-407045.html
帶“ * ”表示主機(jī)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-407045.html
到了這里,關(guān)于CentOS7下安裝ElasticSearch7.6.1詳細(xì)教程(單機(jī)、集群搭建)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!