先贊後看,養成習慣 🌹 歡迎微信關注
[Java編程之道]
,每天進步一點點,沉澱技術分享知識。
最近公司需要一個Es環境,於是藉此機會對Es和可視化的安裝流程進行了一次梳理。現在ES已經到7.7了跟我以前接觸的版本還是存在一些不同,在Linux環境下安裝也存在不少坑。不過還好的是這些坑都還不夠深。以下就Linux環境的ES安裝來一個從0開始的搭建流程。
前話—安裝JDK
由於從ES6.5開始就支持了Java11,所以我從這開始就直接裝Java11的環境,避免一些環境問題。
在安裝 Elasticsearch 之前,您需安裝並配置好 JDK, 設置好環境變量 $JAVA_HOME。至於JDK的下載我就不多敘述了,送上一個網盤鏈接:JDK11百度雲盤
- 下載完成將文件移動 /home/ 並解壓
tar -xvf 名稱.tar.gz
- 重命名解壓文件,看自己的喜好了
mv jdk-11/ jdk11/
- 配置環境變量,編輯文件 vim /etc/profile 在末尾添加以下內容
JAVA_HOME=/home/jdk11
JRE_HOME=$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME JRE_HOME PATH
- 配置生效
source /etc/profile
正文—安裝ES
以下操作會基於root用戶和新建的elastic用戶操作,請操作的時候注意看清楚是用哪個用戶哦!
下載 Elasticsearch
訪問 Elasticsearch 官網 https://www.elastic.co/cn/downloads/elasticsearch 下載安裝包:
筆者這裏下載的是 Linux系統 Elasticsearch V7.7.0 版本作爲演示。實際的環境上我搭建的5.x的版本,懶得回去截圖了就以7.7作爲演示吧。
下載成功後,解壓到指定目錄:
tar -zxvf elasticsearch-7.7.0-darwin-x86_64.tar.gz
進入解壓後的目錄,結構如下:
Elasticsearch 目錄、配置文件說明、注意點
這裏大概解答下各個目錄、配置文件的作用:
配置信息
針對ES的配置主要是去修改elasticsearch.yml和jvm.options
具體可見以下常用配置項目
- elasticsearch.yml
# ================= Elasticsearch Configuration ===================
# #配置es的集羣名稱, es會自動發現在同一網段下的es,如果在同一網段下有多個集羣,就可以用這個屬性來區分不同的集羣。
cluster.name: xxx
# #節點名稱
node.name: master
# #指定該節點是否有資格被選舉成爲node
node.master: true
# 這兩個路徑看你具體情況寫,但是都需要授權給elastic用戶,否則會啓動報錯
path.logs: /home/elasticsearch-7.7.0/var/logs
path.data: /home/elasticsearch-7.7.0/var/data
# #指定該節點是否存儲索引數據,默認爲true。
node.data: true
# #設置綁定的ip地址還有其它節點和該節點交互的ip地址,本機ip
network.host: 192.168.95.129
# #指定http端口,你使用head、kopf等相關插件使用的端口
http.port: 9200
# #設置節點間交互的tcp端口,默認是9300。
transport.tcp.port: 9300
#設置集羣中master節點的初始列表,可以通過這些節點來自動發現新加入集羣的節點。
discovery.zen.ping.unicast.hosts: ["192.168.95.129:9300","192.168.95.130:9300"]
#如果要使用head,那麼需要增加新的參數,使head插件可以訪問es
http.cors.enabled: true
http.cors.allow-origin: "*"
- jvm.options
這個配置項目裏面主要是根據實際需求修改一個jvm大小等,一般情況不需要怎麼修改。
筆者給公司搭的只是一個單節點的ES,所有有些集羣發現的配置並沒有弄。
Ps: 更多具體配置可以在Elasticsearch官網查看
後續—運行ES
這個環境就是踩坑環節了,彆着急慢慢來。
執行啓動命令:
bin/elasticsearch
錯誤一:
Elasticsearch可以接收用戶輸入的腳本並且執行,處於安全考慮,他不能root賬戶來啓動。
- 解決辦法
- groupadd elastic
- useradd -g elastic elastic
- chown -R elastic:elastic /es文件路徑
錯誤二:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
- 解決辦法
- 每個進程最大同時打開文件數太小,可通過下面2個命令查看當前數量
ulimit -Hn
ulimit -Sn - 修改/etc/security/limits.conf文件,增加配置,用戶退出後重新登錄生效
- 每個進程最大同時打開文件數太小,可通過下面2個命令查看當前數量
* soft nofile 65536
* hard nofile 65536
錯誤三:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
- 解決辦法
- 修改/etc/sysctl.conf文件,增加配置vm.max_map_count=262144
vi /etc/sysctl.conf
sysctl -p
待上面的問題都出現並解決了後,你就可以以elastic(su elastic)用戶啓動ES了
默認訪問端口9200
到此ES的單機搭建基本就完成了,至於集羣搭建再踩完了單機的坑後,都是很簡單的事情了,我就不再贅述。
加餐—Head插件
安裝好ES後,你就可以通過官網提供的相關命令開進行索引的創建,但是更多人還是習慣用界面直接操作。Elasticsearch-head 是用於監控 ES 狀態的客戶端插件,包括數據可視化、執行增刪改查操作等。一個類似於SQLyog的可視化工具。相比於Head還有一個和ES無縫銜接的可視化插件Kibana,這個插件功能能強大也更美觀,我下節再跟大家分享。
環境準備
- Git
- Nodejs
安裝Nodejs環境
wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz //下載
xz -d node-v10.15.3-linux-x64.tar.xz //解壓xz格式
tar -xf node-v10.15.3-linux-x64.tar //最終解壓
配置環境變量
vim /etc/profile
export NODE_HOME=/usr/local/node
export PATH=$PATH:$NODE_HOME/bin
# 配置立馬生效
source /etc/profile
查看版本
[elsearch@imok bin]$ node -v
v6.10.2
[elsearch@imok bin]$ npm -v
3.10.10
下載Head插件
如果未安裝git ,則先安裝git工具
yum install –y git
git clone https://github.com/mobz/elasticsearch-head.git
安裝grunt
cd elasticsearch-head
npm install -g grunt --registry=https://registry.npm.taobao.org
安裝插件
npm install
對於Head的配置主要涉及兩個配置文件,尤其是 _site/app.js 這個配置文件,如果不進行合理配置前端將無法訪問到ES的資源。
配置一
修改配置 elasticsearch-head下Gruntfile.js文件
主要是修改其監聽端口,如果你的ES不是使用的9200默認監聽端口。
配置二
筆者在這裏躺了一個大坑,就是訪問前端head界面9200,其索引數據和集羣健康數據沒有,後來F12查看到原來是訪問了Localhost。就是因爲app.js的緣故。
啓動Head插件服務
/elasticsearch-head/node_modules/grunt/bin/grunt server &
或者 npm run start
到這呢就算是大功告成了。其實Es的搭建不算太難,多點耐心再看看我躺過坑你應該很順利的就能搞定。
後面呢等我玩玩Kibana再來寫一個Kibana的搭建流程。如果該文對你有的學習幫助,歡迎關注。
更多精彩好文盡在:Java編程之道
🎁
歡迎各位好友前去關注!🌹