欢迎访问shiker.tech

请允许在我们的网站上展示广告

您似乎使用了广告拦截器,请关闭广告拦截器。我们的网站依靠广告获取资金。

【译文】ES安装配置之安装篇
(last modified Jun 30, 2023, 12:04 AM )
by
侧边栏壁纸
  • 累计撰写 176 篇文章
  • 累计创建 61 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

【译文】ES安装配置之安装篇

橙序员
2023-06-29 / 0 评论 / 0 点赞 / 487 阅读 / 2,722 字 / 正在检测百度是否收录... 正在检测必应是否收录...
文章摘要(AI生成)

本内容讨论在 Linux 上下载和设置 Elasticsearch v8.8.1 的步骤。 它提供了下载存档文件、验证其完整性、提取文件以及导航到 Elasticsearch 目录的命令。 它还提到Elasticsearch默认配置为允许自动创建索引,但如果禁用,则需要调整配置。 内容进一步解释了从命令行启动 Elasticsearch 的命令,并提到了首次启动期间启用和配置的默认安全功能,例如身份验证、授权、TLS 证书和密钥生成以及 Kibana 注册令牌的生成。 最后给出了一个输出示例,其中包括为弹性超级用户生成的密码和 Kibana 的注册令牌。

ES下载和设置

Elasticsearch v8.8.1 的 Linux archive可以下载并安装,如下所示:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.8.1-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.8.1-linux-x86_64.tar.gz.sha512
shasum -a 512 -c elasticsearch-8.8.1-linux-x86_64.tar.gz.sha512 
tar -xzf elasticsearch-8.8.1-linux-x86_64.tar.gz
cd elasticsearch-8.8.1/ 

启用系统索引的自动创建

一些商业功能会自动在 Elasticsearch 中创建索引。默认情况下,Elasticsearch 配置为允许自动创建索引,无需执行任何其他步骤。但是,如果您在 Elasticsearch 中禁用了自动索引创建,则必须进行配置 action.auto_create_indexelasticsearch.yml允许商业功能创建以下索引:

action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*

命令行启动

运行以下命令从命令行启动 Elasticsearch:

./bin/elasticsearch

首次启动 Elasticsearch 时,默认情况下会启用并配置安全功能。以下安全配置会自动发生:

  • elastic启用身份验证和授权,并为内置超级用户 生成密码。
  • 为传输层和 HTTP 层生成 TLS 的证书和密钥,并使用这些密钥和证书启用和配置 TLS。
  • 为 Kibana 生成注册令牌,有效期为 30 分钟。

用户的密码elastic和 Kibana 的注册令牌将输出到您的终端。例如:

The generated password for the elastic built-in superuser is:
<password>

The enrollment token for Kibana instances, valid for the next 30 minutes:
<enrollment-token>

The hex-encoded SHA-256 fingerprint of the generated HTTPS CA DER-encoded certificate:
<fingerprint>

You can complete the following actions at any time:
Reset the password of the elastic built-in superuser with
'bin/elasticsearch-reset-password -u elastic'.

Generate an enrollment token for Kibana instances with
'bin/elasticsearch-create-enrollment-token -s kibana'.

Generate an enrollment token for Elasticsearch nodes with
'bin/elasticsearch-create-enrollment-token -s node'.

如果您对 Elasticsearch 密钥库进行了密码保护,系统将提示您输入密钥库的密码。有关更多详细信息,请参阅安全设置。

默认情况下,Elasticsearch 将其日志打印到控制台 ( stdout) 以及日志目录<cluster name>.log中的文件。Elasticsearch 在启动时会记录一些信息,但在完成初始化后,它将继续在前台运行,并且不会进一步记录任何内容,直到发生值得记录的事情为止。当 Elasticsearch 运行时,您可以通过默认端口上的 HTTP 接口9200与其进行交互。

要停止 Elasticsearch,请按Ctrl-C

注意

