2021年9月20日15:16:59
注意:所有版本和插件必須一致-7.14.1,或者你的軟件版本都是統一的版本
下載rpm包
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.14.1-x86_64.rpm
yum install elasticsearch-7.14.1-x86_64.rpm
whereis elasticsearch
elasticsearch: /etc/elasticsearch /usr/share/elasticsearch
/etc/elasticsearch 配置文件位置
/usr/share/elasticsearch 軟件安裝位置
id elasticsearch
查看用戶是否存在
裝ik中文分詞插件
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.14.1/elasticsearch-analysis-ik-7.14.1.zip
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.14.1/elasticsearch-analysis-ik-7.14.1.zip
修改linux es ik分詞的配置
jvm.options
去掉注釋
-Xms4g
-Xmx4g
配置字典
<?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"></entry> <!--用戶可以在這里配置自己的擴展停止詞字典--> <entry key="ext_stopwords"></entry> <!--用戶可以在這里配置遠程擴展字典 --> <entry key="remote_ext_dict">http://192.168.8.241:8000/yida.dic</entry> <!--用戶可以在這里配置遠程擴展停止詞字典--> <!-- <entry key="remote_ext_stopwords">words_location</entry> --> </properties>
vi /etc/security/limits.conf
加入
* soft nofile 65536 * hard nofile 131072 * soft nproc 4096 * hard nproc 4096
vi /etc/sysctl.conf
vm.max_map_count=655360
保存后執行
sysctl -p
需要注意幾點:
1,生成的p12秘鑰,只需要生成一份,然后復制到其他節點即可
2,配置賬號密碼的時候,每個節點都需要設置
3,注意p12等文件需要 +rx 和es運行賬號的權限
4,插件所有的節點都需要安裝,建議使用 ./bin/elasticsearch-plugin install 配置文件都在/etc/elasticsearch/ 插件文件名是就是配置的文件夾
5,注意新版和舊版的之間的配置差別,先看下官方文檔
es推薦默認是三個節點:
node-1 192.168.8.228:9277
node-2 192.168.8.241:9277
node-3 192.168.8.229:9277
第一步:生成證書 我們在ES的根路徑下,執行 bin/elasticsearch-certutil ca 生成ca證書,在期間,會提示我們輸入生成文件名(可直接回車跳過),提示我們輸入證書密碼(可直接回車跳過,也可以設置一個密碼,密碼盡量統一); 這樣,我們就可以得到一個以.p12結尾的ca證書,其文件名默認為elastic-stack-ca.p12 第二步:對生成的證書進行驗證 在ES的根路徑下,執行 bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 #依次輸入上一個步驟的密碼。回車(文件使用默認名),密碼(建議與上一步密碼相同) bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password #並輸入第一步輸入的密碼 bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password #並輸入第一步輸入的密碼 此時,我們一共將得到3個文件,分別是elastic-certificates.p12、elasticsearch.keystore、elastic-stack-ca.p12; 我們將這三個文件拷貝到conf目錄下,同時,將這三個文件也拷貝到另外兩個節點的conf路徑下;
機器啟動后在,設置密碼,單個機器設置密碼之后,集群會分發密碼
./bin/elasticsearch-setup-passwords interactive
查看節點健康問題
curl --user elastic:'密碼' http://ip:9277/_cat/health?v curl --user elastic:'密碼' http://ip:9277/_cat/nodes
注意:如果是yum安裝 elasticsearch.keystore這個文件需要刪除
按照上面的方法重新生成,因為默認的版本不能啟動系統
記得把 elastic-certificates.p12 elasticsearch.keystore elastic-stack-ca.p12
還要記得把權限加上
chmod +xr elastic-certificates.p12
線上的集群預計一天左右可以搭建好,結果2天才搭完,當時發現了很多其他的小問題,和一點奇怪的問題
聯通雲 奇怪的問題
1,一個安全組下,安全組內多台機器互相訪問也需要在安全組上添加規則,阿里雲,騰訊雲安全組之內的服務器是可以互相訪問的
2,域名備案成功之后,解析到聯通雲服務器ip之后,需要提交備案工單之后,才能生效,生效時長多久需要等待
3,安全組沒有填寫備注的地方,很難維護
4,不知道是什么原因我們這邊是電信,訪問聯通雲的后台的操作的時候,反映是很慢的,操作完一項操作的時候需要等待一會,但是站點測試還是不錯的
es集群搭建的問題:
1,一定要每台服務器各個操作都執行不能缺,因為啟動日志錯誤日志不是能全部看到的,有些錯誤日志里看得到
2,注意文件的權限,特別是配置和數據文件,必須 是elasticsearch 和加權限 xr
3,注釋 /etc/security/limits.conf /etc/sysctl.conf 修改是否生效,不然日志也看不到錯誤
4,注意ik的分詞插件的第三方字典建議統一給個http url,不然每次所有節點更新字典,也麻煩
5,一定要細心,來回測試,吧問題排除干凈,不然重啟就掛了
6,如果 cluster.initial_master_nodes: ["node-1","node-2","node-3"] 啟動時期只填一個,避免腦裂,如果腦裂之后記得刪除data數據之后,在重啟,不然無法生效
7,9200是提供外部restapi的tcp端口,9300是集群內部通信的tcp端口,這個一定注意