Elasticsearch设置 X-Pack认证,设置账号和密码
前言
以下Elasticsearch版本:7.9.3
ES自带的X-Pack密码验证:
- X-Pack是elasticsearch的一个扩展包,将安全,警告,监视,图形和报告功能捆绑在一个易于安装的软件包中,所以我们想要开启账号密码验证,就需要开启X-Pack密码校验。
- 5.X版本之前:Elasticsearch没有自带X-Pack,X-Pack的各个功能(如安全、警报、监视、图形和报告)是独立的单元。
- 5.X版本:Elasticsearch对原本的安全、警报、监视、图形和报告等功能做了一个封装,形成了X-Pack,但X-Pack仍需要额外安装。
- 6.3版本及之后:X-Pack已经集成在一起发布,无需额外安装。不过,基础安全功能在付费黄金版中才可用。
- 6.8及以上版本:默认带上了X-Pack认证插件且免费。
- 7.0+版本:默认情况下,当安装Elasticsearch时,会安装X-Pack,无需单独再安装。
Elasticsearch的X-Pack 详细简介:点我查看
一、修改ES配置文件
在ES配置文件config 文件夹:elasticsearch.yml 添加如下配置
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true

若想关闭x-pack密码验证,如下操作:
xpack.security.enabled: false
二、重新启动ES
找到ES路径 bin 下面 双击 elasticsearch.bat 重新启动后,以上配置才生效

启动完成:

三:通过命令设置ES密码
通过管理员打开cmd窗口,切换到ES文件夹 bin 路径下面 执行以下命令:
elasticsearch-setup-passwords interactive
1、出现以下情况,输入:y

2、可以开始设置密码了,一次性需要设置多个密码,密码尽量保证一致

其中,用户权限分别如下:
- elastic 账号:拥有 superuser 角色,是内置的超级用户
- kibana 账号:拥有 kibana_system 角色,用户 kibana 用来连接 elasticsearch 并与之通信。Kibana 服务器以该用户身份提交请求以访问集群监视 API 和 .kibana 索引。不能访问 index。
- logstash_system 账号:拥有 logstash_system 角色。用户 Logstash 在 Elasticsearch 中存储监控信息时使用。
密码设置完成后,重新启动ES
四:访问ES 验证是否成功?
访问 127.0.0.1:9200

ES用户名:elastic
passWord: 刚才设置的密码

密码设置成功!
五:kibana 配置ES
1、修改kibana 配置文件 kibana.yml ,添加如下配置
elasticsearch.hosts: ["http://127.0.0.1:9200"]
elasticsearch.username: "elastic"
elasticsearch.password: "zxcv9527"

2、执行 bin下面的 kibana.bat 启动

3、浏览器访问 127.0.0.1:5601 输入账号和密码
备注:注意网站登录的账号和密码是ES
kibana 账号:elastic
passWord: zxcv9527

