一、環境說明
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 (端口開放)