tencent cloud

文档反馈

使用 Terraform 管理 Prometheus 实例的集成中心

最后更新时间:2023-12-29 16:09:03

    前提条件

    安装 Terraform

    关于安装 Terraform 的具体操作,请参见在 本地安装和配置 Terraform
    说明:
    Terraform 安装版本不得低于 v1.6.3,您可通过 terraform --version 命令查看安装的 Terraform 版本。

    配置腾讯云账号信息

    在首次使用 Terraform 之前,请前往 云 API 密钥 申请安全凭证 SecretId 和 SecretKey。若已有可使用的安全凭证,则跳过该步骤。
    1. 登录 访问管理控制台,在左侧导航栏,选择访问密钥 > API 密钥管理
    2. 在 API 密钥管理页面,单击新建密钥,即可以创建一对 SecretId / SecretKey。

    配置腾讯云账号信息,有以下两种方式:

    静态凭证鉴权
    在用户目录下创建 provider.tf 文件,输入如下内容。其中my-secret-idmy-secret-key 需替换为密钥 SecretId 和 SecretKey。
    provider "tencentcloud" {
    secret_id = "my-secret-id"
    secret_key = "my-secret-key"
    }
    环境变量鉴权
    配置电脑环境变量或云端环境变量,请执行以下命令。其中YOUR_SECRET_IDYOUR_SECRET_KEY 需替换为密钥 SecretId 和 SecretKey。
    export TENCENTCLOUD_SECRET_ID=YOUR_SECRET_ID
    export TENCENTCLOUD_SECRET_KEY=YOUR_SECRET_KEY

    增加 Prometheus 实例的集成中心组件集成

    1. 创建一个新的 Terraform 配置文件:创建一个新的目录,并在该目录下创建一个 main.tf 的文件 ,配置如下信息:
    # 指定 provider 配置信息
    
    terraform { required_providers { tencentcloud = { source = "tencentcloudstack/tencentcloud" } } }
    
    # prometheus管理云监控集成
    
    ## black-box 集成
    resource "tencentcloud_monitor_tmp_exporter_integration" "tmpExporterIntegration" {
    instance_id = tencentcloud_monitor_tmp_instance.foo.id
    kind = "blackbox-exporter"
    content = "{\\"name\\":\\"balck-box-tf-test\\",\\"kind\\":\\"blackbox-exporter\\",\\"spec\\":{\\"instanceSpec\\":{\\"module\\":\\"http_get\\",\\"urls\\":[\\"http://baidu.com\\"]}}}"
    kube_type = 1
    cluster_id = ""
    }
    
    ## 云监控插件集成
    resource "tencentcloud_monitor_tmp_exporter_integration" "tmpExporterMointor" {
    instance_id = tencentcloud_monitor_tmp_instance.foo.id
    kind = "qcloud-exporter"
    content = "{\\"name\\":\\"tf-test-cjtest\\",\\"kind\\":\\"qcloud-exporter\\",\\"spec\\":{\\"instanceSpec\\":{\\"region\\":\\"ap-guangzhou\\",\\"delaySeconds\\":0,\\"reload_interval_minutes\\":10,\\"useRole\\":true,\\"labels\\":{}},\\"exporterSpec\\":{\\"cvm\\":true,\\"cbs\\":false,\\"lb_public\\":true,\\"lb_private\\":false,\\"tgw_set\\":false,\\"cmongo\\":false,\\"cdb\\":false,\\"redis\\":false,\\"redis_mem\\":false,\\"mariadb\\":false,\\"postgres\\":false,\\"tdmysql\\":false,\\"cynosdb_mysql\\":false,\\"sqlserver\\":false,\\"nat_gateway\\":false,\\"ckafka\\":false,\\"rocketmq\\":false,\\"tdmq\\":false,\\"lb\\":false,\\"vpngw\\":false,\\"vpnx\\":false,\\"cdn\\":false,\\"ov_cdn\\":false,\\"cos\\":false,\\"dc\\":false,\\"dcx\\":false,\\"dcg\\":false,\\"lighthouse\\":false,\\"nacos\\":false,\\"zookeeper\\":false,\\"ces\\":false,\\"dts\\":false,\\"vbc\\":false,\\"gaap\\":false,\\"waf\\":false,\\"cfs\\":false,\\"bwp\\":false,\\"scf_v2\\":false,\\"vod\\":false,\\"cls\\":false,\\"apigateway\\":false,\\"self\\":false},\\"scrapeSpec\\":{\\"relabelConfigs\\":\\"metricRelabelings:\\\\n- action: labeldrop\\\\n regex: tmp_test_label\\\\n\\"}}}"
    kube_type = 1
    cluster_id = ""
    }
    说明:
    创建 Prometheus 实例的集成中心组件时配置的字段如下:
    cluster_id:(必填,字符串)集群 ID。
    content:(必填,字符串)集成配置(content 内部参数可自行根据需要更换)。
    instance_id:(必填,字符串)实例 ID。
    kind:(必填,字符串)类型。
    kube_type:(必填,整数)集成配置。
    您若需要获取更多详细参数 ,请参考 腾讯接入云集成接入 github,也可以通过 Terraform 腾讯云提供商 了解更多。
    2. 初始化 Terraform 运行环境,执行命令如下:
    terraform init
    预期输出信息:
    Initializing the backend...
    
    Initializing provider plugins...
    - Reusing previous version of tencentcloudstack/tencentcloud from the dependency lock file
    - Using previously-installed tencentcloudstack/tencentcloud v1.81.32
    
    Terraform has been successfully initialized!
    
    You may now begin working with Terraform. Try running "terraform plan" to see
    any changes that are required for your infrastructure. All Terraform commands
    should now work.
    
    If you ever set or change modules or backend configuration for Terraform,
    rerun this command to reinitialize your working directory. If you forget, other
    commands will detect it and remind you to do so if necessary.
    3. 生成资源规划,执行命令如下:
    terraform plan
    预期输出信息:
    Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the
    following symbols:
    + create
    
    Terraform will perform the following actions:
    
    # tencentcloud_monitor_tmp_exporter_integration.tmpExporterIntegration will be created
    + resource "tencentcloud_monitor_tmp_exporter_integration" "tmpExporterIntegration" {
    + content = jsonencode(
    XXX...
    )
    + id = (known after apply)
    + instance_id = (known after apply)
    + kind = "blackbox-exporter"
    + kube_type = 1
    }
    
    # tencentcloud_monitor_tmp_exporter_integration.tmpExporterMointor will be created
    + resource "tencentcloud_monitor_tmp_exporter_integration" "tmpExporterMointor" {
    + content = jsonencode(
    XXX...
    )
    + id = (known after apply)
    + instance_id = (known after apply)
    + kind = "qcloud-exporter"
    + kube_type = 1
    }
    
    # tencentcloud_monitor_tmp_instance.foo will be created
    + resource "tencentcloud_monitor_tmp_instance" "foo" {
    + api_root_path = (known after apply)
    + data_retention_time = 30
    + id = (known after apply)
    + instance_name = "tf-tmp-instance-sjtest"
    + ipv4_address = (known after apply)
    + proxy_address = (known after apply)
    + remote_write = (known after apply)
    + subnet_id = "subnet-es8rv1kx"
    + tags = {
    + "createdBy" = "terraform"
    }
    + vpc_id = "vpc-0n42dxzs"
    + zone = "ap-mumbai-1"
    }
    
    Plan: 3 to add, 0 to change, 0 to destroy.
    
    ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
    
    Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if
    you run "terraform apply" now.
    4. 创建集成中心组件集成,执行命令如下:
    terraform apply
    预期输出信息:
    Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the
    following symbols:
    + create
    
    Terraform will perform the following actions:
    XXX...
    
    Plan: 3 to add, 0 to change, 0 to destroy.
    
    Do you want to perform these actions?
    Terraform will perform the actions described above.
    Only 'yes' will be accepted to approve.
    
    Enter a value: yes
    
    tencentcloud_monitor_tmp_instance.foo: Creating...
    tencentcloud_monitor_tmp_instance.foo: Still creating... [10s elapsed]
    。。。
    
    Apply complete! Resources: 3 added, 0 changed, 0 destroyed.
    注意:
    当出现 Apply complete! Resources: 3 added, 0 changed, 0 destroyed. 表示您已创建成功。

    查看 Prometheus 实例状态

    登录 腾讯云可观测平台,在左侧导航栏,选择 prometheus 监控 ,可在 prometheus 实例列表中看到存在的实例。

    删除 Prometheus 实例集成中心组件集成

    销毁资源,执行命令如下:
    terraform destroy
    预期输出信息:
    tencentcloud_monitor_tmp_instance.foo: Refreshing state... [id=prom-8dyb6iny]
    
    Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the
    following symbols:
    - destroy
    
    Terraform will perform the following actions:
    XXX...
    
    Plan: 0 to add, 0 to change, 1 to destroy.
    
    Do you really want to destroy all resources?
    Terraform will destroy all your managed infrastructure, as shown above.
    There is no undo. Only 'yes' will be accepted to confirm.
    
    Enter a value: yes
    
    tencentcloud_monitor_tmp_instance.foo: Destroying... [id=prom-8dyb6iny]
    tencentcloud_monitor_tmp_instance.foo: Destruction complete after 6s
    
    Destroy complete! Resources: 1 destroyed.
    
    注意:
    当出现 Destroy complete! Resources: 1 destroyed. 表示您已删除该实例。
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持