【elastic】elastic高可用集群部署


前言

本博客内容仅为记录博主思路,仅供参考,一切以自己实践结果为准。


一、资源分享

1、包含源码包、配置文件

链接:https://pan.baidu.com/s/1NognuX7vhWaf6r5yLPMP0A?pwd=hcx7
提取码:hcx7


二、部署过程

#准备工作:关闭防火墙、selinux、创建服务目录、上传源码包到服务器
systemctl disable --now firewalld
setenforce 0 && sed -i "s/SELINUX=enforcing/SELINUX=disable/" /etc/selinux/config
mkdir -p /data/elastic/{logs,data}

#安装jdk环境,注环境变量这种东西配置到profile的子目录,防止出问题,且jdk1.5后不需要配置CLASSPATH
tar -zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/
cat >/etc/profile.d/jdk.sh<<EOF
JAVA_HOME=/usr/local/jdk1.8.0_91
PATH=\$PATH:\$JAVA_HOME/bin
EOF
source /etc/profile.d/jdk.sh
#验证Java环境,若是显示为对应Java版本则安装成功
java -version

#添加es普通用户并设置密码作为es服务器启动者(-G补充组,-g所属组
useradd es && echo abc123 | passwd --stdin es

#修改Linux系统内核参数:最大打开文件数、文件描述符数、一个进程可用线程数
vim /etc/sysctl.conf
	fs.file-max = 655350			#最大打开文件描述符数量,建议修改为655350
	vm.max_map_count = 655350		#一个进程可用最大VM数量(虚拟内存大小)
sysctl -p 							#配置立即生效

vim /etc/security/limits.conf		#注:root的权限只会被root覆盖,不会被*覆盖
	* soft nproc 65535				#* 			代表任何用户
	* hard nproc 65535				#soft 		软限制(警告:超出数量警告)
	* soft nofile 65535				#hard 		硬限制(阈值:最多使用多少)
	* hard nofile 65535				#nproc		最大打开的进程数
	* soft memlock unlimited		#nofile		最大打开的文件数
	* hard memlock unlimited		#memlock	最大锁定物理内存
vim  /etc/security/limits.d/20-nproc.conf
	*          soft    nproc     65535
	root       soft    nproc     unlimited
#配置完成后和切换es用户查看
su es
ulimit -a
exit

#配置es配置文件
tar -zxvf elasticsearch-6.7.1.tar.gz -C /usr/local/
vim /usr/local/elasticsearch-6.7.1/config/jvm.options
	#配置JVM参数,对es服务进行调优,建议设置服务器物理内存的半数(若开启物理内存锁定,有可能锁定失败)
	-Xms1g
	-Xmx1g
vim /usr/local/elasticsearch-6.7.1/config/elasticsearch.yml
	cluster.name: pms30-cluster				#设置elastic集群名称
	node.name: master-1						#当前节点在es集群中的名称
	node.master: true						#true为备选主节点、拥有选取leader投票权
	node.data: true							#true数据存储节点
	path.data: /data/elastic/data/			#数据存储目录
	path.logs: /data/elastic/logs/			#日志存储目录
	bootstrap.memory_lock: true				#true锁定物理内存(若报错锁定内存失败,false关闭即可)
	network.host: 192.168.13.10				#当前节点的IP通讯地址,也可以设置为0.0.0.0
	http.port: 19200						#集群对外暴露端口号
	transport.tcp.port: 19300				#集群内部通讯端口号
	#集群IP地址及内部通讯端口号
	discovery.zen.ping.unicast.hosts: ["192.168.13.10:19300","192.168.13.20:19300","192.168.13.30:19300"]
	discovery.zen.minimum_master_nodes: 2	#leader选票机制,一般设置为集群投票的半数以上,防止脑裂
	http.cors.enabled: true					#开启跨域访问支持,默认为false
	http.cors.allow-origin: "*"				#允许跨域访问的IP地址,*代表任意地址

#将所有相关文件的属主/组改会es,否则权限不够无法运行
chown -R es:es /usr/local/elasticsearch-6.7.1/ /data/elastic/

#配置完成,切换es用户和后台运行,如果用root运行会失败,且会把文件属主/组改会root,此时需再修改一次属主/组
su es
/usr/local/elasticsearch-6.7.1/bin/elasticsearch -d
#可通过本文下方命令验证es集群是否部署完成

三、报错锦集

#报错锦集

  • 1、not enough master nodes discovered during pinging
    节点启动较少,没有选举出来leader导致,依次启动节点即可解决
  • 2、连接不上XXX节点
    检查防火墙是否没有关闭,大概率是这个问题,生产环境更有可能(不止是firewalld这个墙)
  • 3、warning: Falling back to java on path. This behavior is deprecated. Specify JAVA_HOME
    基本上Java1.5版本之后就不会再配置CLASSPATH环境变量了,这个错误不影响服务运行
  • 4、could not find java; set JAVA_HOME
    Java环境没有安装好,服务没有找到jdk的命令,安装jdk即可
  • 5、INFO: os::commit_memory(0x00000005d4cc0000, 8241020928, 0) failed;error=‘Cannot allocate memory’ (errno=12)
    物理内存锁定失败,首先free -h查看自己有多少内存,是否是之前部署失败的es还在运行(kill -9 PID)
    然后尝试还是不行,尝试缩小要锁定的物理内存,或者关闭锁定物理内存选项即可
  • 6、max file descriptors [4096] for elasticsearch process is too low
    最大打开文件数、文件描述符数、一个进程可用线程数开小了,去配置大一些即可

四、es的部分相关命令

  • 地址可以是负载均衡地址(必须所有节点都在线,否则可能失败),也可以是节点IP地址
#查看es集群状态
curl http://192.168.13.10:19200/_cat/health?v
#好看es节点信息
curl http://192.168.13.10:19200/_cat/nodes?v
#查看es分片信息
curl http://192.168.13.10:19200/_cat/shards?v
#查看es所有命令
curl http://192.168.13.10:19200/_cat

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪碧不要气

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值