如何在 AWS EC2 上安装和配置 Elasticsearch

作者:来自 Elastic Eduard Martin

在本循序渐进的指南中,了解如何在 Amazon EC2 实例上部署 Elasticsearch 和 Kibana 。

刚接触 Elasticsearch ?加入我们的 Elasticsearch 入门网络研讨会。你也可以现在开始免费云试用,或在你的机器上尝试 Elastic 。


在本循序渐进的指南中,你将学习如何设置一个 AWS EC2 实例,并在其上安装 Elasticsearch 和 Kibana 。

何时在 EC2 上使用 Elasticsearch ?

在 AWS Elastic Compute Cloud(EC2) 实例上安装 Elasticsearch 是一个很好的起点,因为它在资源上的简单性和透明性。以下是与其他选项的比较:

  • 完全控制:与 Elastic Cloud 不同, EC2 允许你配置所有内容 ------ 从 JVM 设置到插件 ------ 没有限制。
  • 简单性:比在 EKS 上运行的 ECK 更容易上手,后者提供扩展工具但学习曲线更陡。
  • 资源透明:你可以选择实例类型、存储和网络设置,从而获得可预测的性能和成本。
  • 灵活安全性:可直接管理防火墙规则、SSL 证书和密码。
  • 轻松原型开发:非常适合在迁移到多节点集群或托管解决方案之前用于学习、测试或单节点部署。

如果你希望尽量减少基础设施管理,请查看我们关于 AWS Marketplace Elastic Cloud 的文章

设置 EC2 实例

我们将创建一个 EC2 实例来托管 Elasticsearch 和 Kibana 。该过程包括选择操作系统镜像(Amazon Linux 2023)、根据需求选择实例类型和存储、为 Kibana 打开端口,并创建密钥对以实现安全访问。

1)登录 AWS

2)在搜索栏中搜索 EC2。

3)点击"Launch instance"。

4)配置新实例

  • 名称:elasticsearch-ec2。
  • 应用程序和操作系统镜像:Amazon Linux 2023 AMI。
  • 实例类型:t2.large(根据需求)。

5)点击 "Create a new key pair"。

密钥对:由公钥(存储在 EC2 实例上)和私钥(你的 .pem 文件)组成。它们协同工作,可在无需密码的情况下安全登录。

  • 选择密钥对类型为 RSA,私钥文件格式为 .pem。
  • 点击 "Create key pair" 按钮。保存下载的文件以备后用。

6)继续配置实例。

7)点击 "Launch instance"。

8)在左侧菜单的 "Instances " 部分,点击 "Instances"。

等待 Instance state 显示为 "running

9)复制实例的公共 IPv4 地址以备后用。

配置 Kibana 的互联网访问

默认情况下,EC2 为安全起见会阻止入站流量。要在浏览器中打开 Kibana ,我们需要允许 5601 端口的流量。我们将添加一条入站规则,以允许来自任何主机(0.0.0.0/0)的流量。

1)转到 EC2 > 实例 > 实例,然后点击最近创建的实例(elasticsearch-ec2)。

2)点击 "Security" 选项卡,然后点击高亮显示的安全组。

3)点击 "Edit inbound rules" 按钮。

4)点击 "Add rule" 按钮。填写以下内容:

  • 类型:自定义 TCP(Custom TCP)。
  • 端口范围:5601。
  • 来源:
    • i. 类型:自定义(Custom)。
    • ii. CIDR:0.0.0.0/0。

点击 "Save rules" 按钮以保存新规则。

入站规则已创建:

连接到 EC2 实例

1)转到 EC2 > 实例 > 实例,然后点击最近创建的实例,点击 "Connect" 按钮。

2)使用默认配置,点击 "Connect" 按钮。之后,将打开实例终端。

连接后,你应该会看到此终端,在这里你将运行以下命令:

安装 Elasticsearch

1)下载最新版本的 Elasticsearch 并验证其完整性。

arduino 复制代码
`

1.  wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-9.0.0-linux-x86_64.tar.gz
2.  wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-9.0.0-linux-x86_64.tar.gz.sha512
3.  shasum -a 512 -c elasticsearch-8.17.4-linux-x86_64.tar.gz.sha512

`AI写代码

验证文件完整性是一个关键的安全步骤。始终检查下载的文件是否与官方校验和匹配。

注意:如果未找到 shasum 命令,请安装它:

bash 复制代码
`-bash: shasum: command not found`AI写代码

2)安装 perl-Digest。

go 复制代码
`sudo yum install perl-Digest-SHA`AI写代码

3)解压文件。

