Elasticsearch-head访问 elasticsearch 报错 401 解决方案

本文介绍了在Elasticsearch 8.3版本中遇到401权限错误的解决方案,重点在于理解xpack的安全机制。文章提到,初次运行Elasticsearch会生成默认的用户名、密码和Kibana token。为了解决401错误,可以禁用ssl以简化登录,但推荐保持启用以保障安全性。对于后端跨域问题,可以通过修改`elasticsearch.yml`配置文件开启CORS并放宽权限。在设置完成后,需重启服务,并使用正确的用户名和密码进行访问。此外,还提供了忘记初始密码的解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置
系统MacOS
es 版本8.3

401 报错本质没有权限, 先记住这个事.然后顺着这个思路去解决, 因为 elasticsearch 在启动时会运行 xpack(这东西是什么, 这里不做讨论)
当你第一次运行 elasticsearch 的时候它会 给你用户名, 密码, 以及 kibana 的 token(30分钟有效期)等, 这次运行之后你就会发现的配置文件多了几行 看下图
在这里插入图片描述
回到正题报错 401 就是因为没有权限, 为什么没有权限因为多了这段配置? 这段配置干嘛的你无需知道, 你只需要知道里面有 ssl, 如果你想跳过密码登录这个过程 你直接把上面图中的 enable 都设置成 false, 但这样就跟裸奔没区别. 大多数人还是想使用密码来保证服务器的安全性.

这时候我们插播一个跨域问题, 跨域分为前端跨域跟后端跨域, 而elaticsearch本身就是一个服务器, 它的跨域本质上就是后端跨域. 只需要在 config/elasticsearch.yml中加如下配置

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

上面这段配置把权限给到最大了, 至于你想把 elasticsearch 的访问权限的颗粒度设置成多小, 你可以看文档自己去改.
当如上的配置完成之后, 要重启 es 服务, 也就是 bin 目录下运行./elaticsearch
然后再去运行elaticsearch-head(至于你是用 grunt 还是直接 npm start 自行研究)
然后回到localhost:9100 F12看控制台还是报错, 不要慌 是因为你没有传密码. 还记得第一次运行 elasticsearch 时给你的密码跟 token 吗? 如果忘了请参考官方文档 rest-password
忘记 elasticsearch 初始密码怎么办?

当以上问题都解决了, 请用如下格式请求 9100 端口
http://localhost:9100/?auth_user=你的用户名&auth_password=你的密码

引用请注明出处, 抄袭必究.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值