オープンソースの QCloud exporter をデプロイし、Managed Service for Prometheus を使用して Tencent Cloud リソースを監視します。
前提条件
Container Service for Kubernetes (ACK) クラスターを作成済みです。詳細については、「ACK 専用クラスターを作成する (新規作成は提供終了)」をご参照ください。
Container Service for Kubernetes (ACK) クラスターが Managed Service for Prometheus に接続されています。 詳細については、「コンテナの可観測性」をご参照ください。
背景情報
オープンソースの QCloud exporter は、Tencent Cloud Monitor のメトリクスを Prometheus 形式に変換します。その後、Prometheus がこれらのメトリクスをスクレイプして Tencent Cloud リソースを監視します。
Tencent Cloud の Cloud Monitor (CM) は、クラウドサーバーやデータベースなどの Tencent Cloud リソースに対して、リアルタイムの監視とアラートを提供します。QCloud exporter は、次の Tencent Cloud リソースをサポートする Prometheus サードパーティ exporter です。
製品 | Namespace | サポートされるメトリクス |
TencentDB for MongoDB | QCE/CMONGO | |
Cloud Database (CDB) | QCE/CDB | |
TencentDB for Redis (Standard Edition) | QCE/REDIS | メトリクスの詳細は提供されていません。 |
TencentDB for Redis (Cluster Edition) | QCE/REDIS_CLUSTER | メトリクスの詳細は提供されていません。 |
TencentDB for Redis (Memory Edition) | QCE/REDIS_MEM | |
クラウドサーバー | QCE/CVM | |
Cloud Object Storage (COS) | QCE/COS | |
Content Delivery Network (CDN) | QCE/CDN | |
Cloud Load Balancer (public network) | QCE/LB_PUBLIC | |
Cloud Load Balancer (Layer-7) | QCE/LOADBALANCE | |
NAT Gateway | QCE/NAT_GATEWAY | |
Direct Connect | QCE/DC | |
Direct Connect Tunnel | QCE/DCX | |
クラウドディスク | QCE/CBS | |
TencentDB for SQL Server | QCE/SQLSERVER | |
TencentDB for MariaDB | QCE/MARIADB | |
Elasticsearch Service | QCE/CES | |
Cloud Message Queue (CMQ) Queue Service | QCE/CMQ | |
CMQ Topic Subscription | QCE/CMQTOPIC | |
TencentDB for PostgreSQL | QCE/POSTGRES | |
CKafka instance | QCE/CKAFKA | |
Memcached | QCE/MEMCACHED | メトリクスの詳細は提供されていません。 |
Lighthouse | QCE/LIGHTHOUSE | メトリクスの詳細は提供されていません。 |
TDSQL for MySQL | QCE/TDMYSQL | |
Elastic IP Address (EIP) | QCE/LB |
操作手順
次の図は、Managed Service for Prometheus を使用して Tencent Cloud リソースを監視するワークフローを示しています。
ステップ 1:QCloud exporter のデプロイ
イメージをビルドします。
git clone https://github.com/tencentyun/tencentcloud-exporter.git make build製品インスタンスの構成を設定します。
クラウド API の認証情報を設定します。
エクスポートする製品、メトリクス、インスタンスを設定します。
例として、クラウドサーバーのすべてのメトリクスとインスタンスをエクスポートするには、次の構成を使用します:
credential: access_key: "access_key" # クラウド API の SecretId。 secret_key: "secret_key" # クラウド API の SecretKey。 region: "ap-nanjing" # インスタンスが存在するリージョン。 rate_limit: 15 # Cloud Monitor からデータを取得するためのレート制限。最大は 20 calls/second または 1,200 calls/minute。詳細については 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 # リージョン内のすべてのインスタンスをエクスポートします。 #only_include_metrics: [] #only_include_instances: [ins-xxxxxxxx] extra_labels: [InstanceId, InstanceName] # インスタンスのフィールドをメトリクスラベルとしてエクスポートします。 #statistics_types: [last] #period_seconds: 60 #metric_name_type: 2説明qcloud.yamlファイルの設定方法の詳細については、tencentcloud-exporter のドキュメントをご参照ください。QCloud exporter をデプロイします。
構成ファイルを含む Docker イメージをビルドし、Docker Hub や Container Registry (ACR) などのリポジトリにプッシュします。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
クラスターリスト ページで、対象のクラスターを見つけ、Operation 列の アプリケーションの管理 をクリックします。
Deployment を作成します。
左側のナビゲーションペインで、 を選択します。
ステータスなし ページで、YAML のリソースの作成 をクリックします。
作成 ページで、テンプレート エディターに次の 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
Service を作成します。
左側のナビゲーションペインで、 を選択します。
サービス ページで、YAML のリソースの作成 をクリックします。
作成 ページで、テンプレート エディターに次の 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
ステップ 2:サービスディスカバリーの設定
QCloud exporter からメトリクスをスクレイプするには、Prometheus 向けマネージドサービスでサービス検出を設定します。
ACK クラスターが Prometheus 向けマネージドサービスに接続されていることを確認してください。詳細については、「コンテナサービス用の Prometheus インスタンス」をご参照ください。
にログインします。 Prometheusコンソールのマネージドサービス。
左側のナビゲーションペインで、インスタンスリスト をクリックします。
上部メニューバーで ACK クラスターが所在するリージョンを選択し、対象のインスタンス名をクリックします。
左側のナビゲーションペインで サービスディスカバリー をクリックし、設定 タブをクリックします。
設定 ページで [ServiceMonitor] タブをクリックし、ServiceMonitor の追加 をクリックします。ServiceMonitor の追加 ダイアログボックスで次の内容を入力して、OK をクリックします。
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] ページに表示されます。
一覧には、名前がqcloud-exporter、名前空間がdefault、match ラベルが
{matchLabels={app=...}}、セレクターが{any=true}のレコードが表示されます。ステータスは緑色 (有効) で表示され、右側には[削除]と[編集]の操作があります。
ステップ 3:アラートルールの作成
Prometheus のアラートルールを作成します。手順の詳細は、「Create a Prometheus alert rule」をご参照ください。