Elasticsearch:找回密码 – Password Recovery

2021年7月20日   |   by mebius

如果你对如何为 Elasticsearch 集群设置安全的话,那么请阅读我之前的文章 “Elasticsearch:设置 Elastic 账户安全”。安全对于一个 Elasticsearch 是非常重要的。否则我们的集群无异于在裸奔下运行。在进行下面的练习之前,建议参考文章 “Elasticsearch:设置 Elastic 账户安全” 为自己的集群设置安全。

假如有一天,我们忘记了我们的 Elasticsearch 集群,那么我们有什么办法能找回我们的集群的密码呢?

我们首先发现在 Elasticsearch 的安装目录下,有一个 utility叫做elasticsearch-users:

$ pwd
/Users/liuxg/elastic3/elasticsearch-7.13.0
$ ls bin/elasticsearch-users
bin/elasticsearch-users

我们可以使用这个工具找回我们的用户密码。我们首先来查看一下这个工具的一些用法:

$ ./bin/elasticsearch-users --help
Manages elasticsearch file users

Commands
--------
useradd - Adds a file user
userdel - Deletes a file based user
passwd - Changes the password of an existing file based user
roles - Edit roles of an existing user
list - List existing file based users and their corresponding roles

Non-option arguments:
command              

Opttgcodeion             Description        
------             -----------        
-E   Configure a setting
-h, --help         Show help          
-s, --silent       Show minimal output
-v, --verbose      Show verbose output

从上面,我们可以看出来,它可以创建和删除一些用户。这个为我们重设密码提供了便利。

假如我们忘记了超级用户 elastic 的密码,那么我们该怎么办呢?

我们使用如下的步骤:

1)首先,我们来创建另外一个超级用户 newadmin:

bin/elasticsearch-users useradd newadmin -p password -r superuser

在上面, 我们创建了一个叫做 newadmin 的超级用户,并且它的密码叫做 password。

如果我们使用 Kibana 的话,我们可以直接使用这个用户进行登录:

%title插图%num

2)我们接下来使用这个刚刚创建的超级用户来针对原有的 elastic 用户进行重置密码:

curl -tgcodes --user newadmin:password -XPUT "http://localhost:9200/_xpack/security/user/elastic/_password?pretty" -H 'Content-Type: application/json' -d'
{
  "password" : "password1"
}
'

在上面,我们重置用户 elastic 的密码为 password1。我们可以通过如下的命令来检查我们是否可以通过这个重置的密码来对集群进行访问:

curl --user elastic:password1 -X GET "http://localhost:9200?pretty"
$ curl --user elastic:password1 -X GET "http://localhost:920tgcode0?pretty"
{
  "name" : "liuxg",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "-vtUaRdHSnGJb5XdGC32bA",
  "version" : {
    "number" : "7.13.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "5ca8591c6fcdb1260ce95b08a8e023559635c6f3",
    "build_date" : "2021-05-19T22:22:26.081971330Z",
    "build_snapshot" : false,
    "lucene_version" : "8.8.2",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

当然我们也可以使用 elastic/password1 在 Kibana 界面上进行登录:

%title插图%num

文章来源于互联网:Elasticsearch:找回密码 – Password Recovery

相关推荐: Observability:Data pipeline:Beats => Redis => Logstash => Elasticsearch

在 Elastic Stack 的架构中,我们通常使用如下的一个图来表示: 如上图所示,我们通常会使用 Kafka 或者 Redis 作为一种 Message Queue(消息队列)来作为一种数据的缓冲。在我之前的文章: Elastic:使用 Kafka 部署…

Tags: