本文介紹如何使用阿里雲Prometheus實現對騰訊云云資源的監控。
前提條件
背景資訊
利用開源的騰訊CloudMonitorExporter(qcloud exporter)可以將騰訊CloudMonitor支援的產品監控指標自動大量匯出為Prometheus格式,使用Prometheus拉取qcloud exporter指標即可實現對騰訊雲資源的監控。
騰訊云云監控(Cloud Monitor,簡稱CM)是一項可對騰訊云云資源即時監控和警示的服務,為使用者提供統一監控雲端服務器、雲資料庫等所有雲產品的平台。qcloud exporter是Prometheus Third-party exporters一種實現,當前支援的騰訊雲資源清單如下:
產品 | 命名空間 | 支援的指標 |
MongoDB | QCE/CMONGO | |
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 | |
SqlServer | 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 | |
Elastic IP Address | QCE/LB |
操作流程
通過阿里雲Prometheus配置監控騰訊雲的操作流程如下圖所示。
步驟一:部署qcloud exporter
構造鏡像。
git clone https://github.com/tencentyun/tencentcloud-exporter.git make build
定義產品執行個體配置。
配置Cloud API的credential認證資訊
配置產品products指標、執行個體匯出資訊
例如,若您需要匯出雲端服務器CVM所有指標和執行個體資訊,您可以執行如下程式碼片段。
credential: access_key: "access_key" #Cloud API的SecretId secret_key: "secret_key" #Cloud API的SecretKey region: "ap-nanjing" #執行個體所在地區資訊 rate_limit: 15 #CloudMonitor拉資料介面最大限制, 20次/秒, 1200次/分鐘, https://cloud.tencent.com/document/product/248/31014 products: - namespace: QCE/CVM #指標詳情: https://cloud.tencent.com/document/product/248/6843 all_metrics: true #匯出支援的所有指標 all_instances: true #匯出region下的所有執行個體 #only_include_metrics: [] #only_include_instances: [ins-xxxxxxxx] extra_labels: [InstanceId, InstanceName] #將執行個體的欄位作為指標的labels匯出 #statistics_types: [last] #period_seconds: 60 #metric_name_type: 2
說明更多qcloud.yaml配置詳情,請參見 tencentcloud-exporter。
部署qcloud exporter。
將以上設定檔構建到Docker鏡像並將鏡像上傳到鏡像倉庫,如DockerHub、阿里雲Container RegistryACR。
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群右側操作列下的應用管理。
建立容器組。
在左側導覽列,選擇
。在無狀態頁面,單擊使用YAML建立資源。
在建立頁面的模板代碼框中輸入以下內容,然後單擊建立。
apiVersion: apps/v1 kind: Deployment metadata: generation: 5 labels: app: qcloud-exporter-demo name: qcloud-exporter-demo namespace: default spec: replicas: 1 selector: matchLabels: app: qcloud-exporter-demo template: metadata: labels: app: qcloud-exporter-demo spec: containers: - args: - '--config.file=/usr/local/etc/qcloud-cvm-product.yml' image: 'registry.cn-hangzhou.aliyuncs.com/fuling/qcloud-exporter:v0.1' imagePullPolicy: Always name: qcloud-exporter ports: - containerPort: 9123 name: web-normal protocol: TCP
建立服務。
在左側導覽列,選擇
。在服務頁面,單擊使用YAML建立資源。
在建立頁面的模板代碼框輸入以下內容,然後單擊建立。
apiVersion: v1 kind: Service metadata: labels: app: qcloud-exporter-demo name: qcloud-exporter-demo-svc namespace: default spec: ports: - name: qcloud-exporter-metrics port: 9123 protocol: TCP targetPort: 9123 selector: app: qcloud-exporter-demo
步驟二:佈建服務發現
配置可觀測監控 Prometheus 版的服務發現以接收qcloud exporter資料的操作步驟如下:
請確認阿里雲Container ServiceK8s叢集已接入可觀測監控 Prometheus 版。具體操作,請參見Prometheus執行個體 for Container Service。
- 登入Prometheus控制台。
在左側導覽列,單擊執行個體列表。
在頂部功能表列,選擇K8s叢集所在的地區,然後單擊目標執行個體名稱。
在左側導航,單擊服務發現,然後單擊配置頁簽。
在配置頁面,單擊ServiceMonitor頁簽,然後單擊添加ServiceMonitor,在彈出的添加ServiceMonitor對話方塊中輸入以下內容,單擊確定。
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: qcloud-exporter-sm namespace: default spec: endpoints: - interval: 60s path: /metrics port: qcloud-exporter-metrics scrapeTimeout: 60s namespaceSelector: any: true selector: matchLabels: app: qcloud-exporter-demo
ServiceMonitor頁面會顯示配置的服務發現。
步驟三:建立警示
建立Prometheus警示規則,具體操作,請參見Prometheus警示規則。