ES的集羣部署
第一步:創建普通用戶(使用root用戶)
注意:ES不能使用root用戶來啓動,必須使用普通用戶來安裝啓動。這裏我們創建一個普通用戶以及定義一些常規目錄用於存放我們的數據文件以及安裝包等
創建一個es專門的用戶(必須)
在三臺機器執行以下命令
useradd es
mkdir -p /export/servers/es
chown -R es /export/servers/es
passwd es
第二步:爲普通用戶es添加sudo權限(使用root用戶)
爲了讓普通用戶有更大的操作權限,我們一般都會給普通用戶設置sudo權限,方便普通用戶的操作
三臺機器使用root用戶執行visudo命令然後爲es用戶添加權限
visudo
es ALL=(ALL) ALL
第三步:下載並上傳壓縮包,然後解壓(使用es用戶)
斷開連接linux的工具,然後重新使用es用戶連接上三臺linux服務器
將es的安裝包下載並上傳到node01服務器的/home/es路徑下,然後進行解壓
node01服務器使用es用戶執行以下命令
cd /home/es/
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.0.tar.gz
tar -zxf elasticsearch-6.7.0.tar.gz -C /export/servers/es/
第四步:修改配置文件(使用es用戶)
修改elasticsearch.yml
node01服務器使用es用戶來修改配置文件
cd /export/servers/es/elasticsearch-6.7.0/config
mkdir -p /export/servers/es/elasticsearch-6.7.0/logs
mkdir -p /export/servers/es/elasticsearch-6.7.0/datas
rm -rf elasticsearch.yml
vim elasticsearch.yml
cluster.name: myes
node.name: node01
path.data: /export/servers/es/elasticsearch-6.7.0/datas
path.logs: /export/servers/es/elasticsearch-6.7.0/logs
network.host: 192.168.52.100
http.port: 9200
discovery.zen.ping.unicast.hosts: ["node01", "node02", "node03"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"
修改jvm.option
修改jvm.option配置文件,調整jvm堆內存大小
node01使用es用戶執行以下命令調整jvm堆內存大小,每個人根據自己服務器的內存大小來進行調整
cd /export/servers/es/elasticsearch-6.7.0/config
vim jvm.options
-Xms2g
-Xmx2g
第五步:將安裝包分發到其他服務器上面 (使用es用戶)
node01使用es用戶將安裝包分發到其他服務器上面去
cd /export/servers/es/
scp -r elasticsearch-6.7.0/ node02:$PWD
scp -r elasticsearch-6.7.0/ node03:$PWD
第六步:node02與node03修改es配置文件 (使用es用戶)
node02與node03也需要修改es配置文件
node02使用es用戶執行以下命令修改es配置文件
(修改node.name與network.host)
cd /export/servers/es/elasticsearch-6.7.0/config
vim elasticsearch.yml
cluster.name: myes
node.name: node02
path.data: /export/servers/es/elasticsearch-6.7.0/datas
path.logs: /export/servers/es/elasticsearch-6.7.0/logs
network.host: 192.168.52.110
http.port: 9200
discovery.zen.ping.unicast.hosts: ["node01", "node02", "node03"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"
node03使用es用戶執行以下命令修改配置文件
cd /export/servers/es/elasticsearch-6.0.0/config/
vim elasticsearch.yml
cluster.name: myes
node.name: node03
path.data: /export/servers/es/elasticsearch-6.7.0/datas
path.logs: /export/servers/es/elasticsearch-6.7.0/logs
network.host: 192.168.52.120
http.port: 9200
discovery.zen.ping.unicast.hosts: ["node01", "node02", "node03"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"
第七步:修改系統配置,解決啓動時候的問題 (使用es用戶)
由於現在使用普通用戶來安裝es服務,且es服務對服務器的資源要求比較多,包括內存大小,線程數等。所以我們需要給普通用戶解開資源的束縛
解決啓動問題一:普通用戶打開文件的最大數限制
問題錯誤信息描述:
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
ES因爲需要大量的創建索引文件,需要大量的打開系統的文件,所以我們需要解除linux系統當中打開文件最大數目的限制,不然ES啓動就會拋錯
三臺機器使用es用戶執行以下命令解除打開文件數據的限制
sudo vi /etc/security/limits.conf
添加如下內容: 注意*不要去掉了
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
解決啓動問題二:普通用戶啓動線程數限制
問題錯誤信息描述
max number of threads [1024] for user [es] likely too low, increase to at least [4096]
修改普通用戶可以創建的最大線程數
max number of threads [1024] for user [es] likely too low, increase to at least [4096]
原因:無法創建本地線程問題,用戶最大可創建線程數太小
解決方案:修改90-nproc.conf 配置文件。
三臺機器使用es用戶執行以下命令修改配置文件
sudo vi /etc/security/limits.d/90-nproc.conf
找到如下內容:
* soft nproc 1024
#修改爲
* soft nproc 4096
解決啓動問題三:普通用戶調大虛擬內存
錯誤信息描述:
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
調大系統的虛擬內存
原因:最大虛擬內存太小
每次啓動機器都手動執行下。
三臺機器執行以下命令,注意每次啓動ES之前都要執行
sudo sysctl -w vm.max_map_count=262144
備註:以上三個問題解決完成之後,重新連接secureCRT或者重新連接xshell生效
需要保存、退出、重新登錄xshell纔可生效。
第八步:啓動ES服務(使用es用戶)
三臺機器使用es用戶執行以下命令啓動es服務
nohup /export/servers/es/elasticsearch-6.7.0/bin/elasticsearch 2>&1 &
啓動成功之後jsp即可看到es的服務進程,並且訪問頁面
http://node01:9200/?pretty
能夠看到es啓動之後的一些信息
注意:如果哪一臺機器服務啓動失敗,那麼就到哪一臺機器的
/export/servers/es/elasticsearch-6.7.0/logs
這個路徑下面去查看錯誤日誌
node01服務器安裝elasticsearch-head插件
由於es服務啓動之後,訪問界面比較醜陋,爲了更好的查看索引庫當中的信息,我們可以通過安裝elasticsearch-head這個插件來實現,這個插件可以更方便快捷的看到es的管理界面
node01機器安裝nodejs
Node.js是一個基於 Chrome V8 引擎的 JavaScript 運行環境。
Node.js是一個Javascript運行環境(runtime environment),發佈於2009年5月,由Ryan Dahl開發,實質是對Chrome V8引擎進行了封裝。Node.js 不是一個 JavaScript 框架,不同於CakePHP、Django、Rails。Node.js 更不是瀏覽器端的庫,不能與 jQuery、ExtJS 相提並論。Node.js 是一個讓 JavaScript 運行在服務端的開發平臺,它讓 JavaScript 成爲與PHP、Python、Perl、Ruby 等服務端語言平起平坐的腳本語言。
安裝步驟參考:https://www.cnblogs.com/kevingrace/p/8990169.html
第一步:下載安裝包
node01機器執行以下命令下載安裝包,然後進行解壓
cd /home/es
wget https://npm.taobao.org/mirrors/node/v8.1.0/node-v8.1.0-linux-x64.tar.gz
tar -zxvf node-v8.1.0-linux-x64.tar.gz -C /export/servers/es/
第二步:創建軟連接
node01執行以下命令創建軟連接
sudo ln -s /export/servers/es/node-v8.1.0-linux-x64/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
sudo ln -s /export/servers/es/node-v8.1.0-linux-x64/bin/node /usr/local/bin/node
第三步:修改環境變量
node01服務器添加環境變量
sudo vim /etc/profile
export NODE_HOME=/export/servers/es/node-v8.1.0-linux-x64
export PATH=:$PATH:$NODE_HOME/bin
修改完環境變量使用source生效
source /etc/profile
第四步:驗證安裝成功
node01執行以下命令驗證安裝生效
node -v
npm -v
node01機器安裝elasticsearch-head插件
elasticsearch-head這個插件是es提供的一個用於圖形化界面查看的一個插件工具,可以安裝上這個插件之後,通過這個插件來實現我們通過瀏覽器查看es當中的數據
安裝elasticsearch-head是直接使用已經編譯好的安裝包,進行修改配置即可
下載地址: https://download.csdn.net/download/qq_41837900/12007392
第一步:上傳壓縮包到/home/es路徑下去
將我們的壓縮包 elasticsearch-head-compile-after.tar.gz 上傳到node01機器的/home/es路徑下面去
第二步:解壓安裝包
node01執行以下命令解壓安裝包
cd /home/es/
tar -zxvf elasticsearch-head-compile-after.tar.gz -C /export/servers/es/
第三步、node01機器修改Gruntfile.js
修改Gruntfile.js這個文件
cd /export/servers/es/elasticsearch-head
vim Gruntfile.js
找到以下代碼:
添加一行: hostname: ‘192.168.100.100’,
connect: {
server: {
options: {
hostname: '192.168.100.100',
port: 9100,
base: '.',
keepalive: true
}
}
}
第四步、node01機器修改app.js
第一臺機器修改app.js
cd /export/servers/es/elasticsearch-head/_site
vim app.js
更改前:http://localhost:9200
更改後:http://node01:9200
node01機器啓動head服務
node01啓動elasticsearch-head插件
cd /export/servers/es/elasticsearch-head/node_modules/grunt/bin/
進程前臺啓動命令
./grunt server
進程後臺啓動命令
nohup ./grunt server >/dev/null 2>&1 &
Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://192.168.52.100:9100
如何停止:elasticsearch-head進程
執行以下命令找到elasticsearch-head的插件進程,然後使用kill -9 殺死進程即可
netstat -nltp | grep 9100
kill -9 8328
訪問elasticsearch-head界面
打開Google Chrome訪問
http://192.168.100.100:9100/
kibana的基本介紹
Kibana是一個開源的分析和可視化平臺,設計用於和Elasticsearch一起工作。
你用Kibana來搜索,查看,並和存儲在Elasticsearch索引中的數據進行交互。
你可以輕鬆地執行高級數據分析,並且以各種圖標、表格和地圖的形式可視化數據。
Kibana使得理解大量數據變得很容易。它簡單的、基於瀏覽器的界面使你能夠快速創建和共享動態儀表板,實時顯示Elasticsearch查詢的變化。
接着使用我們的es用戶在node01服務器上面來實現我們的kibana的安裝部署
第一步:下載資源上傳服務器並解壓
node01服務器使用es用戶執行以下命令來下載安裝包並解壓
cd /home/es
在線下載
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.7.0-linux-x86_64.tar.gz
tar -zxf kibana-6.7.0-linux-x86_64.tar.gz -C /export/servers/es/
第二步:修改配置文件
node01服務器使用es用戶執行以下命令來修改配置文件
cd /export/servers/es/kibana-6.7.0-linux-x86_64/config/
vi kibana.yml
配置內容如下:
server.host: "node01"
elasticsearch.hosts: ["http://node01:9200"]
第三步:啓動服務
node01服務器使用es用戶執行以下命令啓動kibana服務
cd /export/servers/es/kibana-6.7.0-linux-x86_64
nohup bin/kibana >/dev/null 2>&1 &
如何停止kibana進程:停止kibana服務進程
查看進程號
ps -ef | grep node
然後使用kill -9殺死進程即可
第四步:瀏覽器訪問
瀏覽器地址訪問kibana服務
http://node01:5601