所有与 Elasticsearch 一起打包的脚本都需要支持数组的 Bash 版本,并假设 Bash 在 上可用/bin/bash。因此,Bash 应该可以直接或通过符号链接在此路径上使用。

在现有集群中注册节点

当Elasticsearch第一次启动时,安全自动配置过程将HTTP层绑定到0.0.0.0,但仅将传输层绑定到localhost。此预期行为可确保您无需任何其他配置即可启动默认启用安全性的单节点集群。

localhost在注册新节点之前,在生产集群中通常需要执行其他操作,例如绑定到除引导程序检查之外的地址或满足引导程序检查。在此期间,自动生成的注册令牌可能会过期,这就是注册令牌不会自动生成的原因。

此外,只有同一主机上的节点才能加入集群,无需额外配置。如果您希望其他主机的节点加入您的集群,则需要设置transport.host受支持的值 (例如取消注释建议值0.0.0.0),或绑定到其他主机可以访问的接口的 IP 地址。有关详细信息,请参阅 传输设置。

elasticsearch-create-enrollment-token要在集群中注册新节点,请使用该工具在集群中的任何现有节点上创建注册令牌 。然后,您可以使用该参数启动一个新节点,--enrollment-token以便它加入现有集群。

  1. 在运行 Elasticsearch 的单独终端中,导航到安装 Elasticsearch 的目录并运行该 elasticsearch-create-enrollment-token工具来为新节点生成注册令牌。

    bin/elasticsearch-create-enrollment-token -s node
    

    复制注册令牌,您将使用该令牌向 Elasticsearch 集群注册新节点。

  2. 从新节点的安装目录中,启动 Elasticsearch 并通过参数传递注册令牌--enrollment-token

    bin/elasticsearch --enrollment-token <enrollment-token>
    

    Elasticsearch 自动在以下目录中生成证书和密钥:

    config/certs
    
  3. 对要注册的任何新节点重复上一步。

检查 Elasticsearch 是否正在运行

您可以通过向9200端口发送 HTTPS 请求来测试您的 Elasticsearch 节点是否正在运行 localhost

curl --cacert $ES_HOME/config/certs/http_ca.crt -u elastic https://localhost:9200 

注意

确保您https在通话中使用,否则请求将失败。

  • --cacert

    http_ca.crt为 HTTP 层 生成的证书的路径。

输入elastic安装期间生成的用户密码,该密码应返回如下响应:

{
  "name" : "Cp8oag6",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
  "version" : {
    "number" : "8.8.1",
    "build_type" : "tar",
    "build_hash" : "f27399d",
    "build_flavor" : "default",
    "build_date" : "2016-03-30T09:51:41.449Z",
    "build_snapshot" : false,
    "lucene_version" : "9.6.0",
    "minimum_wire_compatibility_version" : "1.2.3",
    "minimum_index_compatibility_version" : "1.2.3"
  },
  "tagline" : "You Know, for Search"
}

可以使用stdout命令行上的-q--quiet选项禁用日志打印。

作为守护进程运行

要将 Elasticsearch 作为守护进程运行,请在命令行上指定-d,并使用-p将进程 ID 记录在文件中:

./bin/elasticsearch -d -p pid

如果您对 Elasticsearch 密钥库进行了密码保护,系统将提示您输入密钥库的密码。有关更多详细信息,请参阅安全设置。

可以在$ES_HOME/logs/目录中找到日志消息。

要关闭 Elasticsearch,请杀死pid文件中记录的进程 ID:

pkill -F pid

命令行配置Elasticsearch

$ES_HOME/config/elasticsearch.yml Elasticsearch默认从文件加载其配置。配置 Elasticsearch中解释了此配置文件的格式 。

可以在配置文件中指定的任何设置也可以在命令行上指定,语法-E如下:

./bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_1

注意

通常,任何集群范围的设置(例如cluster.name)都应添加到elasticsearch.yml配置文件中,而任何特定于节点的设置(例如node.name可以在命令行上指定)。