六:Spring Boot 配置ES
1、yml文件配置
在配置 Spring Data Elasticsearch 以使用带有身份验证的 Elasticsearch 客户端时,你需要确保配置文件中包含了正确的连接信息和认证细节。基于你提供的信息,你的 Elasticsearch 实例位于 127.0.0.1:9200,账号为 elastic,密码为 zxcv9527。
对于 Spring Boot 应用,你可以在 application.yml 或 application.properties 文件中设置这些配置。以下是如何在 application.yml 文件中配置这些信息的示例:
spring: data: elasticsearch: client: reactive: endpoints: 127.0.0.1:9200 username: elastic password: zxcv9527
或者,如果你使用的是 application.properties 文件,配置是这样的:
spring.data.elasticsearch.client.reactive.endpoints=127.0.0.1:9200
spring.data.elasticsearch.client.reactive.username=elastic
spring.data.elasticsearch.client.reactive.password=zxcv9527
这些配置设置将确保 Spring Data Elasticsearch 使用提供的用户名和密码连接到指定的 Elasticsearch 端点。
2、java 代码配置类
只是一个简单的配置类,主要是连接测试,参考使用
import com.lingxu.plus.es.utils.ElasticSearchUtil;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** @Author ajie** @since 20241014*/
@Configuration
public class ElasticSearchClientConfig {@Value("${spring.data.elasticsearch.client.reactive.endpoints}")private String endpoints;@Value("${spring.data.elasticsearch.client.reactive.username}")private String userName;@Value("${spring.data.elasticsearch.client.reactive.password}")private String password;@Bean // 标记这个方法生成的对象是一个Spring管理的Beanpublic RestHighLevelClient restHighLevelClient() {// 将端点字符串分割成数组String[] points = endpoints.split(",");// 创建一个与端点数组长度相同的HttpHost数组HttpHost[] httpHosts = new HttpHost[points.length];// 遍历端点数组,创建HttpHost对象并填充到数组中for (int i = 0; i < points.length; i++) {String point = points[i];String[] hostPort = point.split(":");httpHosts[i] = new HttpHost(hostPort[0], Integer.parseInt(hostPort[1]), "http");}// 创建一个凭证提供者,用于存储用户名和密码CredentialsProvider credentialsProvider = new BasicCredentialsProvider();// 设置凭证提供者的认证范围(这里设置为ANY,表示对所有主机都使用这些凭证)// 并使用用户名和密码创建基本认证凭据credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName, password));// 自定义RestClientBuilder,以便在创建HTTP客户端时使用凭证提供者RestClientBuilder builder = RestClient.builder(httpHosts).setHttpClientConfigCallback(httpClientBuilder -> {// 在HTTP客户端构建器中设置凭证提供者return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);// 这里可以根据需要添加其他配置,比如SSL设置等});// 使用自定义的构建器创建RestHighLevelClient对象RestHighLevelClient client = new RestHighLevelClient(builder);// 返回创建的RestHighLevelClient对象return client;}@Beanpublic ElasticSearchUtil elasticSearchUtil() {return new ElasticSearchUtil();}
}
3、注意事项
- 版本兼容性:检查你使用的 Spring Data Elasticsearch 版本与你的 Elasticsearch 服务器版本是否兼容。
- 依赖关系:确保你的项目中包含了 Spring Data Elasticsearch 的依赖。对于使用 Spring Boot 的项目,你可以添加类似以下的依赖到你的 pom.xml(如果你使用 Maven):
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch-reactive</artifactId>
</dependency>
- 安全性:确保你的密码和其他敏感信息不会硬编码在源代码或配置文件中,特别是在生产环境中。考虑使用环境变量或外部配置服务来管理敏感信息。
- 连接测试:在应用启动后,测试连接是否成功,可以通过查看日志或使用一些简单的查询来验证。
这样配置后,你的 Spring 应用应该能够成功连接到需要身份验证的 Elasticsearch 实例。
七:修改密码
命令中,elastic是要修改密码的用户名。执行完命令后,输入新密码即可完成密码修改
bin/elasticsearch-users passwd elastic
服务器修改、rest api:
语法示例:
curl -H "Content-Type:application/json" -XPOST -u elastic 'http://192.168.157.132:9200/_xpack/security/user/用户名/_password' -d '{ "password" : "修改后的密码" }'
修改 elastic 示例:
curl -H "Content-Type:application/json" -XPOST -u elastic 'http://127.0.0.1:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "zxcv9527" }'
忘记密码处理:
- 修改elasticsearch.yml 配置,将身份验证相关配置屏蔽掉;
- 重启ES,查看下索引,发现多了一个.security-7索引,将其删除
- 到此就回到ES没有设置密码的阶段了,如果想重新设置密码,请重新开始
备注:ES 整体路径不要存在中文名称和特殊符号,空格、等,防止出现一些其他问题。
相关文章:
Elasticsearch设置 X-Pack认证,设置账号和密码
前言 以下Elasticsearch版本:7.9.3 ES自带的X-Pack密码验证: X-Pack是elasticsearch的一个扩展包,将安全,警告,监视,图形和报告功能捆绑在一个易于安装的软件包中,所以我们想要开启账号密码验证…...
机器学习——量子机器学习(Quantum Machine Learning)
机器学习——量子机器学习(Quantum Machine Learning) 量子机器学习(Quantum Machine Learning)——未来的智能计算量子机器学习的核心概念使用Qiskit进行量子机器学习——代码示例代码解析量子机器学习的应用结论 量子机器学习&a…...
Android Studio 的 Gradle 任务列表只显示测试任务
问题现象如下: 问题原因: 这是因为Android Studio 设置中勾选了屏蔽其他gradle任务的选项。 解决方法: File -> Settings -> Experimental 取消勾选Only include test tasks in the Gradle task list generated during Gradle Sync&…...
Keepalived:高可用性的守护神
Keepalived:高可用性的守护神 在现代企业IT系统中,高可用性是确保业务连续性和服务质量的关键要素。系统面对硬件故障、软件错误、人为失误或自然灾害时,依然能保持正常运行,这样的能力对于企业来说至关重要。为此,业界开发了一系列高可用性解决方案,其中Keepalived以其…...
Golang笔记_day08
Go面试题(一) 1、空切片 和 nil 切片 区别 空切片: 空切片是指长度和容量都为0的切片。它不包含任何元素,但仍然具有切片的容量属性。在Go语言中,可以使用内置的make函数创建一个空切片,例如:…...
如何在 React 中更新状态对象的某个值
在 React 中,我们经常需要更新组件的状态来反映 UI 的变化。如果状态是一个复杂的对象,比如一个包含多个筛选条件的对象,我们希望只更新其中的某个键,而不是整个状态对象。今天,我将向大家展示如何在更新状态时保留已有…...
edge浏览器:你的连接不是专用连接
最近在使用edge浏览器打开github时,发现打不开了,提升你的连接不是专用连接。试了很多种方法甚至重装了浏览器,都没有用。 直到看到了这篇文章,才得到解决: 10 个修复此站点在 Windows Edge 上的连接不安全的问题htt…...
PDF 软件如何帮助您编辑、转换和保护文件
如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的…...
如何使用Java爬虫处理API接口返回的JSON数据?
处理API接口返回的JSON数据是Java爬虫开发中的一个常见任务。在Java中,有多个库可以帮助我们解析JSON数据,其中最流行的是Jackson和Gson。以下是使用这两个库处理JSON数据的基本步骤和示例代码。 使用Jackson处理JSON Jackson是一个功能强大的JSON处理…...
Ajax是什么?
Ajax是什么? Ajax是创建交互式网页应用的网页开发技术。简单来说就是网页在不加载的情况下,可以跟服务器交换数据,并更新页面的内容。 原理: 1. 创建xhr(xmlHttpRequest)对象; 2, 通过xhr对象的open()方法和…...
技术方向简介
掌握 Java基础,包括OOP思想、集合、常用的设计模式;熟悉基本的数据结构和算法; 掌握JVM虚拟机和Java多线程并发编程,熟悉线程池、线程安全机制、锁的使用; 熟悉MySQL、Oracle等关系型数据库锁、事务、索引相关知识,了解DDL原理&…...
延迟队列实现及其原理详解
1.绪论 本文主要讲解常见的几种延迟队列的实现方式,以及其原理。 2.延迟队列的使用场景 延迟队列主要用于解决每个被调度的任务开始执行的时间不一致的场景,主要包含如下场景: 1.比如订单超过15分钟后,关闭未关闭的订单。 2.比如用户可以…...
web APIs
目录 Web APIs第一天Dom获取&属性操作Web API基本认知变量声明作用和分类什么是DOMDOM树DOM对象 获取Dom对象根据CSS选择器来获取DOM元素(重点)其他获取DOM元素方法(了解) 操作元素内容对象.innerText 属性对象.innerHTML 属性…...
【Web前端概述】
HTML 是用来描述网页的一种语言,全称是 Hyper-Text Markup Language,即超文本标记语言。我们浏览网页时看到的文字、按钮、图片、视频等元素,它们都是通过 HTML 书写并通过浏览器来呈现的。 一、HTML简史 1991年10月:一个非正式…...
文献阅读:一种基于艾伦脑图谱的空间表达数据可视化、空间异质性描绘和单细胞配准工具
::: block-1 文献介绍 文献题目: AllenDigger,一种基于艾伦脑图谱的空间表达数据可视化、空间异质性描绘和单细胞配准的工具 研究团队: 王晓群(北京师范大学) 发表时间: 2023-03-16 发表期刊:…...
Redis学习笔记(三)--Redis客户端
文章目录 一、命令行客户端二、图形界面客户端1、Redis Desktop Manager2、RedisPlus 三、java代码客户端 本文参考: Redis学习汇总(已完结) Redis超详细入门教程(基础篇) Redis视频从入门到高级,redis视频…...
面试知识梳理
一、vue篇章 1.vue2和vue3性能方面的提升最主要的原因是什么? 1、1响应式的系统优化: vue3使用了es6的proxy对象来实现响应式系统,取代了vue2中基于Object.defineProperty的方法。Proxy提供了更强大和灵活的拦截能力,可以更有效地…...
Unity3D ScrollView 滚动视图组件详解及代码实现
前言 在Unity3D中,ScrollView(滚动视图)是一种常用的UI组件,它允许用户通过滚动来查看超出当前视图范围的内容。ScrollView通常用于显示长列表、大量文本或图像等。本文将详细介绍Unity3D中的ScrollView组件,并提供代…...
13.java面向对象:封装
java面向对象:封装 我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。 封装(数据的隐藏)通常应禁止直接访问一个对象中…...
记录:网鼎杯2024赛前热身CRYPT01密码学
题目 下载并打开附件 判断为凯撒密码,尝试移位解密 在第10位发现flag字样 提交得分 解密脚本为个人自用,因比赛未结束故不开源...
**基于Python与BCI接口的脑机交互编程实践:从信号采集到实时控制的全流程实
基于Python与BCI接口的脑机交互编程实践:从信号采集到实时控制的全流程实现 在人工智能与神经科学融合加速发展的今天,脑机接口(Brain-Computer Interface, BCI) 正逐渐从实验室走向实用化场景。本文将带你深入一个完整的 Python驱…...
2025最权威的五大AI辅助论文方案实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于借助人工智能去生成文本之际,原始输出常常带有显著的模式化印迹。为达成“降AI…...
COMSOL热应力仿真新手入门:从零开始设置热膨胀参数(附案例解析)
COMSOL热应力仿真新手入门:从零开始设置热膨胀参数(附案例解析) 热应力仿真是工程设计中不可或缺的一环,尤其在电子设备散热、航空航天材料分析等领域应用广泛。作为COMSOL Multiphysics的初学者,掌握热应力仿真的基础…...
保姆级教程:在Jetson Orin上从零搭建DJI OSDK + ROS2 Humble开发环境(避坑指南)
保姆级教程:在Jetson Orin上从零搭建DJI OSDK ROS2 Humble开发环境(避坑指南) 当无人机遇上边缘计算,Jetson Orin与ROS2的组合正在重新定义自主飞行系统的开发范式。作为大疆生态中最硬核的开发方式,OSDK允许开发者直…...
COMSOL模拟:电磁超声压电接收技术在铝板裂纹检测中的应用
comsol电磁超声压电接收EMAT 在1mm厚铝板中激励250kHz的电磁超声在200mm位置处设置一个深0.8mm的裂纹缺陷,左端面设为低反射边界 在85mm位置处放置一个压电片接收信号,信号如图3所示,三个波分别为始波,裂纹反射波(S0模态)和右端面…...
Transformer双模态新玩法:CodeBERT如何同时理解代码和自然语言?
Transformer双模态新玩法:CodeBERT如何同时理解代码和自然语言? 在AI领域,让机器同时理解编程语言和自然语言一直是个令人着迷的挑战。想象一下,一个模型既能读懂Python代码的逻辑结构,又能理解开发者用英语写的注释文…...
Ollama部署granite-4.0-h-350m:面向开发者的小型AI工具链构建教程
Ollama部署granite-4.0-h-350m:面向开发者的小型AI工具链构建教程 1. 开篇:为什么选择granite-4.0-h-350m? 如果你正在寻找一个既轻量又功能强大的AI模型来构建自己的开发工具链,granite-4.0-h-350m绝对值得关注。这个只有350M参…...
智能配置引擎:OpenCore EFI构建效率提升90%的技术突破
智能配置引擎:OpenCore EFI构建效率提升90%的技术突破 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 问题溯源:开源系统硬件适…...
基于模糊控制的改进DWA算法功能详解
改进动态窗口DWA算法,模糊控制自适应调整评价因子权重,matlab代码 这段代码是一个基于动态窗口法(Dynamic Window Approach,DWA)的路径规划算法的实现。下面我将对代码进行分析,并解释算法的优势、需要注意…...
不平衡电网电压下虚拟同步发电机VSG并网运行及多目标控制策略研究
不平衡电网电压下虚拟同步发电机VSG并网运行(三相电流平衡、有功功率恒定、无功功率恒定三种控制目标皆可实现),下图只现实了不平衡电压下控制三相电流平衡,送相关文档 不平衡电网电压绝对是VSG并网的噩梦,本来好好的…...
