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

Managed Service for Prometheus:セルフマネージドのオープンソース Prometheus から Managed Service for Prometheus に既存データを移行する

最終更新日:Oct 23, 2025

このトピックでは、セルフマネージドのオープンソース 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 管理コンソールにログインします。

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

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

    重要

    まず、ローカルデータの量を評価し、Prometheus インスタンスの Simple Log Service MetricStore シャードをスケールアウトします。

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

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

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

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

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

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

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

    • 認証には、AliyunPrometheusMetricWriteAccess ロールを RAM ユーザーに割り当てて書き込み権限を付与します。次に、AccessKey ペアを生成してユーザー名とパスワードとして使用できます。または、インスタンス設定ページに移動して、0.0.0.0 からのパスワードなしの書き込みアクセスを有効にすることもできます。56

ステップ 2: promtool migrate を使用して移行を実行する

説明

promtool migrate は、Managed Service for Prometheus が提供する公式ツールです。このツールは、ローカルの TSDB データを Managed Service for Prometheus に移行するために使用されます。

  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=<Alibaba Cloud Remote Write URL> \       # 例: https://xxx.region.aliyuncs.com/api/v1/write
      --rw_username=<Access Key ID> \            # Alibaba Cloud インスタンスの AccessKey ID
      --rw_password=<Access Key Secret> \        # Alibaba Cloud インスタンスの 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

    Alibaba Cloud インスタンスの AccessKey ID。パスワードなしのアクセスが有効になっていない場合、このパラメーターは必須です。

    LTAI5tXXXXXXX

    --rw_password

    Alibaba Cloud インスタンスの 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. 左側のナビゲーションウィンドウで、[メトリック管理] をクリックします。[メトリックエクスプローラー] タブで、Prometheus クエリ言語 (PromQL) クエリを実行します。

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

    2. データ整合性を比較します。

      主要なメトリック (例: upnode_cpu_seconds_total) を選択し、移行前後のデータを比較して一貫性を検証します。

注意事項

  • データフィルタリング

    特定の期間または特定のメトリックのデータを移行するには、--min_time--max_time、および --match パラメーターを使用して移行を正確に制御し、冗長なデータ転送を回避します。

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

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

    • バッチでの移行: データ量が大きい場合は、週単位や月単位などの期間に基づいてバッチで移行を実行します。

  • セキュリティ

    コマンドラインで --rw_password を直接公開することは避けてください。環境変数または構成ファイルを使用して機密情報を渡します。

  • ネットワークと安定性

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

よくある質問

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

  • --rw_username および --rw_password パラメーターが Managed Service for Prometheus インスタンスの AccessKey ペアと一致することを確認してください。

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

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

  • --rw_batch_size の値を増やします (例: --rw_batch_size=1000)。

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

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

  • Managed Service for Prometheus インスタンスがデータを同期するまで数分待ちます。

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

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

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

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