神的孩子都在歌唱

神的孩子都在歌唱

前言

从 Elasticsearch 8.0 开始,默认启用安全性。启用安全性后,Elastic Stack 安全功能需要对传输网络层进行 TLS 加密,否则您的集群将无法启动。

确保为 Docker 分配至少 4GiB 内存。

一. 拉取 Elasticsearch Docker 镜像

docker pull  elasticsearch:8.4.3

使用 Docker 安装 Elasticsearch 8.4.3-LMLPHP

二. 使用Docker启动单节点集群

以下命令启动单节点 Elasticsearch 集群以进行开发或测试。

  1. 为 Elasticsearch 和 Kibana 创建新的 docker 网络

    docker network create elastic
    
  2. 在 Docker 中启动 Elasticsearch。为用户生成密码elastic并输出到终端,以及用于注册 Kibana 的注册令牌。

    docker run --name es01 --net elastic -p 9200:9200 -it elasticsearch:8.4.3
    

    使用 Docker 安装 Elasticsearch 8.4.3-LMLPHP

启动成功后我们可以看到,在 Docker 容器中启动单节点 Elasticsearch 集群,系统会自动为您启用和配置安全性。当您第一次启动 Elasticsearch 时,会自动进行以下安全配置:

  • 为传输层和 HTTP 层生成 证书和密钥。
  • 传输层安全 (TLS) 配置设置写入 elasticsearch.yml.
  • 生成默认的用户elastic``和密码xY0mlsaMNyX=rIdktpmk
  • 为 Kibana 生成注册令牌。
  1. 测试

使用 Docker 安装 Elasticsearch 8.4.3-LMLPHP

三. 修改密码

  1. 复制生成的密码和注册令牌并将其保存在安全位置。这些值仅在您第一次启动 Elasticsearch 时显示。

elastic如果您需要重置用户或其他内置用户的密码,请运行该elasticsearch-reset-password工具。该工具位于 Elasticsearch 容器的/bin 目录中。

  1. 参数
  • -a, --auto

    将指定用户的密码重置为自动生成的强密码。 (默认)

  • -b, --batch

    运行重置密码过程而不提示用户进行验证。

  • -E <KeyValuePair>

    配置标准 Elasticsearch 或 X-Pack 设置。

  • -f, --force

    强制命令针对不健康的集群运行。

  • -h, --help

    返回所有命令参数。

  • -i, --interactive

    提示输入指定用户的密码。使用此选项显式设置密码。

  • -s --silent

    在控制台中显示最小输出。

  • -u, --username

    本机领域用户或内置用户的用户名。

  • --url

    指定工具用于向 Elasticsearch 提交 API 请求的基本 URL(本地节点的主机名和端口)。默认值由文件中的设置确定 elasticsearch.yml。如果xpack.security.http.ssl.enabled设置为true,则必须指定 HTTPS URL。

  • -v --verbose

    在控制台中显示详细输出。

  1. 例子

以下列子会将elastic用户的密码自动重置:

docker exec -it elasticsearch bash
bin/elasticsearch-reset-password -u elastic

QYFJGP+92Ory5ntLvaAW

使用 Docker 安装 Elasticsearch 8.4.3-LMLPHP

指定用户重置密码:

bin/elasticsearch-reset-password --username elastic -i

使用 Docker 安装 Elasticsearch 8.4.3-LMLPHP

以下示例将用户名的本机用户的密码重置user2为自动生成的值,并在控制台中打印新密码。指定的 URL 指示 elasticsearch-reset-password 工具尝试访问本地 Elasticsearch 节点的位置:

bin/elasticsearch-reset-password --url "https://172.0.0.3:9200" --username user2 -i
02-21 08:00