TiDBクラスターの監視サービスをデプロイ
このドキュメントは、TiDB監視およびアラートサービスを手動で展開するユーザーを対象としています。
TiUPを使用してTiDBクラスタをデプロイする場合、監視およびアラートサービスは自動的にデプロイされ、手動でデプロイする必要はありません。
PrometheusとGrafanaをデプロイ
TiDBクラスタトポロジが次のとおりであると想定します。
名前 | ホストIP | サービス |
---|---|---|
Node1 | 192.168.199.113 | PD1、TiDB、node_export、Prometheus、Grafana |
Node2 | 192.168.199.114 | PD2、node_export |
Node3 | 192.168.199.115 | PD3、node_export |
Node4 | 192.168.199.116 | TiKV1、node_export |
Node5 | 192.168.199.117 | TiKV2、node_export |
Node6 | 192.168.199.118 | TiKV3、node_export |
ステップ1:バイナリパッケージをダウンロードする
# Downloads the package.
wget https://download.pingcap.org/prometheus-2.27.1.linux-amd64.tar.gz
wget https://download.pingcap.org/node_exporter-0.17.0.linux-amd64.tar.gz
wget https://download.pingcap.org/grafana-6.1.6.linux-amd64.tar.gz
# Extracts the package.
tar -xzf prometheus-2.27.1.linux-amd64.tar.gz
tar -xzf node_exporter-0.17.0.linux-amd64.tar.gz
tar -xzf grafana-6.1.6.linux-amd64.tar.gz
ステップ2:Node1、Node2、Node3、およびNode4でnode_exporter
を開始します
cd node_exporter-0.17.0.linux-amd64
# Starts the node_exporter service.
$ ./node_exporter --web.listen-address=":9100" \
--log.level="info" &
ステップ3:Node1でPrometheusを起動する
Prometheus構成ファイルを編集します。
cd prometheus-2.27.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'
...
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-6.1.6 &&
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データソースを追加する
GrafanaWebインターフェースにログインします。
デフォルトアドレス: http:// localhost:3000
デフォルトのアカウント:admin
デフォルトのパスワード:admin
ノート:
[**パスワードの変更]**ステップでは、[スキップ]を選択できます。
Grafanaサイドバーメニューで、Configuration / コンフィグレーション内のデータソースをクリックします。
[**データソースの追加]を**クリックします。
データソース情報を指定します。
- データソースの名前を指定します。
- [**タイプ]**で、[プロメテウス]を選択します。
- URLには、Prometheusアドレスを指定します。
- 必要に応じて他のフィールドを指定します。
[**追加]**をクリックして、新しいデータソースを保存します。
ステップ2:Grafanaダッシュボードをインポートする
PDサーバー、TiKVサーバー、およびTiDBサーバーのGrafanaダッシュボードをインポートするには、それぞれ次の手順を実行します。
Grafanaロゴをクリックして、サイドバーメニューを開きます。
サイドバーメニューで、[ダッシュボード]-> [インポート]をクリックして、[ダッシュボードのインポート]ウィンドウを開きます。
[ **.jsonファイルのアップロード]**をクリックして、JSONファイルをアップロードしtikv / tikv ( pingcap / tidb 、およびtikv / pdからTiDB Grafana構成ファイルをダウンロードします)。
ノート:
tidb.json
、PD、およびtikv_trouble_shooting.json
ダッシュボードの場合、対応するtidb_summary.json
ファイルはtikv_summary.json
、およびpd.json
tikv_details.json
。[**ロード]**をクリックします。
Prometheusデータソースを選択します。
[**インポート]**をクリックします。 Prometheusダッシュボードがインポートされます。
コンポーネントメトリックを表示する
トップメニューの[新しいダッシュボード]をクリックして、表示するダッシュボードを選択します。
クラスタコンポーネントについて、次のメトリックを取得できます。
TiDBサーバー:
- レイテンシとスループットを監視するためのクエリ処理時間
- DDLプロセスの監視
- TiKVクライアント関連の監視
- PDクライアント関連の監視
PDサーバー:
- コマンドが実行される合計回数
- 特定のコマンドが失敗した合計回数
- コマンドが成功する期間
- コマンドが失敗する期間
- コマンドが終了して結果を返す期間
TiKVサーバー:
- ガベージコレクション(GC)の監視
- TiKVコマンドが実行される合計回数
- スケジューラがコマンドを実行する期間
- ラフト提案コマンドの合計回数
- Raftがコマンドを実行する期間
- Raftコマンドが失敗した合計回数
- Raftが準備完了状態を処理する合計回数