作者:来自 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)继续配置实例。
- Network settings :默认(详情请参阅 EC2 入门指南)。
- Configure Storage:10GB gp3。

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 的工作原理,这种方法非常有用。
后续步骤
考虑在生产环境中实施以下内容: