ES在Linux下安裝的那些破事

先贊後看,養成習慣 🌹 歡迎微信關注[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文件,增加配置,用戶退出後重新登錄生效
    *               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編程之道 🎁
歡迎各位好友前去關注!🌹
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章