ElaticSearch:
-
全文搜索 超級強,比如模糊查詢、關鍵詞高亮等
-
海量數據 高效查詢,比傳統關系數據庫快得多(尤其是搜索)
-
靈活的數據結構(Schema靈活,可以動態字段)
-
分布式高可用,天然支持橫向擴展
ElaticSearch安裝
安裝包下載
Download Elasticsearch | ElasticDownload Elasticsearch or the complete Elastic Stack (formerly ELK stack) for free and start searching and analyzing in minutes with Elastic....https://www.elastic.co/downloads/elasticsearch
Elasticsearch需要Java環境,8.x之后不需要自己安裝JDK,自帶的合適版本的JDK
mkdir /usr/local/develop
將壓縮包上傳
解壓
tar -zxvf elasticsearch-9.0.0-linux-x86_64.tar.gz
cd elasticsearch-9.0.0
前臺運行? ?
./bin/elasticsearch
默認不允許root用戶運行
# 創建一個普通用戶,比如叫 esuser
useradd esuser
# 給用戶設置密碼(按提示輸入密碼)
passwd esuser
# 給這個用戶授權訪問ES目錄(把elasticsearch-9.0.0權限給esuser)
chown -R esuser:esuser /usr/local/develop/elasticsearch-9.0.0
因為在develop目錄下? ?需要develop的寫權限(除非你已經通過root解壓了)
# 切換到esuser
su - esuser
# 進入ES目錄
cd /usr/local/develop/elasticsearch-9.0.0
安裝
./bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/8.4.1
最新IK分詞器插件8.4.1 發現IK分詞器9.0.0還沒有 不兼容
tar -zxvf elasticsearch-8.4.1-linux-x86_64.tar.gz
安裝IK分詞器
# 先手動下載插件(避免網絡問題導致失敗)
wget https://get.infini.cloud/elasticsearch/analysis-ik/8.4.1 -O /tmp/ik.zip
# 然后從本地安裝
./elasticsearch-8.4.1/bin/elasticsearch-plugin install file:///tmp/ik.zip
指定最大最小內存 并在后臺啟動
ES_JAVA_OPTS="-Xms1g -Xmx1g" ./elasticsearch-8.4.1/bin/elasticsearch -d
啟動之后
curl -k -u elastic:你的密碼 https://localhost:9200 是可以的 curl -k -u elastic:你的密碼 https://47.76.126.58:9200 無法連接
在配置文件中
#cluster.initial_master_nodes: ["iZj6xxxxxxxxxx"]? ?將這行注釋
另外添加
network.bind_host: 0.0.0.0
discovery.type: single-node
注意? 第一次啟動建議前臺啟動
./bin/elasticsearch
?
需要拿到一些token 登錄密碼什么的
然后ctrl+c
在后臺啟動??./bin/elasticsearch -d
ES_JAVA_OPTS="-Xms1g -Xmx1g" ./elasticsearch-8.4.1/bin/elasticsearch -d? ?臨時指定內存大小啟動,也可以配置文件配置
也可以? 在運行時候修改密碼? ?這個密碼是SpringBoot整合elaticsearch時候要用的
./elasticsearch-8.4.1/bin/elasticsearch-reset-password -u elastic
修改token? 默認30分鐘? ?這個token是Kibana? ?Elasticsearch 用的可視化管理工具用的
./bin/elasticsearch-create-enrollment-token -s kibana
如果后臺啟動? 可以
修改密碼
./elasticsearch-8.8.2/bin/elasticsearch-reset-password -u elastic
輸入y? 然后會重新給你密碼
額外創建一個token
./elasticsearch-8.8.2/bin/elasticsearch-create-enrollment-token -s kibana
也可以前臺啟動? 然后記錄下密碼? 和token? 然后再后臺啟動
查看ES是不是運行起來了
curl -k -u elastic:你的密碼 https://localhost:9200
安裝Kibana
Download Kibana Free | Get Started Now | Elastic
下載后上傳服務器
cd /usr/local/develop
tar -zxvf kibana-9.0.0-linux-x86_64.tar.gz
?
編輯kibana-9.0.0/config下的kibana.yml
啟動kibana
./kibana-9.0.0/bin/kibana
報錯原因
-
Kibana 9.0.0版本不允許用elastic這個超級管理員賬號直接連接了!
-
它要求用一個叫做 service account token 的方式,來連接Elasticsearch。
-
不能直接用 elastic用戶名密碼了,這是為了安全(防止Kibana不小心用超級管理員權限搞亂系統數據)。
第一種方式:用Service Account Token
./elasticsearch-9.0.0/bin/elasticsearch-service-tokens create elastic/kibana my-kibana-token
elastic/kibana表示專門給kibana用的? 寫死? ?my-kibana-token可以改
SERVICE_TOKEN elastic/kibana/my-kibana-token = asssssssdKQXJfd0NHVFJ3YVBYNmF0UTB4aVlB
重新編輯
server.port: 5601
server.host: "0.0.0.0"elasticsearch.hosts: ["https://你的ES服務器IP:9200"]
# 不用username和password了!
# elasticsearch.username: "kibana_system"
# elasticsearch.password: "xxxxx"# 改用service token
elasticsearch.serviceAccountToken:"Axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"# 開發環境,SSL驗證先關掉(如果沒正式證書)
elasticsearch.ssl.verificationMode: "none"
?
開放9200 和5601端口
啟動kibana
./kibana-9.0.0/bin/kibana
nohup ./kibana-9.0.0/bin/kibana > kibana.log 2>&1 &? ?后臺啟動
用戶名?elastic? ?密碼 ?
第二種方式:?kibana_system
傳統賬號密碼模式
把原先的kibana殺掉
如果忘記了 kibana_system賬號??
./elasticsearch-8.4.1/bin/elasticsearch-reset-password -u kibana_system
server.port: 5601
server.host: "0.0.0.0"elasticsearch.hosts: ["https://127.0.0.1:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "你的新密碼,比如 kibana123"# 開發環境關閉SSL證書驗證
elasticsearch.ssl.verificationMode: "none"
?
nohup ./kibana-9.0.0/bin/kibana --allow-root > kibana.log 2>&1 &
用kibana_system? 登錄提示沒有權限??kibana_system 是用來和elastic通信用的
可以用elastic? ?
顯示的全英文??
在kibana配置文件種加? ? ?
i18n.locale: "zh-CN"
殺掉kibana重啟