Linux搭建ElasticSearch(ES)集群并设置密码登录_es集群设置登录密码-程序员宅基地

技术标签: 1024程序员节  elasticsearch  

1. 环境信息

操作系统:CentOS7或者Amazon Linux 2

内核架构:x86_64

ElasticSearch版本:6.8.10

JDK版本:8u351

本次搭建的3台服务器IP地址:

ES节点 IP地址
es-node1 172.16.1.21
es-node2 172.16.1.22
es-node3 172.16.1.23

安装目录:/data

2. 下载ES安装包

在3台服务器上各自下载tar.gz包:

wget  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.10.tar.gz

也可以在官网中下载,下载地址Elasticsearch 6.8.10 | Elastic

 解压安装包至/data目录:

tar -zxvf elasticsearch-6.8.10.tar.gz -C /data

3. 安装JDK

在3台服务器上各自下载rpm包

JDK官网地址:

https://www.oracle.com/java/technologies/javase-jdk11-downloads.html

注意:需要登录Oracle才能下载,可以注册一个账号使用。

选择JAVA8中的Linux 64位的rpm包,点击下载

 将下载的JDK安装包上传至服务器/data/software目录,然后rpm直接安装JDK:

rpm -ivh /data/software/jdk-8u351-linux-x64.rpm

完成后输入java -version可以看到以下输出:

配置java环境变量:

vim /etc/profile

在末尾增加以下内容:

export JAVA_HOME=/usr/java/jdk1.8.0_351-amd64
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

wq保存退出后,输入命名生效:

source /etc/profile

3. 搭建ElasticSearch集群

解压完成后,ES的目录为/data/elasticsearch-6.8.10

创建数据目录、日志目录:

mkdir -p /data/elasticsearch-6.8.10/data
mkdir -p /data/elasticsearch-6.8.10/logs

配置修改

编辑elasticsearch.yml,开始修改ElasticSearch集群的配置,3台服务器上的配置不同。

vim /data/elasticsearch-6.8.10/config/elasticsearch.yml

其中,服务器1配置如下:

cluster.name: es-cluster    #集群名称
node.name: es-node1    #当前节点名称
node.master: true    #允许当前节点作为master主节点
node.data: true

path.data: /data/elasticsearch-6.8.10/data    #ES集群数据目录
path.logs: /data/elasticsearch-6.8.10/logs    #ES集群日志目录

network.host: 0.0.0.0    #配置0.0.0.0允许其他地址访问
http.port: 9200    #对外访问端口
transport.tcp.port: 9300
transport.tcp.compress: true

discovery.zen.ping.unicast.hosts: ["172.16.1.21", "172.16.1.22", "172.16.1.23"]    #集群的所有节点的IP地址
discovery.zen.minimum_master_nodes: 2    #集群正常运行的节点数量,一般为半数+1
discovery.zen.ping_timeout: 3s    #集群节点发现超时时间

http.cors.enabled: true    #允许跨域访问
http.cors.allow-origin: "*"

#以下配置用于设置密码访问ES集群,如不需要可以不用
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

服务器2配置如下:

cluster.name: es-cluster
node.name: es-node2    #节点名称,集群内各个节点名称唯一
node.master: true
node.data: true

path.data: /data/elasticsearch-6.8.10/data
path.logs: /data/elasticsearch-6.8.10/logs

network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
transport.tcp.compress: true

discovery.zen.ping.unicast.hosts: ["172.16.1.21", "172.16.1.22", "172.16.1.23"] 
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 3s

http.cors.enabled: true
http.cors.allow-origin: "*"

#以下配置用于设置密码访问ES集群,如不需要可以不用
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

服务器3配置如下:

cluster.name: es-cluster
node.name: es-node3    #节点名称,集群内各个节点名称唯一
node.master: true
node.data: true

path.data: /data/elasticsearch-6.8.10/data
path.logs: /data/elasticsearch-6.8.10/logs

network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
transport.tcp.compress: true

discovery.zen.ping.unicast.hosts: ["172.16.1.21", "172.16.1.22", "172.16.1.23"] 
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 3s

http.cors.enabled: true
http.cors.allow-origin: "*"

#以下配置用于设置密码访问ES集群,如不需要可以不用
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

其他配置修改,主要是修改jvm的运行内存大小,可以根据实际情况按需修改:

vim /data/elasticsearch-6.8.10/config/jvm.options

