このトピックでは、Prometheus を使用して TiDB をモニタリングする方法について説明します。
前提条件
Managed Service for Prometheus に VPC タイプのインスタンスを接続していること。 詳細については、「Prometheus for ECS」をご参照ください。
セルフマネージド Prometheus を使用して TiDB をモニタリングする際の課題
セルフマネージド Prometheus を使用して VPC 内の ECS インスタンス上のセルフマネージド TiDB クラスターをモニタリングする場合、次の問題が発生する可能性があります。
セキュリティまたは組織管理上の理由から、サービスは通常、複数の分離された VPC にデプロイされます。 これにより、複数の VPC に Prometheus を繰り返し独立してデプロイする必要があり、デプロイメントと運用保守 (O&M) のコストが高くなります。
完全なセルフマネージドモニタリングシステムには、それぞれ Prometheus、Grafana、AlertManager などのコンポーネントをインストールして構成する必要があります。 このプロセスは複雑で時間がかかります。
Alibaba Cloud ECS と迅速に統合できるサービス検出メカニズムは利用できません。 そのため、ECS タグに基づいてスクレイプターゲットを柔軟に定義することはできません。 類似機能を実装するには、Go 言語を使用して Alibaba Cloud ECS POP API を呼び出すコードを開発し、それをオープンソースの Prometheus コードと統合する必要があります。 その後、コードをコンパイル、パッケージ化、デプロイする必要があります。 このメソッドは実装のしきい値が高く、複雑で、バージョンのアップグレードが困難です。
一般的なオープンソースの Grafana ダッシュボードは、モニタリングコンポーネントの原則やベストプラクティスに基づいて詳細にカスタマイズすることはできません。
TiDB アラートテンプレートは利用できません。 アラートルールを自分で構成する必要があり、時間がかかり、技術的にも困難です。
セルフマネージド Prometheus と Alibaba Cloud Managed Service for Prometheus の比較
Managed Service for Prometheus は ECS とシームレスに統合されています。 デフォルトでは、TiDB、TiPD、TiKV、TiConsole などのさまざまな TiDB コンポーネントのコアメトリック収集を提供します。 また、対応するダッシュボードとアラートルールも提供し、すぐに使える TiDB モニタリングソリューションを実現します。
次の表は、TiDB モニタリングシナリオにおけるセルフマネージド Prometheus と Managed Service for Prometheus を比較したものです。
項目 | セルフマネージド Prometheus | Managed Service for Prometheus |
デプロイメントと O&M コスト | 複数の VPC に Prometheus、Grafana、AlertManager をデプロイするために ECS インスタンスを購入する必要があります。 これにより、O&M コストが高くなります。 | Managed Service for Prometheus は、Grafana とアラート機能を含む、統合されたフルマネージドのすぐに使えるソリューションを提供します。 |
可用性、パフォーマンス、データ容量 | セルフマネージドのセットアップには、高可用性、パフォーマンス、データ容量に制限があります。 | 高可用性、高性能、大容量のデータ容量を提供します。 |
サービス検出 | ECS 環境では、サービス検出はオープンソースの static_configs やサードパーティのサービスレジストリなどのメソッドを使用して実装されます。 このアプローチは不便で、メンテナンスコストが高くなります。 | 組み込みの aliyun_sd_configs を使用すると、ECS タグを使用してターゲットの ECS インスタンスを照合できます。 これにより、Kubernetes シナリオの labelSelector と一貫したエクスペリエンスが提供され、サービス検出の構成とメンテナンスが大幅に簡素化されます。 |
Grafana ダッシュボード | TiDB 用のオープンソース Grafana ダッシュボードは、多くの場合基本的なものです。 ほとんどは収集されたメトリックを表示するだけで、TiDB の原則やベストプラクティスに基づいて詳細に最適化されていません。 | 専門の TiDB ダッシュボードテンプレートが提供されており、TiDB のエンドツーエンドの運用ステータスを迅速かつ正確に理解し、問題をトラブルシューティングするのに役立ちます。 |
アラートルール | TiDB アラートルールテンプレートは利用できません。 自分でアラートルールを調べて構成する必要があります。 | TiDB モニタリングのベストプラクティスに基づき、専門的で柔軟なアラートルールテンプレートが提供されます。 GUI を使用してアラートルールを構成できます。 |
上記の比較から、Managed Service for Prometheus を使用して TiDB をモニタリングすると、O&M が大幅に簡素化され、コストが削減されることがわかります。 Managed Service for Prometheus を使用して TiDB をモニタリングする方法の詳細については、「Prometheus を使用して TiDB をモニタリングする」をご参照ください。
Prometheus を使用して TiDB をモニタリングする
ステップ 1: TiDB を統合する
ARMS コンソールにログインします。
左側のナビゲーションウィンドウで、[Integration Center] をクリックします。 次に、[Database] セクションで [TIDB] をクリックします。 表示されたページで、画面の指示に従ってコンポーネントを統合します。
[環境タイプ] を選択します。これは [コンテナーサービス環境] または [ECS (VPC)] のいずれかです。 次に、[コンテナーサービスクラスターの選択] または [VPC の選択] を行います。
[構成情報] セクションでパラメーターを構成し、[OK] をクリックします。
パラメータ
説明
統合名
カスタム統合名。
TIDB クラスター名
TiDB クラスターの名前。 ダッシュボードの表示エラーを引き起こす可能性のあるメトリック収集の競合を防ぐために、統合ごとに異なるクラスター名を使用する必要があります。
名前空間
カスタム名前空間。
PD サーバーコンテナー名
コンテナー名が複数ある場合は、縦棒 (|) を使用して区切ることで「OR」照合ができます。 例: 「pd|pd1」。
PD メトリックポート
PD、TiDB、TiKV コンポーネントのメトリックのリスナーポート。これにより、Managed Service for Prometheus はこれらのポートにアクセスしてモニタリングデータを取得できます。 これには、メトリックの HTTP スクレイプパスも含まれます。通常は
/metricsです。PD メトリックスクレイプパス
TiDB サーバーコンテナー名
TiDB メトリックポート
TiDB メトリックスクレイプパス
TiKV サーバーコンテナー名
TiKV メトリックポート
TiKV メトリックスクレイプパス
メトリックスクレイプ間隔 (秒)
Managed Service for Prometheus は TiDB モニタリングデータをスクレイピングします。 デフォルト値は 30 秒です。
説明[Scraped Metrics] タブでメトリックを表示できます。
インストールされたコンポーネントは、Managed Service for Prometheus コンソール の [統合管理] ページに表示されます。[統合管理] ページには、[統合環境]、[統合アドオン]、および [クエリダッシュボード] の各タブがあり、ターゲット、メトリック、ダッシュボード、アラートなどの情報を表示できます。
ステップ 2: TiDB ダッシュボードデータを表示する
Managed Service for Prometheus は、TiDB で一般的に使用される 20 以上の組み込み Grafana ダッシュボードを提供します。 Grafana を別途インストールしなくても、さまざまな TiDB コンポーネントのモニタリングダッシュボードを表示できます。
[プロビジョニング] ページで、ターゲットクラスターを選択し、[ダッシュボード] タブをクリックしてコンポーネントのダッシュボードを表示します。 ハイパーリンクをクリックして、Alibaba Cloud Grafana で対応するモニタリングダッシュボードを開きます。
ステップ 3: TiDB モニタリングアラートを構成する
[プロビジョニング] ページで、ターゲットクラスターを選択し、[アラートルール] タブをクリックして、TiDB コンポーネントのすべての Prometheus アラートルールを表示します。
Managed Service for Prometheus は、TiDB コンポーネント用に 30 を超える主要なアラートルールを自動的に作成します。 これらのアラートルールのしきい値を変更して有効にするだけで済みます。 必要に応じて、新しいアラートルールを追加することもできます。 詳細については、「Prometheus アラートルールを作成する」をご参照ください。