bash 复制代码
`

1.  tar -xzf elasticsearch-9.0.0-linux-x86_64.tar.gz
2.  cd elasticsearch-9.0.0/

`AI写代码

4)运行 Elasticsearch。

bash 复制代码
`./bin/elasticsearch`AI写代码

首次运行 Elasticsearch 时,它会生成安全证书和凭证。确保保存这些信息以备后用。

5)复制生成的密码、指纹和注册令牌。

6)在与运行 Elasticsearch 不同的终端中,导航到你安装 Elasticsearch 的目录,并运行 elasticsearch-create-enrollment-token 工具,为你的新节点生成注册令牌。

bash 复制代码
`./bin/elasticsearch-create-enrollment-token -s node`AI写代码

如果你想添加新节点,请按照本指南操作。

7)我们来验证 Elasticsearch 是否在运行。

bash 复制代码
`curl --cacert config/certs/http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200`AI写代码

将 $ELASTIC_PASSWORD 替换为第 3 步生成的密码。

安装 Kibana

1)下载并解压 Kibana:

bash 复制代码
`

1.  curl -O https://artifacts.elastic.co/downloads/kibana/kibana-9.0.0-linux-x86_64.tar.gz
2.  curl https://artifacts.elastic.co/downloads/kibana/kibana-9.0.0-linux-x86_64.tar.gz.sha512 | shasum -a 512 -c - 
3.  tar -xzf kibana-9.0.0-linux-x86_64.tar.gz
4.  cd kibana-9.0.0/

`AI写代码

对于生产环境,建议在单独的实例上安装 Kibana 。这里为了简单,我们在同一实例上安装。

2)为了从互联网访问 Kibana ,我们将配置一个 kibana.yaml 文件。

arduino 复制代码
`nano ./config/kibana.yml`AI写代码

找到 server.host 设置并将其设置为:

vbscript 复制代码
`server.host: "0.0.0.0"`AI写代码

退出并保存。

3)运行 Kibana。

bash 复制代码
`./bin/kibana`AI写代码

4)使用以下格式通过浏览器访问虚拟机的公共 IP 地址:。公共 IP 地址可在"设置 EC2 实例"的第 9 步找到。

ini 复制代码
`http://{VM-IP-ADDR}:5601/?code=567892`AI写代码

现在,访问虚拟机公共 IP 地址并添加上面显示的代码。

5)运行 Kibana。

bash 复制代码
`./bin/kibana`AI写代码

6)按照首次安装时提供的 URL 操作。

7)在提示时粘贴第 3 步的 Kibana 注册令牌。

8)输入你的 Elasticsearch 用户名和密码。

Kibana 安装完成!

完成这些步骤后,你将在 AWS EC2 上运行一个可用的 Elasticsearch 部署和 Kibana 。此设置让你在利用 AWS 基础设施的同时,对环境拥有完全控制权。

结论

在本文中,我们在 AWS EC2 实例上部署了 Elasticsearch 和 Kibana 。使用 EC2,你需要管理实例、存储、网络和安全,从而对环境拥有完全控制权。相比在 AWS Marketplace 使用 Elastic Cloud ,这种方法需要更多操作,但比使用 ECK 管理完整的 Kubernetes 部署更简单。如果你想获得完全的灵活性,或者想通过自己管理所有基础设施来理解 Elasticsearch 的工作原理,这种方法非常有用。

后续步骤

考虑在生产环境中实施以下内容:

  • 配置 systemd 服务以实现自动启动。

  • 设置适当的安全组和网络 ACL。

  • 实施多节点集群以实现高可用性。

  • 配置快照仓库以进行备份。

原文:www.elastic.co/search-labs...

相关推荐
Elasticsearch9 小时前
Elastic AI agent builder 介绍(二)
elasticsearch
维尔切10 小时前
ELK日志系统部署与使用(Elasticsearch、Logstash、Kibana)
elk·elasticsearch·jenkins·kibana·logstash
帅帅梓1 天前
ELK es+logstash
大数据·elk·elasticsearch
Elasticsearch1 天前
Elastic Observability 中的 Streams 如何简化保留管理
elasticsearch
shan~~1 天前
ubuntu系统安装elasticsearch
ubuntu·elasticsearch·jenkins
2501_938791831 天前
从原理到实操:彻底解决 Git .gitignore 文件不生效问题
大数据·git·elasticsearch
Elastic 中国社区官方博客1 天前
如何在 Azure 虚拟机上部署 Elasticsearch
大数据·人工智能·elasticsearch·microsoft·搜索引擎·全文检索·azure