本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 InfluxDB 实例创建并连接到 Timestream
本教程为 InfluxDB EC2 数据库实例创建了一个亚马逊实例和一个 Amazon Timestream。本教程向您展示如何使用 Telegraf 客户端将数据从EC2实例写入数据库实例。作为最佳实践,本教程在虚拟私有云中创建私有数据库实例 (VPC)。在大多数情况下VPC,相同的其他资源(例如EC2实例)可以访问数据库实例,但外部的资源VPC无法访问该实例。
完成本教程后,您的每个可用区中都有一个公有子网和私有子网VPC。在一个可用区中,EC2实例位于公有子网中,数据库实例位于私有子网中。
注意
创建 AWS 账户不收取任何费用。但是,完成本教程后,您使用的 AWS 资源可能会产生费用。完成本教程后,如果不再需要这些资源,可以将其删除。
下图显示了可访问性公开时的配置。
警告
我们不建议使用 0.0.0.0/0 进行HTTP访问,因为您可以让所有 IP 地址通过访问您的公有 InfluxDB 实例。HTTP在测试环境中,这种方法在短时间内甚至是不可接受的。仅授权特定的 IP 地址或地址范围访问您的 InfluxDB 实例,使用 HTTP being for Webui 或访问权限。API
本教程使用创建了一个运行 InfluxDB 的数据库实例。 AWS Management Console我们将只关注数据库实例大小和数据库实例标识符。我们将使用其他配置选项的默认设置。此示例创建的数据库实例将是私有的。
您可以配置的其他设置包括可用性、安全性和日志记录。要创建公有数据库实例,您必须在连接配置部分选择将您的实例设为 “可公开访问”。有关创建数据库实例的信息,请参阅创建数据库实例...
如果您的实例不可公开访问,请执行以下操作:
在实例上创建主机,通过该主机传输流量。VPC
设置到实例的 ssh 隧道。有关更多信息,请参阅使用 S AWS ystems Manager 转发亚马逊EC2实例端口
为了使证书生效,请将以下行添加到您的客户端计算机
/etc/hosts
的文件中:127.0.0.1
。这是您的实例DNS的地址。使用完全限定的域名连接到您的实例,例如 https: //< DNS >: 8086。
注意
Localhost 无法验证证书,因为 localhost 不是证书的一部分。SAN
下图显示了可访问性为私有时的配置:
先决条件
在开始之前,请完成以下各节中的步骤:
-
注册一个 AWS 账户。
-
创建管理用户。
步骤 1:创建 Amazon EC2 实例
创建用于连接数据库的 Amazon EC2 实例。
-
登录 AWS Management Console 并打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/
。 -
在的右上角 AWS Management Console,选择要在其中创建实例的 AWS EC2区域。
-
选择 “EC2控制面板”,然后选择 “启动实例”。
-
启动实例页面打开后,在启动实例页面上选择以下设置。
-
在名称和标签下,在名称中输入 ec2-database-connect。
-
在 “应用程序和操作系统映像(亚马逊系统映像)” 下,选择亚马逊 Linux,然后选择亚马逊 Linux 2023 AMI。对于其他选项,保留默认选择。
-
在 Instance type(实例类型)下,选择 t2.micro。
-
在 Key pair (login) [密钥对(登录)] 下,选择 Key pair name(密钥对名称)以使用现有密钥对。要为 Amazon EC2 实例创建新的密钥对,请选择创建新密钥对,然后使用创建密钥对窗口来创建密钥对。有关创建新密钥对的更多信息,请参阅《Amazon Linux 实例EC2用户指南》中的创建密钥对。
-
在 “网络设置” 中允许SSH流量,请选择EC2实例的SSH连接来源。如果显示的 IP 地址对SSH连接来说是正确的,则可以选择 “我的 IP”。否则,您可以使用 Secure Shell (SSH) 确定用于连接到您VPC中的EC2实例的 IP 地址。要确定您的公有 IP 地址,可以在不同的浏览器窗口或选项卡中使用该服务 https://checkip.amazonaws.com。IP 地址的示例为 192.0.2.1/32。在许多情况下,您可以通过互联网服务提供商 (ISP) 或在没有静态 IP 地址的情况下从防火墙后面进行连接。如果是这样,请确保确定客户端计算机使用的 IP 地址范围。
警告
我们不建议使用 0.0.0.0/0 进行SSH访问,因为您可以让所有 IP 地址都使用访问您的公有实例。EC2 SSH在测试环境中,这种方法在短时间内甚至不可接受,仅授权特定的 IP 地址或地址范围使用访问您的EC2实例SSH。
-
步骤 2:创建一个 InfluxDB 数据库实例
适用于 InfluxDB 的 Amazon Timestream 的基本构建块是数据库实例。你可以在这个环境中运行 InfluxDB 数据库。
在此示例中,您将使用一个 db.influx.large 数据库实例类创建一个运行 InfluxDB 数据库引擎的数据库实例。
-
在适用于 InfluxDB 的 Amazon Timestream 控制台的右上角,选择 AWS 要在其中创建数据库实例的区域。
-
在导航窗格中,选择 InfluxDB 数据库。
-
选择 “创建 Influx 数据库”。
-
在数据库实例标识符中,输入 KronosTest -1。
-
提供 InfluxDB 基本配置参数:用户名、组织、存储桶名称和密码。
重要
您将无法再次查看用户密码。如果没有密码,您将无法访问您的实例和获取操作员令牌。如果您不记录它,您可能需要更改它。请参阅 为您的 InfluxDB 实例创建一个新的操作员令牌。
如果您需要在数据库实例可用后更改用户密码,则可以修改数据库实例以执行此操作。有关修改数据库实例的更多信息,请参阅 更新数据库实例。
-
对于数据库实例类,请选择 db.influx. large。
-
对于数据库存储类别,请选择 infl ux Include IOPS d 3K。
配置您的日志。有关更多信息,请参阅 设置在 Timestream Influxdb 实例上查看 InfluxDB 日志。
-
在 “连接配置” 部分,确保您的InfluxDB实例与新创建EC2的实例位于同一个子网中。
-
选择 “创建 Influx 数据库”。
-
在数据库列表中,选择您的新 InfluxDB 实例的名称以显示其详细信息。数据库实例在准备使用之前的状态为 “正在创建”。
当状态变为 “可用” 时,您可以连接到数据库实例。根据数据库实例类和存储量,新实例可能需要等待 20 分钟时间才可用。
重要
目前,您无法修改现有实例的计算(实例类型)和存储(存储类型)配置。
第 3 步:将 Telegraf 数据发送到你的 InfluxDB 实例
现在,您可以开始使用 Telegraf 代理将遥测数据发送到您的 InfluxDB 数据库实例。在此示例中,您将安装和配置 Telegraf 代理以向您的 InfluxDB 数据库实例发送性能指标。
-
查找您的数据库实例的终端节点(DNS名称)和端口号。
-
登录 AWS 管理控制台并打开亚马逊 Timestream 控制台,网址为。https://console.aws.amazon.com/timestream/
-
在 Amazon Timestream 控制台的右上角,选择数据库 AWS 实例的区域。
-
在导航窗格中,选择 InfluxDB 数据库。
-
选择 InfluxDB 数据库实例名称以显示其详细信息。
-
在 “摘要” 部分,复制终端节点。另请注意端口号。您需要端点和端口号才能连接到数据库实例(InfluxDB 的默认端口号为 8086)。
-
-
接下来,选择 InfluxDB 用户界面。
-
这将打开一个新的浏览器窗口,您应该会在其中看到登录提示。输入您之前用于创建 InfluxDB 数据库实例的凭证。
-
在导航窗格中,单击箭头并选择API代币。
-
在此测试中,生成一个所有访问令牌。
注意
对于生产场景,我们建议创建具有特定访问权限的令牌,这些存储桶专为Telegraf的特定需求而构建。
-
您的代币将出现在屏幕上。
重要
请务必复制并保存令牌,因为您将无法再次显示它。
-
按照亚马逊 Linux EC2 实例EC2用户指南中连接你的 Linux 实例中的步骤连接到你的 Linux 实例,连接到你之前创建的实例。
我们建议您使用连接到您的EC2实例SSH。如果SSH客户端实用程序安装在 Windows、Linux 或 Mac 上,则可以使用以下命令格式连接到实例:
ssh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name
例如,假设
ec2-database-connect-key-pair.pem
它存储在 Linux/dir1
上,而您的EC2实例IPv4DNS的公共存储在 Linux 上ec2-12-345-678-90.compute-1.amazonaws.com
。你的SSH命令将如下所示:ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
-
在您的实例上安装最新版本的 telegraf。要执行此操作,请使用以下命令:
cat <<EOF | sudo tee /etc/yum.repos.d/influxdata.repo [influxdata] name = InfluxData Repository - Stable baseurl = https://repos.influxdata.com/stable/\$basearch/main enabled = 1 gpgcheck = 1 gpgkey = https://repos.influxdata.com/influxdata-archive_compat.key EOF sudo yum install telegraf
-
配置你的 Telegraf 实例。
注意
如果 telegraf.conf 不存在或不包含
timestream
章节,则可以使用以下命令生成一个章节:telegraf —section-filter agent:inputs:outputs —input-filter cpu:mem —output-filter timestream config > telegraf.conf
-
编辑配置文件,通常位于
/etc/telegraf
。sudo nano /etc/telegraf/telegraf.conf
-
为CPU、MEM和配置基本输入DISK。
[[inputs.cpu]] percpu = true totalcpu = true collect_cpu_time = false report_active = false [[inputs.mem]] [[inputs.disk]] ignore_fs = ["tmpfs", "devtmpfs", "devfs"]
-
配置输出插件以将数据发送到您的 InfluxDB 数据库实例并保存您的更改。
[[outputs.influxdb_v2]] urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"] token = "<your_telegraf_token" organization = "your_org" bucket = "your_bucket" timeout = "5s"
-
配置时间流目标。
# Configuration for sending metrics to Amazon Timestream. [[outputs.timestream]] ## Amazon Region and credentials region = "us-east-1" access_key = "<AWS key here>" secret_key = "<AWS secret key here>" database_name = "<timestream database name>" # needs to exist ## Specifies if the plugin should describe t start. describe_database_on_start = false mapping_mode = "multi-table" # allows multible tables for each input metrics create_table_if_not_exists = true create_table_magnetic_store_retention_period_in_days = 365 create_table_memory_store_retention_period_in_hours = 24 use_multi_measure_records = true # Important to use multi-measure records measure_name_for_multi_measure_records = "telegraf_measure" max_write_go_routines = 25
-
-
启用并启动 Telegraf 服务。
$ sudo systemctl enable telegraf $ sudo systemctl start telegraf
第 4 步:删除亚马逊EC2实例和 InfluxDB 数据库实例
使用带有 InfluxUI 的 InfluxDB 数据库实例浏览 Telegraf 生成的数据后,删除您EC2和您的 InfluxDB 数据库实例,这样您就不再需要为它们付费。
要删除EC2实例,请执行以下操作:
登录 AWS Management Console 并打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择实例。
-
选择EC2实例,选择实例状态,然后终止实例。
-
当系统提示您确认时,选择终止。
有关删除EC2实例的更多信息,请参阅 Amazon EC2 用户指南中的终止您的实例。
要删除没有最终数据库快照的数据库实例,请执行以下操作:
-
在导航窗格中,选择 InfluxDB 数据库。
-
选择要删除的数据库实例。
-
对于 Actions,选择 Delete。
-
完成确认并选择删除。
(可选)使用亚马逊托管 Grafana 连接到您的数据库实例
您可以使用亚马逊托管 Grafana 创建控制面板并使用适用于 InfluxDB 的 Amazon Timestream 监控EC2实例的性能。Amazon Managed Grafana 是 Grafana 的完全托管服务,Grafana 是一个流行的开源分析平台,可让您查询、可视化您的指标、日志和跟踪并发出警报。