すべてのプロダクト
Search
ドキュメントセンター

Managed Service for Prometheus:セルフマネージド Prometheus から Managed Service for Prometheus への履歴データの移行

最終更新日:Jun 21, 2026

このトピックでは、セルフマネージド Prometheus から Managed Service for Prometheus に履歴データを移行する方法について説明します。

前提条件

  • データソース:セルフマネージド Prometheus インスタンスは、デフォルトのストレージエンジンである TSDB を使用している必要があります。

  • Managed Service for Prometheus インスタンス:移行先の Managed Service for Prometheus インスタンスが実行中であることを確認してください。

  • ネットワーク接続:セルフマネージド Prometheus サーバーが、Managed Service for Prometheus インスタンスの Remote Write エンドポイントにアクセスできる必要があります。

  • ツールの依存関係Alibaba Cloud が提供する promtool をインストールする必要があります

移行手順

ステップ 1:Managed Service for Prometheus インスタンスの取得

  1. Alibaba Cloud Management Console にログインします。

    Cloud Monitor コンソールまたはManaged Service for Prometheus コンソールにログインし、既存の Prometheus インスタンスを選択するか、新しいインスタンスを作成します。

    インスタンスを作成する際は、セルフマネージド Prometheus の履歴保持期間よりも長い保持期間を選択してください。

    重要

    ローカルデータ量を評価し、それに応じて Prometheus インスタンスの Log Service MetricStore シャードをスケールアウトしてください。

    • データ量 > 1 GB:4 シャードにスケールアウトします。

    • データ量 > 10 GB:16 シャードにスケールアウトします。

    • データ量 > 100 GB:64 シャードにスケールアウトします。

    • データ量 < 1 TB:256 シャードにスケールアウトします。

    大量のデータがある場合は、チケットを送信してサポートを依頼してください。

  2. インスタンスの書き込みエンドポイントを取得します。

    • 移行先インスタンスの名前をクリックして 設定 ページを開き、パブリック Remote Write URL を取得します。セルフマネージドサービスが Alibaba Cloud 上で実行されている場合は、内部 URL も取得できます。

    • 認証については、RAM ユーザーに AliyunPrometheusMetricWriteAccess ロールを割り当て、認証情報として使用する AccessKey ペア (AK/SK) を生成できます。または、インスタンス設定ページで、0.0.0.0 に対してパスワードなしの書き込みアクセスを有効にすることもできます。ページ下部の [Access Address] セクションで、[Network] 列からパブリックネットワークまたは内部ネットワークの Remote Write URL をコピーします。

ステップ 2:promtool migrate を使用した移行

説明

