使用Prometheus監(jiān)控騰訊云資源
本文介紹如何使用阿里云Prometheus實(shí)現(xiàn)對騰訊云云資源的監(jiān)控。
前提條件
已創(chuàng)建阿里云容器服務(wù)K8s集群。具體操作,請參見創(chuàng)建ACK專有集群。
阿里云容器服務(wù)K8s集群已接入可觀測監(jiān)控 Prometheus 版。具體操作,請參見容器可觀測。
背景信息
利用開源的騰訊云監(jiān)控Exporter(qcloud exporter)可以將騰訊云監(jiān)控支持的產(chǎn)品監(jiān)控指標(biāo)自動批量導(dǎo)出為Prometheus格式,使用Prometheus拉取qcloud exporter指標(biāo)即可實(shí)現(xiàn)對騰訊云資源的監(jiān)控。
騰訊云云監(jiān)控(Cloud Monitor,簡稱CM)是一項(xiàng)可對騰訊云云資源實(shí)時(shí)監(jiān)控和告警的服務(wù),為用戶提供統(tǒng)一監(jiān)控云服務(wù)器、云數(shù)據(jù)庫等所有云產(chǎn)品的平臺。qcloud exporter是Prometheus Third-party exporters一種實(shí)現(xiàn),當(dāng)前支持的騰訊云資源列表如下:
產(chǎn)品 | 命名空間 | 支持的指標(biāo) |
MongoDB | QCE/CMONGO | |
CDB | QCE/CDB | |
Redis標(biāo)準(zhǔn)版 | QCE/REDIS | 暫無指標(biāo)詳情說明 |
Redis集群版 | QCE/REDIS_CLUSTER | 暫無指標(biāo)詳情說明 |
Redis內(nèi)存版監(jiān)控指標(biāo) | QCE/REDIS_MEM | |
CVM | QCE/CVM | |
COS | QCE/COS | |
CDN | QCE/CDN | |
CLB(公網(wǎng)) | 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隊(duì)列服務(wù) | QCE/CMQ | |
CMQ主題訂閱 | QCE/CMQTOPIC | |
PostgreSQL | QCE/POSTGRES | |
CKafka實(shí)例 | QCE/CKAFKA | |
Memcached | QCE/MEMCACHED | 暫無指標(biāo)詳情說明 |
Lighthouse | QCE/LIGHTHOUSE | 暫無指標(biāo)詳情說明 |
分布式數(shù)據(jù)庫TDSQL MySQL實(shí)例 | QCE/TDMYSQL | |
彈性公網(wǎng)IP | QCE/LB |
操作流程
通過阿里云Prometheus配置監(jiān)控騰訊云的操作流程如下圖所示。
步驟一:部署qcloud exporter
構(gòu)造鏡像。
git clone https://github.com/tencentyun/tencentcloud-exporter.git make build
定義產(chǎn)品實(shí)例配置。
配置云API的credential認(rèn)證信息
配置產(chǎn)品products指標(biāo)、實(shí)例導(dǎo)出信息
例如,若您需要導(dǎo)出云服務(wù)器CVM所有指標(biāo)和實(shí)例信息,您可以執(zhí)行如下代碼段。
credential: access_key: "access_key" #云API的SecretId secret_key: "secret_key" #云API的SecretKey region: "ap-nanjing" #實(shí)例所在區(qū)域信息 rate_limit: 15 #云監(jiān)控拉數(shù)據(jù)接口最大限制, 20次/秒, 1200次/分鐘, https://cloud.tencent.com/document/product/248/31014 products: - namespace: QCE/CVM #指標(biāo)詳情: https://cloud.tencent.com/document/product/248/6843 all_metrics: true #導(dǎo)出支持的所有指標(biāo) all_instances: true #導(dǎo)出region下的所有實(shí)例 #only_include_metrics: [] #only_include_instances: [ins-xxxxxxxx] extra_labels: [InstanceId, InstanceName] #將實(shí)例的字段作為指標(biāo)的labels導(dǎo)出 #statistics_types: [last] #period_seconds: 60 #metric_name_type: 2
說明更多qcloud.yaml配置詳情,請參見 tencentcloud-exporter。
部署qcloud exporter。
將以上配置文件構(gòu)建到Docker鏡像并將鏡像上傳到鏡像倉庫,如DockerHub、阿里云容器鏡像服務(wù)ACR。
登錄容器服務(wù)管理控制臺,在左側(cè)導(dǎo)航欄選擇集群。
在集群列表頁面,單擊目標(biāo)集群右側(cè)操作列下的應(yīng)用管理。
創(chuàng)建容器組。
在左側(cè)導(dǎo)航欄,選擇
。在無狀態(tài)頁面,單擊使用YAML創(chuàng)建資源。
在創(chuàng)建頁面的模板代碼框中輸入以下內(nèi)容,然后單擊創(chuàng)建。
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
創(chuàng)建服務(wù)。
在左側(cè)導(dǎo)航欄,選擇
。在服務(wù)頁面,單擊使用YAML創(chuàng)建資源。
在創(chuàng)建頁面的模板代碼框輸入以下內(nèi)容,然后單擊創(chuàng)建。
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
步驟二:配置服務(wù)發(fā)現(xiàn)
配置可觀測監(jiān)控 Prometheus 版的服務(wù)發(fā)現(xiàn)以接收qcloud exporter數(shù)據(jù)的操作步驟如下:
請確認(rèn)阿里云容器服務(wù)K8s集群已接入可觀測監(jiān)控 Prometheus 版。具體操作,請參見Prometheus實(shí)例 for 容器服務(wù)。
- 登錄ARMS控制臺。
在左側(cè)導(dǎo)航欄選擇 。
在頂部菜單欄,選擇K8s集群所在的地域,然后單擊目標(biāo)實(shí)例名稱。
在左側(cè)導(dǎo)航,單擊服務(wù)發(fā)現(xiàn),然后單擊配置頁簽。
在配置頁面,單擊ServiceMonitor頁簽,然后單擊添加ServiceMonitor,在彈出的添加ServiceMonitor對話框中輸入以下內(nèi)容,單擊確定。
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頁面會顯示配置的服務(wù)發(fā)現(xiàn)。
步驟三:創(chuàng)建報(bào)警
創(chuàng)建Prometheus告警規(guī)則,具體操作,請參見Prometheus告警規(guī)則。