修改其中的以下两条,根据实际情况按需修改:

-Xms1g
-Xmx1g

系统参数修改:

vim /etc/security/limits.conf

在末尾增加以下内容:

*                soft    nofile          65536
*                hard    nofile          65536
*                soft    nproc           4096
*                hard    nproc           4096

修改/etc/sysctl.conf配置:

vim /etc/sysctl.conf
vm.max_map_count=655360

修改完成保存生效:

sysctl -p

运行用户创建

由于ES集群不允许root用户运行,需要创建ES运行用户:

# 创建用户组
groupadd es
# 创建用户并添加至用户组
useradd es -g es 
# 更改用户密码(输入 es)
passwd es

修改目录权限:

sudo chown -R es:es  /data/elasticsearch-6.8.10

切换用户:

su es

至此安装ElasticSearch集群就结束了,不需要开启密码访问的话,就可以直接启动3台服务器的ES集群服务了。

启动服务

cd /data/elasticsearch-6.8.10/bin
./elasticsearch -d    #-d是后台启动,第一次启动时可以不加-d,查看启动的日志情况

启动后输入jps可以查看到服务状态

3台节点都启动完成后,可以在浏览器访问http://节点IP地址:9200/_cat/health?v查看集群状态

 也可以直接访问http://节点IP地址:9200查看服务情况

开启密码访问

在服务器1上生成 TLS 和身份验证,将会在 config 下生成 elastic-certificates.p12 文件,将此文件传到其他两个节点的 config 目录,注意文件权限

cd /data/elasticsearch-6.8.10
bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""

将 config目录下的elastic-certificates.p12文件上传至其他2台服务器的config目录下。

重启ElasticSearch服务,3台服务器都需要执行:

jps    #查询ES服务进程号
kill -9 xxx    #杀掉ES进程,关闭服务

cd /data/elasticsearch-6.8.10/bin
./elasticsearch -d    #启动服务

设置密码,在服务器1上执行命令:

cd /data/elasticsearch-6.8.10
bin/elasticsearch-setup-passwords interactive

随后按照提示依次输入elastic、apm_system、kibana、logstash_system、beats_system、remote_monitoring_user这6个用户的密码,完成后数据会自动同步至其他2个节点。

再次在浏览器中访问ES,http://ip地址:9200,就可以看到需要用户名密码访问了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_61418822/article/details/127497471

智能推荐

KlayGE 4.0中Deferred Rendering的改进(四):GI的神话-程序员宅基地

文章浏览阅读59次。转载请注明出处为KlayGE游戏引擎上一篇解决了透明物体的渲染问题;本文将挑战另一个实时渲染的神话,实时全局光照(GI)。实时全动态GI目前direct lighting在游戏中日趋成熟,比较前卫的游戏引擎已经不满足于diect lighting的效果了,逐渐开始尝试indirect lighting。早期的方法有通过离线渲染light map来实现静态场景、静态光源的GI。接着出现...

初识Git_git必须用网络吗-程序员宅基地

文章浏览阅读433次。Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。简言概括:Git就是分布式版本控制。_git必须用网络吗

搭建Vulhub靶场 【附图】_vulhub靶场搭建-程序员宅基地

文章浏览阅读2.1w次,点赞59次,收藏265次。目录0x01简单概述0x02安装环境1. kali设置2. 更新软件源中的所有软件列表3. 安装https协议及CA证书0x03安装步骤一、安装Docker1. 下载安装2. 查看Docker是否安装成功3. 查看docker基本信息二、安装vluhub1. 安装pip32. 安装Docker-Compose3. 查看docker-compose版本三、安装vulhub靶场1. 克隆下载2. 随便进入一个靶场环境目录3. 对靶场进行编译4. 运行此靶场5. 查看启动环境6. 通过浏览器访问7. 关闭此靶场环_vulhub靶场搭建

sensei鼠标测试软件,「硬核测试:游戏鼠标精准度」赛睿SENSEI 310-程序员宅基地

文章浏览阅读564次。原标题:「硬核测试:游戏鼠标精准度」赛睿SENSEI 310作为赛睿最热销游戏鼠标之一,310有SENSEI(对称)和RIVAL(右手)两个版本,均采用今天要测的TrueMove3引擎,是基于PMW3360打造的1:1真实追踪的引擎,虽然现在“1:1引擎”很多了,但TrueMove出来时这个概念还是很新颖的,尤其是提到了消除抖动,最大限度的保持理论和实际DPI的稳定性,那么到底是不是真的1:1呢,..._鼠标精确度检测软件