promtool migrate は、Managed Service for Prometheus が提供する、ローカルの TSDB データをサービスに移行するための公式ツールです。

  1. 移行の準備をします。

    • データバックアップ:移行前に、セルフマネージド Prometheus の data/ ディレクトリ (TSDB ストレージパス) をバックアップします。

    • promtool をインストールします。

      curl -fsSL "https://o11y-addon-hangzhou-public.oss-cn-hangzhou.aliyuncs.com/share/promtool/install.sh" | bash
    • promtool コマンドのヘルプ情報を表示します。

      # サポートされているすべてのツールコマンドを表示します。
      promtool --help
      # データ移行パラメーターを表示します。
      promtool migrate --help
  2. 移行コマンドを実行します。

    promtool migrate \
      --db_dir=/path/to/local/prometheus/data \  # セルフマネージド Prometheus の TSDB データディレクトリ。
      --output=rw    # Remote Write を使用してデータを書き込みます。
      --rw_url=<Remote_Write_URL> \       # 例: https://xxx.region.aliyuncs.com/api/v1/write
      --rw_username=<AccessKey_ID> \            # Managed Service for Prometheus インスタンスの AccessKey ID。
      --rw_password=<AccessKey_Secret> \        # Managed Service for Prometheus インスタンスの AccessKey Secret。
      --min_time=START_TIMESTAMP \               # オプション: 移行の開始時刻 (UNIX タイムスタンプ、ミリ秒単位)。
      --max_time=END_TIMESTAMP \                 # オプション: 移行の終了時刻 (UNIX タイムスタンプ、ミリ秒単位)。

    パラメーター

    説明

    --db_dir

    セルフマネージド Prometheus の TSDB データディレクトリへのパス。このパラメーターは必須です。

    /opt/prometheus/data

    --rw_url

    Managed Service for Prometheus インスタンスの Remote Write エンドポイント。このパラメーターは必須です。

    https://xxx.region.aliyuncs.com/api/v1/write

    --output

    データ出力方法。

    有効な値:rw または stdout

    --rw_username

    Managed Service for Prometheus インスタンスの AccessKey ID。パスワードなしの書き込みアクセスが有効になっていない場合、このパラメーターは必須です。

    LTAI5tXXXXXXX

    --rw_password

    Managed Service for Prometheus インスタンスの AccessKey Secret。パスワードなしの書き込みアクセスが有効になっていない場合、このパラメーターは必須です。

    Co4XXXXXXXXX

    --min_time

    データ移行の開始時刻 (UNIX タイムスタンプ、ミリ秒単位)。デフォルトは 0 で、最も古いデータから移行を開始します。

    1609433200000

    --max_time

    データ移行の終了時刻 (UNIX タイムスタンプ、ミリ秒単位)。デフォルトは、ツールの実行が開始された時刻です。

    1640972400000

    --match

    移行するメトリクスをフィルタリングします。正規表現がサポートされています。

    '__name__=~"http_*"'

    --rw_batch_size

    各バッチで送信されるサンプル数。パフォーマンスを最適化するために、このパラメーターを調整できます。

    1000

  3. 移行結果を検証します。

    1. Managed Service for Prometheus インスタンスを確認します。

      1. Cloud Monitor コンソールまたはManaged Service for Prometheus コンソールにログインします。インスタンスリスト ページで、移行先インスタンスの名前をクリックします。

      2. 左側メニューで メトリック管理 をクリックします。メトリックの探索 タブで、PromQL クエリを実行します。

      3. 履歴データの時間範囲が、セルフマネージド Prometheus の時間範囲と一致することを確認します。

    2. データ整合性を検証します。

      upnode_cpu_seconds_total などの主要なメトリクスを選択し、移行前後でデータ量が一致していることを確認します。

注意事項

  • データフィルタリング

    特定の時間範囲または特定のメトリクスのデータを移行する場合は、--min_time--max_time--match パラメーターを使用して移行を正確に制御し、冗長なデータ転送を回避してください。

  • パフォーマンスの最適化

    • --rw_batch_size を調整してください。値を大きくすると移行速度が向上しますが、ネットワーク帯域幅と Alibaba Cloud インスタンスの負荷に基づいて値を調整する必要があります。推奨範囲は 500 から 2000 です。

    • バッチで移行する:大量のデータがある場合は、週単位や月単位など、時間帯ごとにバッチで移行してください。

  • セキュリティ

    コマンドラインで --rw_password を直接公開しないでください。代わりに、環境変数または設定ファイルを使用して機密情報を渡してください。

  • ネットワークと安定性

    移行中はネットワークが安定していることを確認してください。移行が失敗した場合は、--min_time パラメーターを使用して、中断した箇所から再開できます。

よくある質問

Q1:移行中に認証失敗が発生した場合はどうすればよいですか?

  • 指定した --rw_username が AccessKey ID、--rw_password が AccessKey Secret と一致していることを確認してください。

  • Remote Write URL が正しいこと、および Managed Service for Prometheus インスタンスで Remote Write エンドポイントが有効になっていることを確認してください。

Q2:移行が遅すぎる場合はどうすればよいですか?

  • --rw_batch_size の値を増やしてください (例: --rw_batch_size=1000)。

  • セルフマネージド Prometheus サーバーと Managed Service for Prometheus インスタンスの間に十分なネットワーク帯域幅があることを確認してください。

Q3:移行後にデータが表示されない場合はどうすればよいですか?

  • Managed Service for Prometheus インスタンスが移行されたデータを処理してインデックスを作成するまで、数分待ってください。

  • Prometheus インスタンスの 保持期間 が十分であるかどうかを確認してください。

タイムスタンプ変換ツール

次のコマンドを使用して、日付を UNIX タイムスタンプ (ミリ秒単位) に変換できます。

date -d "2020-01-01 00:00:00" +%s%3N
# 出力例: 1577836800000 (2020-01-01 00:00:00 UTC に対応)