elasticsearch kibana + 分詞器安裝詳細步驟


elasticsearch kibana + 分詞器安裝詳細步驟

一、准備環境

系統:Centos7

JDK安裝包:jdk-8u191-linux-x64.tar.gz

ES安裝包:elasticsearch-7.2.0-linux-x86_64.tar.gz下載地址

Kibana安裝包:kibana-7.2.0-linux-x86_64.tar.gz下載地址

IK分詞器安裝包:elasticsearch-analysis-ik-7.2.0.zip下載地址

目前准備兩個節點做節點規划,分別是192.168.56.105192.168.56.106

首先需要將JAVA環境安裝完畢,目前的ES版本使用的是1.9版本的JDK,但是在安裝包中已經包含了1.9的版本,所以我們自己可以使用1.8的,最終ES檢測是否安裝了1.9版本的,如果沒有安裝則使用自己安裝包內的JDK

#分別在兩台機器上創建用戶和用戶組,這里每台機器上創建兩個用戶,后面涉及到單台機器多節點安裝直接使用,如果只是單台機器單節點安裝,每台建一個用戶就行,主要是起到一個隔離作用,而且ES不能通過root用戶啟動
$ groupadd elastic
$ useradd -g elastic elastic1
$ useradd -g elastic elastic2
$ passwd elastic1
$ passwd elastic2
#關閉防火牆,禁止開機啟動
$ systemctl stop firewalld
$ systemctl disable firewalld

二、每台機器單節點集群

在做當前類型的安裝的時候只使用elastic1用戶,后面需要單機安裝多節點的時候才用elastic2用戶

#我是安裝在/opt目錄 分別對兩台機器做如下操作
root@localhost$ tar -zxvf elasticsearch-7.2.0-linux-x86_64.tar.gz
root@localhost$ mv elasticsearch-7.2.0 elasticsearch-7.2.0-elastic1
#設置目錄屬於elastic1用戶elastic用戶組
root@localhost$ chown -R elastic1:elastic  elasticsearch-7.2.0-elastic1

如上內容設置完成之后,進行配置ES,在進行配置之前:

192.168.56.105節點作為master

192.168.56.106節點作為slave1

master(105)節點 config/elasticsearch.yml文件配置:

#集群名稱
cluster.name: es_cluster
#節點角色名稱
node.name: master
#當前主機Host
network.host: 192.168.56.105
#http端口
http.port: 9200
#tcp端口
transport.tcp.port: 9300
#是否為master節點
node.master: true
#是否作為數據節點
node.data: true
#這里是跨域相關內容的配置
http.cors.enabled: true
http.cors.allow-origin: "*"
#這里代表的是當前服務器上運行幾個節點的ES實例
node.max_local_storage_nodes: 1
#符合master要求的節點,目前就只有一個,ES是自己內部實現了高可用的,所以可以多master
cluster.initial_master_nodes: ["192.168.56.105"]
#日志存儲位置(不配置默認在安裝包路徑)
path.logs: /opt/elastic1/logs
#數據存儲位置(不配置默認在安裝包路徑)
path.data: /opt/elastic1/data

slave1(106)節點 config/elasticsearch.yml文件配置:

cluster.name: es_cluster
node.name: slave1
network.host: 192.168.56.106
http.port: 9200
transport.tcp.port: 9300
node.data: true
http.cors.enabled: true
http.cors.allow-origin: "*"
node.max_local_storage_nodes: 1
#這里填寫的是master節點的IP和TCP端口,有多少master填多少個,主要是用來做心跳檢測和數據交互
discovery.seed_hosts: ["192.168.56.105:9300"]
path.logs: /opt/elastic1/logs
path.data: /opt/elastic1/data

如果在真實項目中還需要設置節點堆棧內存,默認是1G

config/jvm.options

-Xms1g
-Xmx1g

設置內存的時候根據自己情況設置,但是最好別超過32G,我在真實項目中設置的是31G因為超過的話會存在大內存問題,會造成內存資源浪費。

如上內容設置完成之后可以進行啟動測試,啟動的時候需要切到指定用戶去啟動,因為ES不能使用root啟動,並且啟動的時候很可能會報錯,報錯看下面解決辦法,需要設置一些系統參數

# 終端啟動運行
$ ./bin/elasticsearch
# 后台啟動運行
$ ./bin/elasticsearch -d

三、每台機器多節點集群

每台機器上安裝2個ES節點(兩個ES實例)相關配置方式,目前規划

192.168.56.105

  • elastic1:master
  • elastic2:slave2

192.168.56.106

  • elastic1:slave1
  • elastic2:slave2

根據上面的操作,准備好相關的包,並且設置好相關的權限,設置完成之后進行配置,目前是兩台機器,四個ES節點(實例)

相關配置:

在進行相關配置的時候可以直接從另外一個slave節點copy一份配置文件來進行修改

192.168.56.105-master(elaster1):config/elasticsearch.yml

#只需要修改每台機器上能夠部署的節點數就可以,其他的和上面的配置相同
node.max_local_storage_nodes: 2

192.168.56.105-slave2(elaster2):config/elasticsearch.yml

cluster.name: es_cluster
#修改節點名稱
node.name: slave2
network.host: 192.168.56.105
#這里需要修改端口,不能和master節點沖突
http.port: 9201
#這里需要修改端口,不能和master節點沖突
transport.tcp.port: 9301
node.data: true
http.cors.enabled: true
http.cors.allow-origin: "*"
#將機器能夠部署的節點數進行修改
node.max_local_storage_nodes: 2
#這里填寫的是master節點的IP和TCP端口,有多少master填多少個,主要是用來做心跳檢測和數據交互
discovery.seed_hosts: ["192.168.56.105:9300"]
path.logs: /opt/elastic2/logs
path.data: /opt/elastic3/data