国际酒店预订APP_基于android平台的酒店预订管理系统软件设计的论文-程序员宅基地

文章浏览阅读209次,点赞6次,收藏5次。随着人们生活水平的提高和旅游业的迅速发展,国际酒店的预订需求越来越大。为满足用户的需求,安卓国际酒店预订APP应运而生。本文旨在详细介绍该APP的设计与实现过程,以提供方便、快捷、安全的酒店预订服务。首先,本文将介绍课题的背景和国内外现状与趋势。随着国内外旅游业的快速发展,人们对旅游住宿的需求也越来越高。同时,随着移动互联网的普及,手机APP已经成为人们预订酒店的首选方式。因此,开发一款便捷、实用的酒店预订APP已经成为当务之急。接着,本文将详细阐述系统的设计和实现过程。_基于android平台的酒店预订管理系统软件设计的论文

DirectX9 ShadowMap例子学习笔记_g_aminitobjworld-程序员宅基地

文章浏览阅读2.7k次。本文版权归博客园 mavaL所有,如有转载请按如下方式详细标明原创作者及出处,以示尊重!!原创作者:mavaL原文链接:DirectX9 ShadowMap例子学习笔记学习SDK例子真是快速加强编程能力的途径,然而虽如此,微软不仅在每个例子中展示了本_g_aminitobjworld

随便推点

快速访问中的ftp文件夹右键没有选项,无法删除如何解决-程序员宅基地

文章浏览阅读894次。随便在以一个目录里新建一个快捷方式,填上ftp地址,如下:下一步,然后删除此快捷方式,那废的ftp就没了转载于:https://www.cnblogs.com/shuangfeike/p/11413734.html..._群辉的ftp文件点右键没有编辑功能

mybatis根据数组批量查询_前端传入的是long型的数组后端在mybatis中怎么批量查询-程序员宅基地

文章浏览阅读1.8k次。接口/** * 从页面接收的数据是多值数据,就是一个数组,它不想转成其它类型,直接把数组丢给dao */ public List<Emp> queryByArray(Integer[] empnos);EmpMapper.xml配置文件<select id="queryByArray" resultType="emp"> select <incl..._前端传入的是long型的数组后端在mybatis中怎么批量查询

python词云是什么意思_python生成词云-程序员宅基地

文章浏览阅读715次。前言在大数据时代,你竟然会在网上看到的词云,例如这样的。看到之后你是什么感觉?想不想自己做一个?如果你的答案是正确的,那就不要拖延了,现在我们就开始,做一个词云分析图,Python是一个当下很流行的编程语言,你不仅可以用它做数据分析和可视化,还能用来做网站、爬取数据、做数学题、写脚本替你偷懒……如果你之前没有编程基础,没关系。希望你不要限于浏览,而是亲自动手尝试一番。到完成的那一步,你不仅可以做出..._词云是什么意思

nginx_nginxl-程序员宅基地

文章浏览阅读469次。什么是nginxNginx (engine x) 是一个高性能的HTTP和反向代理web服务器,使用c语言编写的一款web服务软件.Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。为什么使用nginx?作用1.反向代理2.负载均衡。3.._nginxl

英语 | Day 33、34 x 句句真研每日一句(找从句、意译)_句句真研每日一句答案在哪-程序员宅基地

文章浏览阅读465次,点赞2次,收藏3次。Day 33Day 34_句句真研每日一句答案在哪

python全栈指的是什么意思?这篇文章非常值得一看_什么是python全栈-程序员宅基地

文章浏览阅读620次。所以说一个现代化的项目,是一个非常复杂的构成,我们需要一个人来掌控全局,他不需要是各种技术的资深专家,但他需要熟悉到各种技术。全栈只是个概念,我们要明白全栈也是有分非常多类别的,真正的全栈工程师涵盖了web开发,DBA、爬虫、测试等各种技能,要学的内容也是相当大的。很多小伙伴想知道python全栈是什么意思,那么今天小编就通过这篇文章来给大家详细讲解一下什么是python的全栈,感兴趣的小伙伴一定要耐心阅读一下这篇文章。以上就是小编给大家带来的python全栈是什么意思的相关知识了。_什么是python全栈