美文网首页
02. 在Linux或MacOS上从存档中安装Elasticse

02. 在Linux或MacOS上从存档中安装Elasticse

作者: ElasticSearch文档 | 来源:发表于2023-11-27 11:37 被阅读0次

Elasticsearch提供了适用于Linux和MacOS的.tar.gz存档。
软件包包含免费和订阅功能。开始使用30天的试用版,尝试所有功能。
您可以在下载Elasticsearch页面上找到最新稳定版本的Elasticsearch。其他版本可以在过往版本页面上找到。
:::tips
注意: Elasticsearch包含来自JDK维护者的OpenJDK的捆绑版本(GPLv2+CE)。要使用自己的Java版本,请参阅JVM版本要求
:::

下载并在Linux上安装存档

可以按照以下步骤下载并安装Elasticsearch v8.11.1的Linux存档:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.1-linux-x86_64.tar.gz

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.1-linux-x86_64.tar.gz.sha512

shasum -a 512 -c elasticsearch-8.11.1-linux-x86_64.tar.gz.sha512 tar -xzf elasticsearch-8.11.1-linux-x86_64.tar.gz  2

cd elasticsearch-8.11.1/

:::tips

  1. 第三行命令会输出 elasticsearch-8.11.1-linux-x86_64.tar.gz: OK 打标包未被篡改过
  2. 记住这个目录就是$ES_HOME.
    :::
下载并在MacOS上安装存档

可以按照以下步骤下载并安装Elasticsearch v8.11.1的MacOS存档:

curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.1-darwin-x86_64.tar.gz
curl https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.1-darwin-x86_64.tar.gz.sha512 | shasum -a 512 -c - tar -xzf elasticsearch-8.11.1-darwin-x86_64.tar.gz
cd elasticsearch-8.11.1/

:::tips

  1. 第三行命令会输出 elasticsearch-8.11.1-linux-x86_64.tar.gz: OK 打标包未被篡改过
  2. 记住这个目录就是$ES_HOME.
    :::
启用系统索引的自动创建

一些商业功能会在Elasticsearch中自动创建索引。默认情况下,Elasticsearch被配置为允许自动索引创建,无需额外步骤。然而,如果您在Elasticsearch中禁用了自动索引创建,您必须在elasticsearch.yml中配置action.auto_create_index,以允许商业功能创建以下索引:

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

:::tips

如果您使用的是Logstash或Beats,那么您很可能需要在action.auto_create_index设置中添加额外的索引名称,确切的值将取决于您的本地配置。如果您不确定您环境的正确值,您可以考虑将该值设置为*,这将允许自动创建所有索引。
:::

通过命令行启动 :
./bin/elasticsearch

首次启动Elasticsearch时,默认情况下会启用和配置安全特性。以下安全配置将自动进行:

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

我们建议将elastic密码存储为您Shell中的环境变量。示例:

export ELASTIC_PASSWORD="your_password"

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

默认情况下,Elasticsearch将其日志输出到控制台(stdout)和位于logs目录中的.log文件。Elasticsearch在启动时会记录一些信息,但在完成初始化后,它将继续在前台运行,并在发生值得记录的事件之前不再记录任何信息。在Elasticsearch运行时,您可以通过其HTTP接口与其交互,默认情况下该接口位于端口9200上。
要停止Elasticsearch,请按Ctrl-C。
:::tips
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 
  1. 从新节点的安装目录启动Elasticsearch,并使用--enrollment-token参数传递注册令牌。
bin/elasticsearch --enrollment-token  

Elasticsearch 会自动的生成签证在下面这个目录:

config/certs
  1. 为下一个节点,重复以上步骤
确认Elasticsearch 正在运行

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

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

返回类似:

{
  "name" : "Cp8oag6",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
  "version" : {
    "number" : "8.11.1",
    "build_type" : "tar",
    "build_hash" : "f27399d",
    "build_flavor" : "default",
    "build_date" : "2016-03-30T09:51:41.449Z",
    "build_snapshot" : false,
    "lucene_version" : "9.8.0",
    "minimum_wire_compatibility_version" : "1.2.3",
    "minimum_index_compatibility_version" : "1.2.3"
  },
  "tagline" : "You Know, for Search"
}
以守护进程方式运行

要以守护进程方式运行Elasticsearch,请在命令行上指定-d,并使用-p选项将进程ID记录到文件中:

./bin/elasticsearch -d -p pid

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

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

要关闭Elasticsearch,请终止在pid文件中记录的进程ID:

pkill -F pid
在命令行上配置Elasticsearch

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

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


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

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

连接客户端到Elasticsearch

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


$ES_HOME/config/certs/http_ca.crt

该证书的十六进制编码SHA-256指纹也会输出到终端。任何连接到Elasticsearch的客户端,如Elasticsearch Clients、Beats、独立的Elastic Agents和Logstash,都必须验证它们信任Elasticsearch用于HTTPS的证书。Fleet Server和Fleet管理的Elastic Agents会自动配置为信任CA证书。其他客户端可以通过使用CA证书的指纹或CA证书本身来建立信任。

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

使用CA指纹

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

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


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

该命令返回包括指纹在内的安全证书。发行者应该是Elasticsearch security auto-configuration HTTP CA。


issuer= /CN=Elasticsearch security auto-configuration HTTP CA

SHA256 Fingerprint=<fingerprint>
使用CA证书

如果您的库不支持验证指纹的方法,每个Elasticsearch节点上的自动生成的CA证书将创建在以下目录中:


$ES_HOME/config/certs/http_ca.crt

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

存档的目录布局

存档分发完全是自包含的。默认情况下,所有文件和目录都包含在$ES_HOME(解压存档时创建的目录)中。

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

Type Description Default Location Setting
home home目录
$ES_HOME 解压的后所在目录
bin Binary scripts including elasticsearch to start a node and elasticsearch-plugin to install plugins $ES_HOME/bin
conf 配置目录elasticsearch.yml $ES_HOME/config ES_PATH_CONF
conf Generated TLS keys and certificates for the transport and HTTP layer. $ES_HOME/config/certs
data The location of the data files of each index / shard allocated on the node. $ES_HOME/data path.data
logs Log files location. $ES_HOME/logs path.logs
plugins Plugin files location. Each plugin will be contained in a subdirectory. $ES_HOME/plugins
repo Shared file system repository locations. Can hold multiple locations. A file system repository can be placed in to any subdirectory of any directory specified here. Not configured 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.transport.ssl.keystore.secure_password

相关文章

网友评论

      本文标题:02. 在Linux或MacOS上从存档中安装Elasticse

      本文链接:https://www.haomeiwen.com/subject/mpvzwdtx.html