安裝Elasticsearch Elasticsearch下載地址:https://www.elastic.co/cn/downloads/elasticsearch 也可以直接使用wget下載到某目錄下, 本文所有下載的包都放在 /home/tools 中, 解壓後移到 /home/apps目錄下 ...
安裝Elasticsearch
Elasticsearch下載地址:https://www.elastic.co/cn/downloads/elasticsearch
也可以直接使用wget下載到某目錄下, 本文所有下載的包都放在 /home/tools 中, 解壓後移到 /home/apps目錄下
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.zip
下載unzip工具,如果已經安裝過忽略該步驟
yum install -y unzip zip
解壓安裝包
unzip elasticsearch-6.3.1.zip
將解壓後的文件夾移動到 /home/apps 下, 此步驟非必須,但為了後續需要安裝的東西太多防止目錄混亂所以與安裝包分離
mv elasticsearch-6.3.1 /home/apps/
到 /home/apps 下,elasticsearch 就解壓完畢了,但要直接啟動會報各種錯誤,接下來開始配置吧
----------------------------------- Elasticsearch配置 --------------------------------------
註:文章預設已配置好1.8版本jdk, 如果沒配置請先配置一下!
修改elasticsearch.yml
cd /home/apps/elasticsearch-6.3.1/config vi elasticsearch.yml
修改如下幾項(配置集群名稱,這裡埠預設為9200,如果需要修改可以改http.port)
cluster.name: xxx-es
network.host: 0.0.0.0
path.logs: /home/apps/elasticsearch-6.3.1/logs
path.data: /home/apps/elasticsearch-6.3.1/data #預設沒有該目錄,需要手動新建 mkdir data
增加以下兩個配置(跨域訪問)
http.cors.enabled: true http.cors.allow-origin: "*"
保存修改
新建啟動用戶 (ES5.0 以後不允許使用root角色啟動)
#添加用戶 adduser elasticsearch
#設置密碼 passwd elasticsearch
#授權 chown -R elasticsearch /elasticsearch-6.3.0
#切換用戶 su elasticsearch
#啟動 cd elasticsearch-6.3.0/bin ./elasticsearch
啟動可能會報如下錯誤
切換回root角色再為該用戶授權一次就可以了, 可能是啟動的時候新生成了文件沒有許可權
su root
chown -R elasticsearch /home/apps/elasticsearch-6.3.1
錯誤解決方案
再啟動一次,發現依舊報錯
原因:無法創建本地文件問題,用戶最大可創建文件數太小
解決方案:
#切換回root賬戶 su root #修改limits.conf文件 vi /etc/security/limits.conf
在文件最底部增加如下配置
* soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096
切換回elasticsearch賬號,再啟動一次ES吧,又報錯了
原因:最大虛擬記憶體太小
解決方案:
#切換至root賬戶 su root #修改sysctl.conf vi /etc/sysctl.conf
添加如下配置
vm.max_map_count=655360
執行 sysctl -p 以刷新配置
再次切換回elasticsearch用戶,啟動ES
啟動成功! 我們打開瀏覽器訪問一下吧~
防火牆配置
發現打不開,我們之前已經配置了所有節點可以訪問,並且也配置了可跨域,為什麼打不開呢?
別忘了還有防火牆在啊。需要把9200的對外訪問埠打開
在控制台輸入以下命令
#開啟9200埠 firewall-cmd --zone=public --add-port=9200/tcp --permanen
#刷新配置
firewall-cmd --reload
再次訪問http://192.168.193.129:9200/
好~ES的配置到此結束
服務啟動與關閉
直接用./elasticsearch啟動一旦關閉控制台服務便會停掉,因此需要使用 ./elasticsearch -d 在後臺啟動
如何關閉服務?
ps -ef|grep elasticsearch
殺掉對應的進程號就可以了
------------------------------- Elasticsearch-Head 安裝及配置 --------------------------
下載及安裝
面對這麼個提示一定一臉懵逼吧,我要怎麼查詢數據?怎麼知道有什麼索引? Head 插件就是為瞭解決這個問題的,它提供可視化的頁面方便用戶查看節點信息,查詢數據等。
接下來就開始安裝Head插件吧
Elasticsearch5.0 以後head不再在plugins中直接安裝了,需要獨立安裝
下載地址: https://pan.baidu.com/s/1kX1cMzlb6jWvHeDr2N5e-g
將下載後的壓縮包放到 /home/tools 下
#解壓壓縮包 unzip elasticsearch-head.zip #將解壓後的文件夾移動/home/apps下 mv elasticsearch-head /home/apps
進入head文件目錄
cd elasticsearch-head
安裝grunt用來啟動head
#安裝grunt命令行工具grunt-cli npm install -g grunt-cli #安裝grunt及其插件 npm install grunt --save-dev #查看安裝版本情況 grunt -version
配置連接信息
vi Gruntfile.js
修改如下配置(ip 和 埠號)
保存後配置防火牆,開放9100埠,在控制台輸入
firewall-cmd --zone=public --add-port=9100/tcp --permanent
firewall-cmd --reload
啟動head
grunt server
啟動成功
在瀏覽器輸入 http://192.168.193.129:9100
安裝完成
服務啟動與關閉
後臺方式啟動
nohup grunt server &
關閉head
#查詢埠占用 netstat -tunlp |grep 9100
如果netstat沒有安裝,執行以下命令安裝
yum install net-tools
#殺死進程
kill -9 9919
Elasticsearch-head 連接 Elasticsearch-6.0 + 檢索問題
Head 連接Elasticsearch6時其他功能都好使, 但數據瀏覽模塊不能顯示數據了,一直顯示搜索中,但不返回結果
看一下網路流可知報406 錯誤
解決辦法:
cd elasticsearch-head/_site
vi vendor.js
修改如下
#1. 6886行 contentType: "application/x-www-form-urlencoded 改為 contentType: "application/json;charset=UTF-8"
#2. 7574行 var inspectData = s.contentType === "application/x-www-form-urlencoded" && 改為 var inspectData = s.contentType === "application/json;charset=UTF-8" &&
重新啟動elasticsearch-head就可以正常檢索了