authentication - 将Elasticsearch 2.1.1升级到2.2.0-缺少身份验证 token ?

标签 authentication amazon-web-services elasticsearch elasticsearch-plugin elasticsearch-shield

我决定尝试将当前群集从ES2.1.1升级到ES2.2.0。
一副镜子。集群在AWS内运行,因此我使用cloud-aws插件进行通信。

我已经成功升级了第一个节点,并且它具有主节点状态,但是在升级第二个节点时遇到了一个奇怪的通信/身份验证问题。

我注意了here准则,但似乎仍然遇到了一个奇怪的问题。

从主群集登录第二个节点:

[2016-02-03 12:29:41,241][INFO ][discovery.ec2            ] [Sharon Ventura] failed to send join request to master [{Space Phantom}{NzN7b7ZHT8uPu6oXJAORMg}{10.60.164.147}{10.60.164.147:9300}], reason [RemoteTransportException[[Space Phantom][10.60.164.147:9300][internal:discovery/zen/join]]; nested: IllegalStateException[failure when sending a validation request to node]; nested: RemoteTransportException[[Sharon Ventura][10.60.163.74:9300][internal:discovery/zen/join/validate]]; nested: ElasticsearchSecurityException[missing authentication token for action [internal:discovery/zen/join/validate]]; ]
[2016-02-03 12:29:42,455][DEBUG][action.admin.cluster.health] [Sharon Ventura] no known master node, scheduling a retry
[2016-02-03 12:29:44,255][INFO ][discovery.ec2            ] [Sharon Ventura] failed to send join request to master [{Space Phantom}{NzN7b7ZHT8uPu6oXJAORMg}{10.60.164.147}{10.60.164.147:9300}], reason [RemoteTransportException[[Space Phantom][10.60.164.147:9300][internal:discovery/zen/join]]; nested: IllegalStateException[failure when sending a validation request to node]; nested: RemoteTransportException[[Sharon Ventura][10.60.163.74:9300][internal:discovery/zen/join/validate]]; nested: ElasticsearchSecurityException[missing authentication token for action [internal:discovery/zen/join/validate]]; ]
[2016-02-03 12:29:47,269][INFO ][discovery.ec2            ] [Sharon Ventura] failed to send join request to master [{Space Phantom}{NzN7b7ZHT8uPu6oXJAORMg}{10.60.164.147}{10.60.164.147:9300}], reason [RemoteTransportException[[Space Phantom][10.60.164.147:9300][internal:discovery/zen/join]]; nested: IllegalStateException[failure when sending a validation request to node]; nested: RemoteTransportException[[Sharon Ventura][10.60.163.74:9300][internal:discovery/zen/join/validate]]; nested: ElasticsearchSecurityException[missing authentication token for action [internal:discovery/zen/join/validate]]; ]
[2016-02-03 12:29:49,472][DEBUG][action.admin.cluster.state] [Sharon Ventura] timed out while retrying [cluster:monitor/state] after failure (timeout [30s])
[2016-02-03 12:29:49,473][INFO ][rest.suppressed          ] /_cluster/settings Params: {}
MasterNotDiscoveredException[null]
        at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$5.onTimeout(TransportMasterNodeAction.java:205)
        at org.elasticsearch.cluster.ClusterStateObserver$ObserverClusterStateListener.onTimeout(ClusterStateObserver.java:239)
        at org.elasticsearch.cluster.service.InternalClusterService$NotifyTimeout.run(InternalClusterService.java:794)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
[2016-02-03 12:29:50,283][INFO ][discovery.ec2            ] [Sharon Ventura] failed to send join request to master [{Space Phantom}{NzN7b7ZHT8uPu6oXJAORMg}{10.60.164.147}{10.60.164.147:9300}], reason [RemoteTransportException[[Space Phantom][10.60.164.147:9300][internal:discovery/zen/join]]; nested: IllegalStateException[failure when sending a validation request to node]; nested: RemoteTransportException[[Sharon Ventura][10.60.163.74:9300][internal:discovery/zen/join/validate]]; nested: ElasticsearchSecurityException[missing authentication token for action [internal:discovery/zen/join/validate]]; ]

我的elasticsearch.yml文件:
cluster.name: cluster01
http.cors.enabled: true
network.host: 0.0.0.0
discovery.type: ec2
discovery.ec2.tag.project_code_info: "cluster01"
cloud.aws.region: eu-central-1

我在日志中看到它已检测到第一个节点:[Space Phantom][10.60.164.147:9300]它已在没有任何干预的情况下检测到它,但是显然无法对其进行身份验证。

我怀疑这可能与Shield插件有关,该插件也已安装,但是正确且相同的权限设置与之前相同。没有其他改变。

我在屏蔽中使用用户名和密码,未配置SSL。

有人可以协助吗?

最佳答案

我设法弄清楚了,按照@ user3458016的要求。

我设法解决了这个问题,方法是在所有节点上( )重置所有设置和配置,删除插件licenseshield,删除所有用户并像以前一样重新添加所有用户。这些配置一开始是相同的,所以这很奇怪。

首先,在所有节点上停止 Elasticsearch 。
如果在本地运行,请停止kibana。

如果您有任何自定义角色,请在/etc/elasticsearch/shield/roles.yml中检查此配置
如果可能,从单个记录的配置刷新此记录。

删除插件:
/usr/share/elasticsearch/bin/plugin remove elasticsearch/license/latest/usr/share/elasticsearch/bin/plugin remove elasticsearch/shield/latest
删除用户:
/usr/share/elasticsearch/bin/shield/esusers userdel admin/usr/share/elasticsearch/bin/shield/esusers userdel logstash
重新添加插件:
/usr/share/elasticsearch/bin/plugin install elasticsearch/license/latest -b/usr/share/elasticsearch/bin/plugin install elasticsearch/shield/latest -b
重新添加用户:
/usr/share/elasticsearch/bin/shield/esusers useradd admin -p adminuserpw -r admin/usr/share/elasticsearch/bin/shield/esusers useradd logstash -p logstashuserpw -r logstash
如果您具有任何自定义角色,请在/etc/elasticsearch/shield/roles.yml中仔细检查此配置,以确认配置未被修改或覆盖。

第一个节点上开始elasticsearch。
如果在本地运行,请启动kibana。

检查索引已正确显示,并且验证主节点状态

在所有其他节点上执行上述所有步骤。

一次对剩余节点进行 Elasticsearch
在启动下一个节点之前,请验证群集复制是否正常。

我希望有人觉得这有用。

关于authentication - 将Elasticsearch 2.1.1升级到2.2.0-缺少身份验证 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35182574/

相关文章:

node.js - 如何在 AWS 中部署 node.js 应用程序

windows - EC2 Windows 实例重启后不从启动文件夹启动批处理文件

database - 在哪里存储搜索索引的数据?

python - 谷歌基本 API 的 401 和 403 错误

c# - 为 RoleManager 和 UserManager 创建实例以进行单元测试?

authentication - 如何解决postman调用.Net API时出现401未经授权的错误

node.js - 如何在Nodejs中获取base64编码的视频文件的缩略图?

image - 需要docker镜像运行身份验证

elasticsearch - 如何从Elasticsearch过滤数据

Elasticsearch:计算返回错误值