C

配置Terraform

配置Qt Insight私有云

Qt Insight安装使用Terraform在AWS部署资源。安装通过命令行完成。

  1. 要配置Qt Insight私有云,创建一个Terraform配置文件,通过复制提取的安装包中infra/env目录下的sample.tvfars文件。

    示例变量文件列出可用的配置选项和部署描述。

  2. 将标记为<占位符>的值替换为自己的。有关每个可选项的描述,请参考配置选项

配置选项

以下配置选项可用于Qt私有云Terraform部署。安装包包含一个sample.tfvars文件,可以作为配置的起点。

名称描述类型默认值必需
admin_accountsQt Insight的管理账户。指向OAuth服务器中的账户。列表(字符串)
amazon_linux_2_ami_id用于EC2实例的AWS AMI ID。用于Snowplow模块。AMI ID必须基于Amazon Linux 2(默认使用最新社区版本)。字符串""不是
app_dns_nameQt Insight仪表盘应用程序使用的域名。

示例

app_dns_name = "app.insight.example.com"
字符串
backup_region用于跨区域数据备份的AWS区域。如果enable_cross_region_backup为true,则必须提供。

更多信息请参阅AWS文档 - 区域和可用区

字符串""不是
certificate_arn用于Qt Insight仪表盘传输层安全(TLS)端点的ACM证书。证书必须具有与<app_dns_name>变量相同的普通名称(CN)或主题备用名称(SAN)。证书可以从外部证书授权机构导入到ACM,或者可以直接从ACM请求。

注意:一个证书可以用于收集器和应用程序。在这种情况下,两个子域名都必须在证书的CN或SAN字段中。

字符串
collect_certificate_arn用于收集器TLS端点的ACM证书。证书必须具有与<collect_dns_name>变量相同的CN或SAN。证书可以从外部证书授权机构导入到ACM,或者可以直接从ACM请求。

注意:一个证书可以用于收集器和应用程序。在这种情况下,两个子域名都必须在证书的CN或SAN字段中。

字符串
collect_dns_nameQt Insight事件收集端点使用的域名。

示例

collect_dns_name = "collect.insight.example.com"
字符串
collector_instance_type收集器实例的EC2实例类型。字符串t3.medium不是
config_cache_ttl时间间隔 - 以秒(s)、分钟(m)或小时(h)为单位 - 缓存应用程序的远程配置。

远程配置存储在内存缓存中,以减少对数据库的压力。

字符串5分钟不是
dashboard_rds_snapshot_id用于恢复 Qt Insight 数据库的相对数据库服务 (RDS) 快照 ID。如果更改了 ID,RDS 将从快照创建新的数据库。

注意: 只有在有意从快照恢复数据库时才更改此值。

字符串""不是
data_bucket_name存储分析数据的目标 S3 存储桶的名称。此数据存储桶在安装阶段创建。

注意: 存储桶名称必须在整个 AWS 中唯一。

字符串
enable_cross_region_backup启用备份副本到 backup_region。支持 Qt Insight 使用的 Redshift 和 RDS 数据库。

注意: 这会使得 Terraform 运行速度慢 10-15 分钟,因此在测试时您可能希望将其设置为 false。

boolfalse不是
enrich_instance_type丰富实例所使用的 EC2 实例类型。字符串t3.medium不是
export_bucket_name导出 S3 存储桶的名称。

注意: 存储桶名称必须在整个 AWS 中唯一。

字符串
iglu_instance_typeIglu 实例的 EC2 实例类型。字符串t3.medium不是
iglu_rds_snapshot_id用于恢复 Iglu 数据库的 RDS 快照 ID。如果更改了 ID,RDS 将从快照创建新的数据库。

注意: 只有在有意从快照恢复数据库时才更改此值。

字符串""不是
is_user_pseudonymized切换 enrich 管道中 domain_user 字段是否被匿名化。booltrue不是
lb_access_logs_enabled确定是否存储负载均衡器的访问日志。

注意: 如果启用此选项,则必须设置 logs_bucket_id

boolfalse不是
loader_instance_type加载实例所使用的 EC2 实例类型。字符串t3.medium不是
log_retention_days定义保留日志的天数。number30
logs_bucket_id访问存储桶日志所使用的 S3 存储桶 ID。如果 lb_access_logs_enabled 为 true,还用于存储负载均衡器的日志。

注意: 如果 lb_access_logs_enabled 为 true,则必须提供。存储桶名称必须在整个 AWS 中唯一。

字符串""不是
monitoring_enabled启用安装云监控仪表板以监控 Qt Insight。booltrue不是
oauth_client_config用于 OAuth 应用程序的客户端配置。必需字段(从您的身份提供者获取值)
  • client_id
  • client_secret
  • issuer

示例

oauth_client_config = {
client_id = "<client id>"
client_secret = "<client secret>"
issuer = "<issuer url>"
}
map(string)
profile用于 Terraform 的 AWS 配置文件。这必须与本地配置的配置文件匹配。有关详细信息,请参阅 aws configure --profile

示例(AWS)

aws configure --profile insight-deploy-user

示例(Qt Insight 配置)

profile = "insight-deploy-user"
字符串
redshift_cluster_size定义要创建在 Redshift 集群中的节点数。number1
redshift_cluster_snapshot_id用于恢复数据库的 Redshift 快照 ID。如果更改了 ID,Redshift 将从快照创建新的数据库。

注意: 只有在有意从快照恢复数据库时才更改此值。

字符串
redshift_node_type定义要在 Redshift 集群中创建的节点类型。有关不同节点类型的详细信息,请参阅 AWS 文档 - Redshift

示例

redshift_node_type = "ra3.xlplus"
字符串
redshift_snapshot_retention_days定义保留 Redshift 集群自动快照的天数。number5不是
region定义服务部署的 AWS 区域。有关更多信息,请参阅 AWS 文档 - 区域和可用性区域字符串
root_dns_nameQt Insight 的根域名。仪表板应用程序和收集端点是根的子域名。通常,这将是来自外部 DNS 提供商委派的子域名。

示例

root_dns_name = "insight.example.com"
字符串
root_route53_delegation_set_idQt Insight 根子域的 Route 53 委派集 ID。您可以使用 AWS 命令行界面命令 aws route53 create-reusable-delegation-set --caller-reference 创建 ID,其中 caller-reference 可以是任何唯一的字符串(例如,日期/时间戳)。

注意事项:复制名称服务器的DNS委派值。

示例

root_route53_delegation_set_id = "N06238763TERTV123456"
字符串
enable_application_telemetry可选配置,用于在Qt Insight UI中启用Sentry。如果启用,Sentry将在Qt Insight应用程序中用于发送反馈和崩溃报告到Sentry.io。

有关更多信息,请参阅 var.telemetry_dsn

boolfalse不是
telemetry_dsnSentry.io数据源名称。用于将Sentry事件关联到正确的组织。

注意事项:此选项仅在 var.enable_application_telemetry 为真时使用。

如果 var.enable_sentry_telemetry 为真且此选项为空,将使用Qt组织的DSN(将流量发送到Qt)。

字符串""不是
shredder_instance_type碎纸机实例的EC2实例类型。字符串t3.medium不是
stream_retention_periodkinesis流应保留数据的小时数。number48
subnets每个可用区中每个子网使用的IPv4无类域间路由(CIDR)范围列表。

注意事项:AZ 必须与所选AWS区域中可用的可用区匹配。每个 AZ 必须有一个隔离的私有和公有子网。CIDR范围必须在虚拟专用云(VPC)CIDR范围内,且不得相互重叠。

示例

subnets = [
     {
         az            = "a"
         isolated_cidr = "10.150.1.0/24"
         public_cidr   = "10.150.3.0/24"
         private_cidr  = "10.150.5.0/24"
     },
     {
         az            = "b"
         isolated_cidr = "10.150.2.0/24"
         public_cidr   = "10.150.4.0/24"
         private_cidr  = "10.150.6.0/24"
     }
 ]
list(object)
terraform_backend_bucket_name用于存储私有云部署的Terraform状态的S3存储桶名称。字符串
token_cache_ttl缓存传入事件令牌的时间间隔 - 以秒(s)、分钟(m)或小时(h)为单位。数据管道在每次摄取的事件中验证令牌。

此令牌状态存储在内存缓存中,以减少数据库负载。

字符串1m不是
vpc_cidrVPC的IPv4 CIDR范围。

示例

vpc_cidr = "10.150.0.0/16"
字符串

在某些Qt许可证下可用。
了解更多。