TiDBクラスタの監視サービスをデプロイ

このドキュメントは、TiDB 監視およびアラート サービスを手動で展開するユーザーを対象としています。

TiUPを使用して TiDB クラスターをデプロイする場合、監視およびアラート サービスは自動的にデプロイされるため、手動でのデプロイは必要ありません。

PrometheusとGrafanaをデプロイ

TiDB クラスター トポロジが次のようになっていると仮定します。

名前ホストIPサービス
ノード1192.168.199.113PD1、TiDB、node_export、プロメテウス、グラファナ
ノード2192.168.199.114PD2、ノードエクスポート
ノード3192.168.199.115PD3、ノードエクスポート
ノード4192.168.199.116TiKV1、ノードエクスポート
ノード5192.168.199.117TiKV2、ノードエクスポート
ノード6192.168.199.118TiKV3、ノードエクスポート

ステップ1: バイナリパッケージをダウンロードする

# Downloads the package. wget https://github.com/prometheus/prometheus/releases/download/v2.49.1/prometheus-2.49.1.linux-amd64.tar.gz wget https://download.pingcap.org/node_exporter-v1.3.1-linux-amd64.tar.gz wget https://download.pingcap.org/grafana-7.5.17.linux-amd64.tar.gz
# Extracts the package. tar -xzf prometheus-2.49.1.linux-amd64.tar.gz tar -xzf node_exporter-v1.3.1-linux-amd64.tar.gz tar -xzf grafana-7.5.17.linux-amd64.tar.gz

ステップ2: Node1、Node2、Node3、Node4でnode_exporter起動する

cd node_exporter-v1.3.1-linux-amd64 # Starts the node_exporter service. $ ./node_exporter --web.listen-address=":9100" \ --log.level="info" &

ステップ3: Node1でPrometheusを起動する

Prometheus 構成ファイルを編集します。

cd prometheus-2.49.1.linux-amd64 && vi prometheus.yml
... global: scrape_interval: 15s # By default, scrape targets every 15 seconds. evaluation_interval: 15s # By default, scrape targets every 15 seconds. # scrape_timeout is set to the global default value (10s). external_labels: cluster: 'test-cluster' monitor: "prometheus" scrape_configs: - job_name: 'overwritten-nodes' honor_labels: true # Do not overwrite job & instance labels. static_configs: - targets: - '192.168.199.113:9100' - '192.168.199.114:9100' - '192.168.199.115:9100' - '192.168.199.116:9100' - '192.168.199.117:9100' - '192.168.199.118:9100' - job_name: 'tidb' honor_labels: true # Do not overwrite job & instance labels. static_configs: - targets: - '192.168.199.113:10080' - job_name: 'pd' honor_labels: true # Do not overwrite job & instance labels. static_configs: - targets: - '192.168.199.113:2379' - '192.168.199.114:2379' - '192.168.199.115:2379' - job_name: 'tikv' honor_labels: true # Do not overwrite job & instance labels. static_configs: - targets: - '192.168.199.116:20180' - '192.168.199.117:20180' - '192.168.199.118:20180' ...

TiDB、PD、TiKV などのコンポーネントのアラーム ルールを有効にするには、対応するコンポーネントのアラーム ルール ファイルを個別にダウンロードし、アラーム ルール ファイルの構成を Prometheus 構成ファイルに追加します。

rule_files: - 'tidb.rules.yml' - 'pd.rules.yml' - 'tikv.rules.yml' - 'tiflash.rules.yml' - 'ticdc.rules.yml' - 'lightning.rules.yml'

Prometheus サービスを開始します。

$ ./prometheus \ --config.file="./prometheus.yml" \ --web.listen-address=":9090" \ --web.external-url="http://192.168.199.113:9090/" \ --web.enable-admin-api \ --log.level="info" \ --storage.tsdb.path="./data.metrics" \ --storage.tsdb.retention="15d" &

ステップ 4: Node1 で Grafana を開始する

Grafana 構成ファイルを編集します。

cd grafana-7.5.17 && vi conf/grafana.ini ... [paths] data = ./data logs = ./data/log plugins = ./data/plugins [server] http_port = 3000 domain = 192.168.199.113 [database] [session] [analytics] check_for_updates = true [security] admin_user = admin admin_password = admin [snapshots] [users] [auth.anonymous] [auth.basic] [auth.ldap] [smtp] [emails] [log] mode = file [log.console] [log.file] level = info format = text [log.syslog] [event_publisher] [dashboards.json] enabled = false path = ./data/dashboards [metrics] [grafana_net] url = https://grafana.net ...

Grafana サービスを開始します。

./bin/grafana-server \ --config="./conf/grafana.ini" &

Grafanaの設定

このセクションでは、Grafana を構成する方法について説明します。

ステップ1: Prometheusデータソースを追加する

  1. Grafana Web インターフェースにログインします。

    注記:

    パスワードの変更手順では、 「スキップ」を選択できます。

  2. Grafana サイドバー メニューで、コンフィグレーション内のデータ ソースをクリックします。

  3. データ ソースの追加をクリックします。

  4. データ ソース情報を指定します。

    • データ ソースの名前を指定します。
    • タイプにはPrometheus を選択します。
    • URLには、Prometheus アドレスを指定します。
    • 必要に応じて他のフィールドを指定します。
  5. 新しいデータ ソースを保存するには、 [追加]をクリックします。

ステップ2: Grafanaダッシュボードをインポートする

PDサーバー、TiKVサーバー、および TiDBサーバーの Grafana ダッシュボードをインポートするには、それぞれ次の手順を実行します。

  1. Grafana ロゴをクリックしてサイドバー メニューを開きます。

  2. サイドバー メニューで、 [ダッシュボード] -> [インポート]をクリックして、 [ダッシュボードのインポート]ウィンドウを開きます。

  3. tikv/pd .json ファイルのアップロード」をクリックして JSON ファイルをアップロードします ( ピンキャップ/tidb 、およびティック/ティックから TiDB Grafana 構成ファイルをダウンロードします)。

    注記:

    TiKV、PD、および TiDB ダッシュボードの場合、対応する JSON ファイルはtikv_summary.jsontikv_details.jsontikv_trouble_shooting.jsonpd.jsontidb.json 、およびtidb_summary.jsonです。

  4. [ロード]をクリックします。

  5. Prometheus データ ソースを選択します。

  6. 「インポート」をクリックします。Prometheus ダッシュボードがインポートされます。

コンポーネントメトリックをビュー

上部のメニューで[新しいダッシュボード]をクリックし、表示するダッシュボードを選択します。

view dashboard

クラスター コンポーネントの次のメトリックを取得できます。

  • TiDBサーバー:

    • レイテンシーとスループットを監視するためのクエリ処理時間
    • DDLプロセス監視
    • TiKVクライアント関連の監視
    • PDクライアント関連の監視
  • PDサーバー:

    • コマンドが実行される合計回数
    • 特定のコマンドが失敗した合計回数
    • コマンドが成功するまでの期間
    • コマンドが失敗する期間
    • コマンドが終了して結果を返すまでの時間
  • TiKVサーバー:

    • ガベージコレクション (GC) の監視
    • TiKVコマンドが実行される合計回数
    • スケジューラがコマンドを実行する期間
    • Raftの提案コマンドの総回数
    • Raftがコマンドを実行する期間
    • Raftコマンドが失敗した合計回数
    • Raftが準備完了状態を処理する合計回数

このページは役に立ちましたか?