将客户端连接到 Elasticsearch

当您第一次启动 Elasticsearch 时,会自动为 HTTP 层配置 TLS。生成 CA 证书并将其存储在磁盘上:

$ES_HOME/config/certs/http_ca.crt

该证书的十六进制编码的 SHA-256 指纹也会输出到终端。连接到 Elasticsearch 的任何客户端(例如 Elasticsearch 客户端、Beats、独立 Elastic Agent 和 Logstash)必须验证它们是否信任 Elasticsearch 用于 HTTPS 的证书。队列服务器和队列管理的 Elastic Agent 会自动配置为信任 CA 证书。其他客户端可以使用 CA 证书的指纹或 CA 证书本身来建立信任。

如果自动配置过程已经完成,您仍然可以获得安全证书的指纹。您还可以将 CA 证书复制到您的计算机并配置您的客户端以使用它。

使用ca指纹

复制 Elasticsearch 启动时输出到终端的指纹值,并将客户端配置为在连接到 Elasticsearch 时使用此指纹建立信任。

如果自动配置过程已经完成,您仍然可以通过运行以下命令获取安全证书的指纹。该路径是自动生成的 HTTP 层 CA 证书的路径。

openssl x509 -fingerprint -sha256 -in config/certs/http_ca.crt

该命令返回安全证书,包括指纹。应该issuerElasticsearch security auto-configuration HTTP CA.

$ES_HOME/config/certs/http_ca.crt

http_ca.crt文件复制到您的计算机,并将客户端配置为在连接到 Elasticsearch 时使用此证书建立信任。

ES结构

默认情况下,所有文件和目录都包含在$ES_HOME 解压存档时创建的目录中。

这非常方便,因为您无需创建任何目录即可开始使用 Elasticsearch,并且卸载 Elasticsearch 就像删除目录一样简单$ES_HOME。但是,建议更改 config 目录、数据目录和日志目录的默认位置,以免以后删除重要数据。

类型 描述 默认位置 环境
Elasticsearch 主目录或$ES_HOME 通过解压存档创建的目录
bin 二进制脚本,包括elasticsearch启动节点和elasticsearch-plugin安装插件 $ES_HOME/bin
conf 配置文件包括elasticsearch.yml $ES_HOME/config ES_PATH_CONF
conf 为传输层和 HTTP 层生成 TLS 密钥和证书。 $ES_HOME/config/certs
数据 节点上分配的每个索引/分片的数据文件的位置。 $ES_HOME/data path.data
日志 日志文件位置。 $ES_HOME/logs path.logs
插件 插件文件位置。每个插件都将包含在一个子目录中。 $ES_HOME/plugins
仓库 共享文件系统存储库位置。可以容纳多个位置。文件系统存储库可以放置在此处指定的任何目录的任何子目录中。 未配置 path.repo

安全证书

安装 Elasticsearch 时,会在 Elasticsearch 配置目录中生成以下证书和密钥,用于将 Kibana 实例连接到安全的 Elasticsearch 集群并加密节点间通信。此处列出了这些文件以供参考。

  • http_ca.crt

    用于签署此 Elasticsearch 集群的 HTTP 层证书的 CA 证书。

  • http.p12

    包含此节点的 HTTP 层的密钥和证书的密钥库。

  • transport.p12

    包含集群中所有节点传输层的密钥和证书的密钥库。

http.p12并且transport.p12是受密码保护的 PKCS#12 密钥库。Elasticsearch 将这些密钥库的密码存储为安全设置。要检索密码以便您可以检查或更改密钥库内容,请使用该 bin/elasticsearch-keystore工具。

使用以下命令检索密码http.p12

bin/elasticsearch-keystore show xpack.security.http.ssl.keystore.secure_password

使用以下命令检索密码transport.p12

bin/elasticsearch-keystore show xpack.security.http.ssl.keystore.secure_password
0

评论区