玩转云端监控:腾讯云云监控无缝对接自建Prometheus

2024-09-06 19:11:51 浏览数 (3)

部分客户在云下已有完善的企业IT管理系统,希望能够将云上数据实时导出到线下进行统一监控。基于该场景,云监控推出了监控数据实时导出工具。该工具可以在客户的线下运行,根据配置实时获取云监控的监控数据,并持续写入本地Prometheus

方案优势

  • 支持云监控里的部分云服务
  • 更快更实时的基于企业云监控的实时数据导出功能流式导出监控数据,无需担心数据丢失的异常情况,更不用担心API调用次数限制和流控问题。
  • 本地化部署,操作简单。
  • 导出的监控数据维度更丰富,自动补全实例IP地址、实例名称、地域、资源组、标签等信息,使数据可以更方便的通过PromQL进行多维度的统计分析。

背景信息

腾讯云监控已于2022年09月01日开始对超出免费额度的 API 接口的请求进行计费,需要手动开通 API 付费,详见计费说明与开通指引。

GitHub - tencentyun/tencentcloud-exporter: TencentCloud Prometheus Exporter

前提条件

  • API 请求按量付费(超过100万次/月需开通)。
  • Prometheus必须与云监控网络互通。

每个主账号的免费请求额度为100万次/月。超过免费额度后将无法继续使用 GetMonitorData 接口请求监控数据。如需继续调用接口需要手动开通“API 请求按量付费”。

计费规则

超过免费额度后,将按照下列模式进行计费。

计费单价:0.25元/万次请求。

计费公式:若当月累计请求次数超过100万次,则每小时的计费金额为:计费单价 × 每小时实际请求次数/10000。

支持的产品列表

产品

命名空间

支持的指标

数据库MongoDB

QCE/CMONGO

指标详情

数据库MySQL(CDB)

QCE/CDB

指标详情

Redis标准版

QCE/REDIS(即将下线,不推荐)

指标详情

Redis集群版

QCE/REDIS_CLUSTER(即将下线,不推荐)

指标详情

数据库Redis(内存版)

QCE/REDIS_MEM

指标详情

云服务器CVM

QCE/CVM

指标详情

COS

QCE/COS

指标详情

CDN

QCE/CDN

指标详情

负载均衡CLB(公网)

QCE/LB_PUBLIC

指标详情

负载均衡CLB(7层)

QCE/LOADBALANCE

指标详情

NAT网关

QCE/NAT_GATEWAY

指标详情

物理专线

QCE/DC

指标详情

专用通道

QCE/DCX

指标详情

云硬盘

QCE/CBS

指标详情

数据库SQL Server

QCE/SQLSERVER

指标详情

数据库MariaDB

QCE/MARIADB

指标详情

Elasticsearch

QCE/CES

指标详情

CMQ 队列服务

QCE/CMQ(即将下线,不推荐)

指标详情

CMQ 主题订阅

QCE/CMQTOPIC(即将下线,不推荐)

指标详情

数据库PostgreSQL

QCE/POSTGRES

指标详情

CKafka 实例

QCE/CKAFKA

指标详情

Memcached

QCE/MEMCACHED

指标详情说明文档(待上线)

轻量应用服务器Lighthouse

QCE/LIGHTHOUSE

指标详情

分布式数据库 TDSQL MySQL

QCE/TDMYSQL

指标详情

弹性公网 IP

QCE/LB

指标详情

消息队列RocketMQ版

QCE/TDMQ

指标详情

VPN 网关

QCE/VPNGW

指标详情

VPN 通道

QCE/VPNX

指标详情

CYNOSDB_MYSQL

QCE/CYNOSDB_MYSQL

指标详情

云联网

QCE/VBC

指标详情

数据传输

QCE/DTS

指标详情

专线网关

QCE/DCG

指标详情

全球应用加速

QCE/QAAP

指标详情

Web应用防火墙

QCE/WAF

指标详情

负载均衡CLB(内网)

QCE/LB_PRIVATE

指标详情

服务部署

代码语言:javascript复制
编译安装
git clone https://github.com/tencentyun/tencentcloud-exporter.git
go build cmd/qcloud-exporter/qcloud_exporter.go

二进制部署
下载相关配置文件,
wget https://github.com/tencentyun/tencentcloud-exporter/archive/refs/tags/v2.24.0.zip
下载qcloud_exporter启动文件
wget https://github.com/tencentyun/tencentcloud-exporter/releases/download/v2.24.0/qcloud-exporter-v2.24.0-linux-amd64.tar.gz
unzip v2.24.0.zip
cd tencentcloud-exporter-2.24.0/configs
将启动文件解压后直接放到 tencentcloud-exporter-2.24.0/configs中即可

参数介绍

mongodb配置文件示例-全量

代码语言:javascript复制
mongodb 获取所有参数
credential:
  access_key: "access_key"            // 云API的SecretId
  secret_key: "secret_key"            // 云API的SecretKey
  region: "ap-guangzhou"              // 实例所在区域信息

products:
  - namespace: QCE/CMONGO             // 产品命名空间
    all_metrics: true                 // 导出支持的所有指标
    all_instances: true               // 导出region下的所有实例
    extra_labels: [InstanceName,Zone] // 将实例的字段作为指标的lables导出

mongodb配置文件示例-配置相关参数

代码语言:javascript复制
credential:
  access_key:// 必须, 云API的SecretId
  secret_key:// 必须, 云API的SecretKey
  region: "ap-guangzhou"                               // 必须, 实例所在区域信息

rate_limit: 15                                   // 腾讯云监控拉取指标数据限制, 官方默认限制最大20qps


// 整个产品纬度配置, 每个产品一个item
products:
  - namespace: QCE/CMONGO                        // 必须, 产品命名空间
    all_metrics: true                            // 常用, 推荐开启, 导出支持的所有指标
    all_instances: true                          // 常用, 推荐开启, 导出该region下的所有实例
    extra_labels: [InstanceName,Zone]            // 可选, 将实例的字段作为指标的lables导出
    only_include_metrics: [Inserts]              // 可选, 只导出这些指标, 配置时all_metrics失效
    exclude_metrics: [Reads]                     // 可选, 不导出这些指标
    only_include_instances: [cmgo-xxxxxxxx]      // 可选, 只导出这些实例id, 配置时all_instances失效
    exclude_instances: [cmgo-xxxxxxxx]           // 可选, 不导出这些实例id
    custom_query_dimensions:                     // 可选, 不常用, 自定义指标查询条件, 配置时all_instances,only_include_instances,exclude_instances失效, 用于不支持按实例纬度查询的指标
      - target: cmgo-xxxxxxxx
    statistics_types: [avg]                      // 可选, 拉取N个数据点, 再进行max、min、avg、last计算, 默认last取最新值
    period_seconds: 60                           // 可选, 指标统计周期
    range_seconds: 300                           // 可选, 选取时间范围, 开始时间=now-range_seconds, 结束时间=now
    delay_seconds: 60                            // 可选, 时间偏移量, 结束时间=now-delay_seconds
    metric_name_type: 1                          // 可选,导出指标的名字格式化类型, 1=大写转小写加下划线, 2=转小写; 默认2
    reload_interval_minutes: 60                   // 可选, 在all_instances=true时, 周期reload实例列表, 建议频率不要太频繁


// 单个指标纬度配置, 每个指标一个item
metrics:
  - tc_namespace: QCE/CMONGO                     // 产品命名空间, 同namespace
    tc_metric_name: Inserts                      // 云监控定义的指标名
    tc_metric_rename: Inserts                    // 导出指标的显示名
    tc_metric_name_type: 1                       // 可选,导出指标的名字格式化类型, 1=大写转小写加下划线, 2=转小写; 默认1
    tc_labels: [InstanceName]                    // 可选, 将实例的字段作为指标的lables导出
    tc_myself_dimensions:                        // 可选, 同custom_query_dimensions
    tc_statistics: [Avg]                         // 可选, 同statistics_types
    period_seconds: 60                           // 可选, 同period_seconds
    range_seconds: 300                           // 可选, 同range_seconds
    delay_seconds: 60                            // 可选, 同delay_seconds

多个服务一个配置文件

代码语言:javascript复制
credential:
  access_key: "AK*****"
  secret_key: "f6****"
  region: "ap-beijing"

rate_limit: 15                #云监控拉数据接口最大限制, 20/秒, 1200/分钟, https://cloud.tencent.com/document/product/248/31014

products:
  - namespace: QCE/CDB        #指标详情: https://cloud.tencent.com/document/product/248/45147
    all_metrics: true
    all_instances: true
  - namespace: QCE/CMONGO   #指标详情: https://cloud.tencent.com/document/product/248/45104
    all_metrics: true       #自动导出所有实例的集群、副本集、节点3个纬度的指标数据
    all_instances: true
  - namespace: QCE/REDIS_MEM    # 指标详情: https://cloud.tencent.com/document/product/248/45111
    all_metrics: true
    all_instances: true

特殊说明:

1、custom_query_dimensions

每个实例的纬度字段信息, 可从对应的云监控产品指标文档查询, 如mongo支持的纬度字段信息可由云监控指标详情 查询

2、extra_labels

每个导出metric的labels还额外上报实例对应的字段信息, 实例可选的字段列表可从对应产品文档查询, 如mongo实例支持的字段可从实例查询api文档 获取, 目前只支持str、int类型的字段

3、period_seconds

每个指标支持的时间纬度统计, 一般支持60、300秒等, 具体可由对应产品的云监控产品指标文档查询, 如mongo可由指标元数据查询 , 假如不配置, 使用默认值(60), 假如该指标不支持60, 则自动使用该指标支持的最小值

4、credential

SecretId、SecretKey、Region可由环境变量获取

export TENCENTCLOUD_SECRET_ID="YOUR_ACCESS_KEY"

export TENCENTCLOUD_SECRET_KEY="YOUR_ACCESS_SECRET"

export TENCENTCLOUD_REGION="REGION"

5、region

地域可选值参考地域可选值

qcloud_exporter支持的命令行参数说明

命令行参数

说明

默认值

--web.listen-address

http服务的端口

9123

--web.telemetry-path

http访问的路径

/metrics

--web.enable-exporter-metrics

是否开启服务自身的指标导出, promhttp_*, process_*, go_*

false

--web.max-requests

最大同时抓取/metrics并发数, 0=disable

0

--config.file

产品实例指标配置文件位置

qcloud.yml

--log.level

日志级别

info

启动 Exporter

代码语言:javascript复制
> qcloud_exporter --config.file "qcloud.yml"
指定端口
> ./qcloud_exporter --config.file "all-product.yml" --web.listen-address="0.0.0.0:9126"

访问 http://192.168.10.10:9126/metrics 查看所有导出的指标

0 人点赞