このトピックでは、Alibaba Cloud Managed Service for Prometheus を使用して Tencent Cloud リソースを監視する方法について説明します。
前提条件
Container Service for Kubernetes (ACK) クラスタが作成されていること。詳細については、ACK 専用クラスタの作成を参照してください。
ACK クラスタがManaged Service for Prometheusで監視されていること。詳細については、ACK クラスタの監視を参照してください。
背景情報
QCloud エクスポーターを使用して、Tencent Cloud Cloud Monitor (CM) から Managed Service for Prometheus にメトリクスをエクスポートできます。これにより、Managed Service for Prometheus で Tencent Cloud リソースを監視できます。
CMは、Tencent Cloud によって開発されたリアルタイムの監視およびアラートサービスです。CM は、クラウド仮想マシン (CVM) やデータベースサービスなど、すべての Tencent Cloud オファリングを一元的に監視するためのプラットフォームを提供します。QCloud エクスポーターは、サードパーティの Prometheus エクスポーターです。次の表に、QCloud エクスポーターでサポートされている Tencent Cloud リソースを示します。
サービス | 名前空間 | メトリック |
TencentDB for MongoDB | QCE/CMONGO | |
Cloud Database | QCE/CDB | |
TencentDB for Redis (標準アーキテクチャ) | QCE/REDIS | なし |
TencentDB for Redis (クラスタアーキテクチャ) | QCE/REDIS_CLUSTER | なし |
TencentDB for Redis (Memory Edition) | QCE/REDIS_MEM | |
クラウド仮想マシン | QCE/CVM | |
クラウドオブジェクトストレージ | QCE/COS | |
コンテンツ配信ネットワーク | QCE/CDN | |
クラウドロードバランサー (インターネット) | QCE/LB_PUBLIC | |
クラウドロードバランサー (レイヤー 7) | QCE/LOADBALANCE | |
NAT ゲートウェイ | QCE/NAT_GATEWAY | |
Direct Connect (接続) | QCE/DC | |
Direct Connect (専用トンネル) | QCE/DCX | |
クラウドブロックストレージ | QCE/CBS | |
TencentDB for SQL Server | QCE/SQLSERVER | |
TencentDB for MariaDB | QCE/MARIADB | |
Elasticsearch Service | QCE/CES | |
Cloud Message Queue (キューサービス) | QCE/CMQ | |
Cloud Message Queue (トピックサブスクリプション) | QCE/CMQTOPIC | |
TencentDB for PostgreSQL | QCE/POSTGRES | |
CKafka | QCE/CKAFKA | |
Memcached | QCE/MEMCACHED | なし |
Lighthouse | QCE/LIGHTHOUSE | なし |
TDSQL for MySQL | QCE/TDMYSQL | |
Elastic IP | QCE/LB |
手順
次の図は、Managed Service for Prometheus を使用して Tencent Cloud リソースを監視する方法を示しています。
手順 1: QCloud エクスポーターをデプロイする
イメージをビルドします。
git clone https://github.com/tencentyun/tencentcloud-exporter.git make build
リソースとインスタンスを設定します。
TencentCloud API の認証情報を設定します。
メトリックをエクスポートするリソースとインスタンスを設定します。
すべての CVM インスタンスのすべてのメトリックをエクスポートする場合は、次のコードを使用できます。
credential: access_key: "access_key" // TencentCloud API の SecretId。 secret_key: "secret_key" // TencentCloud API の SecretKey。 region: "ap-nanjing" // インスタンスが存在するリージョン。 rate_limit: 15 // データをプルするために CM が 1 秒あたりに行うことができる API 呼び出しの最大数。例: 20。詳細については、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 エクスポーターをデプロイします。
上記の YAML ファイルを使用して Docker イメージを作成し、DockerHub やAlibaba Cloud Container Registryなどのイメージリポジトリにアップロードします。
ACK コンソールにログインします。左側のナビゲーションペインで、クラスタをクリックします。
クラスタページで、管理するクラスタを見つけ、アクション列のアプリケーションをクリックします。
コンテナグループを作成します。
左側のナビゲーションペインで、
を選択します。デプロイメントページで、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
手順 2: サービスディスカバリ設定を追加する
Managed Service for Prometheusでサービスディスカバリ設定を追加して QCloud エクスポーターからデータを収集するには、次の手順を実行します。
ACK クラスタがManaged Service for Prometheusで監視されていることを確認してください。詳細については、Container Service に Prometheus インスタンスを使用するを参照してください。
Managed Service for 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タブにサービスディスカバリ設定が表示されます。
手順 3: アラートルールを作成する
アラートルールを作成します。詳細については、Prometheus インスタンスのアラートルールを作成するを参照してください。