192.168.56.106-slave1(elaster1):config/elasticsearch.yml

# 根據上面的配置修改機器能夠部署的節點數,其他參數不變
node.max_local_storage_nodes: 2

192.168.56.106-slave2(elaster2):config/elasticsearch.yml

cluster.name: es_cluster
#修改節點名稱
node.name: slave2
#修改節點ip
network.host: 192.168.56.106
#這里需要修改端口,不能和master節點沖突
http.port: 9201
#這里需要修改端口,不能和master節點沖突
transport.tcp.port: 9301
node.data: true
http.cors.enabled: true
http.cors.allow-origin: "*"
#將機器能夠部署的節點數進行修改
node.max_local_storage_nodes: 2
#這里填寫的是master節點的IP和TCP端口,有多少master填多少個,主要是用來做心跳檢測和數據交互
discovery.seed_hosts: ["192.168.56.105:9300"]
path.logs: /opt/elastic2/logs
path.data: /opt/elastic3/data

如上內容配置完成之后進行各個節點的啟動,啟動的時候不同節點需要使用不同用戶進行啟動,這樣能保證程序的隔離性,包括在停進程的時候也是,如果都啟動完成了,可以通過root賬戶進行jps命令進行檢查實例是否存在兩個。

105-elastic1$ ./bin/elasticsearch -d
105-elastic2$ ./bin/elasticsearch -d
106-elastic1$ ./bin/elasticsearch -d
106-elastic2$ ./bin/elasticsearch -d
#關閉es,直接kill 進程,當然最好是到指定用戶下進行kill這樣能夠區分,不容易混淆

注:其實單台機器裝多個節點只需要注意同一機器上的節點端口不要重復就行,其他的配置和橫向擴展沒區別

四、kibana安裝和分詞器安裝

安裝Kibana

$ tar -zxvf kibana-7.2.0-linux-x86_64.tar.gz

kibana只是一個客戶端,主要是方便自己管理和查看ES集群狀態,並且提供了一些數據分析的功能,數據查詢工具,索引管理以及監控等功能,所以裝在一台機器上就行,目前就裝在192.168.56.105機器上,可以設置為和master節點相同的用戶用戶組也可以直接用elastic1

kibana-7.2.0-linux-x86_64/config/kibana.yml配置

#當前kibana所提供服務的節點地址
server.host: "192.168.8.108"
#服務名稱
server.name: "yourkibana"
#連接的ES集群,連接master就行
elasticsearch.hosts: ["http://192.168.8.108:9200"]
#設置請求超時時間,默認是30000
elasticsearch.requestTimeout: 90000

配置完成之后啟動驗證是否成功

#現在終端啟動,看看日志有沒有報錯的,沒有的話再后台啟動
$ ./bin/kibana
$ nohup ../bin/kibana &

訪問Kibana

默認訪問的端口是5601,地址是自己配置的地址,我這里是http://192.168.56.105:5601

Elasticsearch安裝中文分詞插件:

安裝IK中文分詞插件,將下載好的分詞包安裝解壓然后放入到ES/plugin目錄就可以了,但是在安裝的時候要注意看版本之間的聯系,剛開始的時候我使用的是7.5版本的分詞器,安裝的時候版本不兼容,后面下載了7.2版本的

$ yum install -y unzip
$ unzip -d ik elasticsearch-analysis-ik-7.2.0.zip
$ cp -r ik/ elasticsearch-7.2.0-elastic1/plugins/
$ cp -r ik/ elasticsearch-7.2.0-elastic2/plugins/
$ scp -r ik/ 192.168.56.106:/opt/elasticsearch-7.2.0-elastic1/plugins/
$ scp -r ik/ 192.168.56.106:/opt/elasticsearch-7.2.0-elastic2/plugins/
#登錄到不同的節點去修改對應的ik文件夾的權限
$ chown -R elastic1:elastic /opt/elasticsearch-7.2.0-elastic1/plugins/

上面操作完成后,重啟集群,然后驗證是否能夠進行正常的中文分詞

如上圖所示,能夠對中文進行正確的分詞,說明分詞器安裝成功

五、啟動錯誤問題及解決辦法

ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

解決辦法:

編輯/etc/security/limits.conf,追加以下內容

* soft nofile 65536
* hard nofile 65536

當前內容設置完成之后需要重新登錄才能生效

[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解決辦法:

編輯文件/etc/sysctl.conf,追加一下內容:

vm.max_map_count=655360

編輯完成之后保存,並執行sysctl -p命令

[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

解決辦法:

出現上面兩個錯誤說明沒有在配置文件中配置好ES,需要配置上面中括號中的參數,具體的配置根據節點角色定,該問題一般不會遇到

[4]: max number of threads [2048] for user [tongtech] is too low, increase to at least [4096]

解決辦法:

編輯文件/etc/security/limits.d/20-nproc.conf ,修改文件中的數值

*          soft    nproc     65535
root       soft    nproc     unlimited

以上內容修改完成之后啟動ES,查看ES是否能夠正常啟動成功

Likely root cause: java.nio.file.AccessDeniedException: /opt/elasticsearch-7.2.0-elastic1/config/elasticsearch.keystore

出現這個錯誤說明沒有權限,看下confg/elasticsearch.keystore文件是否擁有相關權限,如果么有權限,則進行設置

root@localhost$ chown -R elastic1:elastic elasticsearch.keystore 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM