通过 Terraform 创建、导入和删除 Prometheus 接入配置(AddonRelease),以代码化方式管理监控组件的接入。
前提条件
已安装 Terraform(v1.5.0 及以上版本)。
Cloud Shell 已默认安装并配置 Terraform 和阿里云账号信息,无需额外配置。
本地安装请参见在本地安装和配置Terraform。
说明确认 Terraform 版本不低于 v1.5.0,可通过
terraform --version命令查看版本信息。
已配置阿里云账号信息。支持以下两种方式:
说明建议创建 RAM 用户并为其创建 AccessKey 和授权,避免使用主账号 AccessKey。
方式一(推荐):通过环境变量配置身份认证信息。
export ALICLOUD_ACCESS_KEY="************" export ALICLOUD_SECRET_KEY="************" export ALICLOUD_REGION="cn-beijing"说明将
ALICLOUD_REGION的值替换为实际的目标地域 ID。方式二:在 Provider 代码块中指定身份认证信息。
provider "alicloud" { access_key = "************" secret_key = "************" region = "cn-beijing" endpoints { cms = "cms.cn-beijing.aliyuncs.com" } }说明将
region的值替换为实际的目标地域 ID。必须显式指定 CMS 接入点,格式为
endpoints { cms = "cms.{region}.aliyuncs.com" },其中{region}替换为实际的地域 ID。
已创建 CMS 工作空间(Workspace)。如未创建,请在云监控控制台创建工作空间,或通过 Terraform 资源
alicloud_cms_prometheus_instance创建 Prometheus 实例。已创建接入中心策略(IntegrationPolicy)。如未创建,请先在云监控控制台创建接入中心策略。
创建接入配置
接入配置(AddonRelease)依赖接入策略(IntegrationPolicy),创建前需确保接入策略已存在。
创建工作目录,新建
main.tf的配置文件,内容如下:terraform { required_version = ">= 1.5.0" required_providers { alicloud = { source = "aliyun/alicloud" version = "~> 1.280.0" } } } provider "alicloud" { access_key = "************" secret_key = "************" region = "cn-hangzhou" endpoints { cms = "cms.cn-hangzhou.aliyuncs.com" } } # 创建接入配置(AddonRelease) resource "alicloud_cms_addon_release" "default" { integration_policy_id = "policy-xxxxxxxx" addon_name = "ahpa" addon_version = "1.0.0" workspace = "your-workspace-name" config = jsonencode({ ahpa = { install_ahpa_controller = false scrapeInterval = 30 } }) } output "addon_release_id" { value = alicloud_cms_addon_release.default.id }参数说明:
integration_policy_id: 接入中心策略ID,必填参数,ForceNew。需替换为实际的接入中心策略ID。addon_name: 要集成的Addon名称,必填参数,ForceNew。例如"ahpa"。addon_version: 要集成的Addon版本号,必填参数。可通过ListAddons接口获取可用的Addon信息。workspace: 安装组件资源的工作空间名称,可选参数,ForceNew。需与接入中心策略所在的工作空间一致。config: 组件配置信息,可选参数,JSON格式字符串。用于指定Addon的安装参数。addon_release_name: 集成后的发布包名称,可选参数,ForceNew。aliyun_lang: Addon的语言环境,可选参数,ForceNew。有效值:zh(中文)、en(英文)。env_type: 环境类型,可选参数,ForceNew。有效值:CS、ECS、Cloud。dry_run: 是否试运行,可选参数,布尔类型。有效值:true、false。
注意事项:
integration_policy_id需替换为实际的接入中心策略ID(格式如policy-xxxxxxxx)。workspace参数需替换为您实际使用的工作空间名称。integration_policy_id、addon_name和addon_release_name均为ForceNew参数,修改后会触发资源的销毁和重建。
初始化 Terraform 工作目录。
terraform init预览资源变更计划。
terraform plan预期输出:
... Plan: 1 to add, 0 to change, 0 to destroy. ...执行创建。收到确认提示后输入
yes。terraform apply预期输出:
alicloud_cms_addon_release.default: Creation complete after XXs [id=************] Apply complete! Resources: 1 added, 0 changed, 0 destroyed. Outputs: addon_release_id = "************"若输出结果出现
yes,表示当前AddonRelease创建成功。同时您可以登录云监控控制台,在接入中心的AddonRelease页面查看已成功创建的AddonRelease。具体操作如下:登录云监控控制台。
在左侧导航栏单击接入中心,进入接入中心页面。
在接入中心页面查看已成功创建的AddonRelease。
删除接入配置
执行以下命令,删除通过 Terraform 管理的接入配置:
terraform destroy收到确认提示后输入 yes。预期输出:
alicloud_cms_addon_release.default: Destroying... [id=************]
alicloud_cms_addon_release.default: Destruction complete after XXs
Destroy complete! Resources: 1 destroyed.删除接入配置后,关联的监控组件将立即停止数据采集。执行前请确认该接入配置不再需要。