本地虛擬機搭建ES集群


一、環境說明
   1、物理機信息(主要):
      內存:8G
      系統/主頻:Win7(旗艦版)64位/3.70GHZ 
   2、虛擬機信息: 
      VMware Workstation 14 Pro
      下載地址: 鏈接:https://pan.baidu.com/s/1X4RtZdQxL6HWGH1pAYyBhg 提取碼:26iv 
   3、鏡像信息:
      CentOS-7-x86_64-DVD-1804.iso
      下載地址:http://ftp.sjtu.edu.cn/centos/7/isos/x86_64/
   4、ElasticSearch:
      版本:elasticsearch-6.5.3.tar.gz
      下載地址:https://www.elastic.co/downloads/elasticsearch
二、安裝步驟
    1、安裝VMware/系統鏡像
       具體安裝步驟參考:https://blog.csdn.net/alan_gaohaodong/article/details/79867052
       說明:
       <1> 為后期操作方便建議將"GONME桌面"安裝上 <2> 如果在內網環境安裝,建議全量安裝(即"開發工具"、"安全性工具"、"傳統X Windows系統的兼容性"、"調試工具"等安裝上) <3> 本次需要3個ES節點,故需要創建3個虛擬機
       
    2、配置通信網絡(root用戶登錄操作)
       最終目標:物理機與3個虛擬機之間互相ping通、3個虛擬機之間互相ping通 <1> 設置網絡連接模式為 NAT
       <2> 設置IP(實際環境文件名:ifcfg-eth0  文件示例) 
           vi /etc/sysconfig/network-scripts/ifcfg-ens33
           生效:重啟系統 命令:reboot
           假設配置的三台虛擬機地址分別為:192.168.1.1 192.168.1.2 192.168.1.3 
       <3> 設置主機名  
           vi /etc/hostname  新增如下內容 (若沒生效則需要重啟)
           如果當前主機IP為192.168.1.1,則新增es1
           如果當前主機IP為192.168.1.2,則新增es2
           如果當前主機IP為192.168.1.3,則新增es3
       <4> 配置主機名、IP映射關系
           vi /etc/hosts  新增如下內容
           192.168.1.1 es1 192.168.1.2 es2 192.168.1.3 es3 <5> 開放端口(9200:與ES通信的http端口 5601:與kibana通信的http端口)       
           查詢端口是否開放:firewall-cmd --query-port=9200/tcp
           開放9200端口:firewall-cmd --zone=public --add-port=9200/tcp --permanent
           生效:firewall-cmd --relaod
           解決問題:通過curl或者瀏覽器不能訪問ES(集群)節點
       
    
    3、虛擬機系統配置
       說明:a、3個虛擬機都需要配置  b、以root用戶登錄操作
       <1> limits.conf
           vi /etc/security/limits.conf   新增如下內容
           *    soft nofile 65536
           *    hard nofile 131072
           *    soft nproc  4096
           *    hard nproc  4096
           避免問題max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] <2> 20-nproc.conf
           vi /etc/security/limits.d/20-nproc.conf  修改
           *    soft nproc  4096
           *    hard nproc  4096       
           避免問題: max number of threads [3764] for user [xx] is too low, increase to at least [4096]; <3> sysctl.conf
           vi /etc/sysctl.conf 新增如下內容
           vm.max_map_count = 655360
           執行操作,更新生效:sysctl -p
           避免問題:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] <4> 關閉防火牆
           查看防火牆狀態:firewall-cmd --state
           關閉防火牆:systemctl stop firewalld.service
           參考:https://blog.csdn.net/qq_34077993/article/details/82889558
           避免問題:org.elasticsearch.discovery.MasterNotDiscoveredException: waited for [30s]
           
    4、創建用戶
       說明:a、3個虛擬機都需要配置  b、以root用戶登錄操作
       創建用戶組:groupadd es
       創建用戶:   useradd es -g es    
       更改密碼:  passwd es            
    
    5、創建安裝包、數據、日志存放目錄
       說明:a、3個虛擬機都需要配置  b、以root用戶登錄操作
       <1> 創建軟件包存放位置,如 
            mkdir /app/es
       <2> 創建數據存放目錄,如 
            mkdir /app/es/data
       <3> 創建日志存放目錄,如 
           mkdir /app/es/log
           說明: <2> <3> 可以一起創建 
           命令:mkdir /app/es/data /app/es/log
       <4> 為上述目錄賦es用戶相關權限
           chown -R es:es /app
           
    6、上傳、解壓軟件包(elasticsearch-6.5.3.tar.gz)至上述目錄(es用戶操作)
       解壓elasticsearch-6.5.3.tar.gz
       cd /app/es/
       tar -zxvf elasticsearch-6.5.3.tar.gz elasticsearch-6.5.3

    7、配置elasticsearch.yml(es用戶操作)
       <1> 進入elasticsearch解壓后的目錄
           cd /app/es/elasticsearch-6.5.3/config
           vi elasticsearch.yml 
           編輯內容 參見附件:
           說明:
               a、改一個節點的elasticsearch.yml,其他節點可直接遠程復制,只用修改節點名稱、節點IP2個地方即可
               b、遠程復制命令:scp -r 用戶名@主機名:源文件路徑  源文件存放路徑
        <2> 主要配置項說明
cluster.name: 集群名(一個集群所有節點的集群名稱必須一致)
node.name: 節點名(不同節點,名稱不能一致)
node.master: 主節點(true:是 false:不是)
node.data: 存儲數據(true:存儲 false:不存儲)
node.ingest: 參與選舉(true:參與 false:不參與)
path.data: 數據存放路徑
path.logs: 日志存放路徑
bootstrap.memory_lock: 避免內存交換(需設置為false),參考:https://elasticsearch.cn/article/149
bootstrap.system_call_filter: Centos6不支持SecComp---需設置為false,如果為CentOS7則可設置為true
network.host: 節點ip
http.port: 節點端口
transport.tcp.port: 節點之間通信端口
http.cors.enabled: 跨域訪問(一般為true)
http.cors.allow-origin: 跨域訪問(一般為"*")
discovery.zen.ping.unicast.hosts: 主節點:節點通信端口 數組形式呈現 示例["192.168.1.1:9300","192.168.1.2:9300"]
注意:示例中 192.168.1.1和192.168.1.2 兩個節點node.master、node.ingest這兩個屬性都得為true
discovery.zen.minimum_master_nodes: 設置最小主節點個數,一般為:(master_node_count+1)/2 說明:master_node_count:設置node.master=true的節點個數
    8、啟動ES集群(es用戶操作)
       <1> 進入es1(節點1)elasticsearch解壓目錄bin路徑下,示例:
           cd /app/es/elasticsearch-6.5.3/bin   
       <2> 啟動 
           ./elasticsearch &
       <3> 啟動另外兩個節點

 

三、驗證   
   <1>方式一:瀏覽器
         http://192.168.1.1:9200/_cat/nodes?v
         示例:
          
   
   <2>方式二:安裝ElasticSearch-Head.crx查看
         示例:
        

   
   

 

參考:

https://elasticsearch.cn/article/6152

https://blog.csdn.net/gamer_gyt/article/details/59077189

https://blog.csdn.net/qq_22211217/article/details/80740873    (centos7下部署elasticsearch常見錯誤)

https://www.cnblogs.com/zhi-leaf/p/8484337.html          (ES啟動常見錯誤)

https://blog.csdn.net/wanderstarrysky/article/details/52924434  

https://blog.csdn.net/zx110503/article/details/78787483            (端口開放)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM