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

Elasticsearch:aliyun-timestream と Prometheus および Grafana の統合

最終更新日:Aug 20, 2026

aliyun-timestream は、Alibaba Cloud Elasticsearch チームが開発し、Elastic コミュニティと共同で構築した時系列エンジンで、コミュニティの時系列製品の機能を取り入れています。Alibaba Cloud Elasticsearch は、Prometheus および Grafana とのシームレスな統合を提供し、Prometheus クエリ言語 (PromQL) API をサポートし、時系列インデックスを Grafana の Prometheus データソースとして直接使用できます。このセットアップにより、時系列メトリクスデータの保存とクエリのパフォーマンスが向上し、コストが削減されます。本ガイドでは、aliyun-timestream エンジンを使用して Prometheus および Grafana と統合し、クラウドネイティブのオブザーバビリティを実現する方法について説明します。

背景情報

Prometheus のローカルストレージには、次の制限があります。

  • データレプリカがない:ローカルクラスターノードに障害が発生すると、Prometheus にアクセスできなくなります。

  • 単一ノードストレージ:データ量が増加すると、ハードウェアのボトルネックが発生し、スケールアウトできない可能性があります。

  • バックアップ機能がない:ハードディスクが破損すると、データが失われる可能性があります。

  • ローカルディスクストレージのコストが高い:ホット/コールドデータ分離のサポートがありません。

高可用性の Prometheus セットアップには、分散型で高可用性のリモートストレージソリューションが必要です。Alibaba Cloud Elasticsearch の aliyun-timestream エンジンは、Prometheus にリモートストレージとクエリ機能を提供します。Elasticsearch の分散型、弾力性、高可用性アーキテクチャに基づいて構築され、バックアップとホット/コールドデータ分離もサポートする aliyun-timestream は、Prometheus のリモートストレージとして優れた選択肢です。

次の図は、Alibaba Cloud Elasticsearch が Prometheus および Grafana と統合する方法を示しています。ES+Prometheus+Grafana架构

動作の仕組みは次のとおりです。

  1. Prometheus は、さまざまなエクスポーターからデータを収集します。

  2. Prometheus は、リモートライト機能を使用して、収集したデータを Alibaba Cloud Elasticsearch に送信します。

  3. Kibana または Grafana のいずれかでデータを表示できます。

    説明

    Grafana を使用して Alibaba Cloud Elasticsearch のデータにアクセスする場合、ネイティブの Elasticsearch データソースまたは Prometheus データソースのいずれかを使用できます。Prometheus データソースを使用すると、PromQL を使用して Elasticsearch のデータを直接クエリできます。

前提条件

次のバージョン要件を満たす Elasticsearch クラスターが作成されていること。クラスターのバージョンが V7.10 で、クラスターのカーネルバージョンが V1.8.0 以降であること、またはクラスターのバージョンが V7.16 以降で、クラスターのカーネルバージョンが V1.7.0 以降であること。Elasticsearch クラスターの作成方法については、「Alibaba Cloud Elasticsearch クラスターの作成」をご参照ください。

操作手順

  1. ステップ 1: 環境を準備する

  2. ステップ 2: node_exporter をダウンロードして起動する

  3. ステップ 3: Prometheus をダウンロード、設定、起動する

  4. ステップ 4: Grafana をダウンロード、起動し、ダッシュボードを設定する

ステップ 1: 環境を準備する

  1. バージョン 7.16 の General-purpose Commercial Edition Alibaba Cloud Elasticsearch クラスターを作成します。

    詳細については、「Alibaba Cloud Elasticsearch クラスターの作成」をご参照ください。

  2. ステップ 1 で作成した Elasticsearch インスタンスと同じ VPC に Elastic Compute Service (ECS) インスタンスを作成し、オペレーティングシステムとして Linux を選択します。

    ECS インスタンスの作成の詳細については、「カスタム起動を使用したインスタンスの作成」をご参照ください。この ECS インスタンスは、Alibaba Cloud Elasticsearch クラスターへのアクセスと、Prometheus および Grafana のデプロイに使用されます。

  3. Elasticsearch に時系列インデックスを作成して、Prometheus からのデータを保存します。

    1. Alibaba Cloud Elasticsearch クラスターの Kibana コンソールにログインします。

      詳細については、「Kibana コンソールへのログイン」をご参照ください。

    2. 左側のナビゲーションペインで、展开图标 アイコンをクリックし、[管理] > [開発者ツール] を選択します。

    3. コンソールで、PUT _time_stream/prom_index コマンドを実行して、prom_index という名前の時系列インデックスを作成します。

ステップ 2: node_exporter をダウンロードして起動する

node_exporter は、さまざまなハードウェアおよびカーネル関連のメトリクスを収集し、Prometheus がスクレイプできるように公開します。詳細については、「node_exporter」をご参照ください。

  1. ECS インスタンスに接続します。

    詳細については、「パスワードまたはキーを使用した Linux インスタンスへのログイン」をご参照ください。

    説明

    本トピックでは、すべての操作に非 root ユーザーを使用します。

  2. node_exporter インストールパッケージをダウンロードします。

    本ガイドでは、node_exporter 1.3.1 を例として使用します。次のコマンドを実行してダウンロードします。

    wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
  3. インストールパッケージを解凍し、node_exporter を起動します。

    tar xvfz node_exporter-1.3.1.linux-amd64.tar.gz
    cd node_exporter-1.3.1.linux-amd64
    ./node_exporter

ステップ 3: Prometheus をダウンロード、設定、起動する

  1. ECS インスタンスに接続します。

    詳細については、「パスワードまたはキーを使用した Linux インスタンスへのログイン」をご参照ください。

  2. ホームディレクトリで、Prometheus インストールパッケージをダウンロードします。

    本ガイドでは、Prometheus 2.36.2 を例として使用します。次のコマンドを実行してダウンロードします。

    cd ~
    wget https://github.com/prometheus/prometheus/releases/download/v2.36.2/prometheus-2.36.2.linux-amd64.tar.gz
  3. Prometheus インストールパッケージを解凍します。

    tar xvfz prometheus-2.36.2.linux-amd64.tar.gz
  4. prometheus.yml ファイルで、node_exporter と remote_write を設定します。

    cd prometheus-2.36.2.linux-amd64
    vim prometheus.yml

    次のコードは、設定例を示しています。

    scrape_configs:
      # ジョブ名は、この設定からスクレイプされたすべての時系列にラベル `job=` として追加されます。
      - job_name: 'prometheus'
    
        # metrics_path のデフォルトは '/metrics' です
        # scheme のデフォルトは 'http' です。
    
        static_configs:
        - targets: ['localhost:9090']
    
      # node_exporter を設定します。
      - job_name: "node"
        static_configs:
        - targets: ["127.0.0.1:9100"]
    
    # remote_write を設定します。Prometheus が Elasticsearch クラスターにアクセスできることを確認してください。
    remote_write:
      - url: "http://xxx:9200/_time_stream/prom_write/prom_index"
        basic_auth:
         username: elastic
         password: xxxx

    パラメーター

    説明

    node_exporter

    node_exporter の接続情報を設定します。targets を node_exporter のアクセスアドレスとポートに設定します。

    本ガイドでは、同じ ECS インスタンスを使用して Prometheus と node_exporter をデプロイするため、IP アドレスは 127.0.0.1 で、デフォルトポート 9100 を使用します。

    remote_write

    Alibaba Cloud Elasticsearch クラスターの時系列インデックスの接続設定です。次の基本パラメーターを設定する必要があります。より高度なパラメーターについては、「remote_write」をご参照ください。

    • url: 時系列インデックスのエンドポイント URL。次の形式で指定します: http://<Elasticsearch クラスターのパブリックまたは内部エンドポイント>:9200/_time_stream/prom_write/<時系列インデックス名>。

      説明
      • Elasticsearch クラスターのパブリックまたは内部エンドポイント: Alibaba Cloud Elasticsearch クラスターコンソールの 基本情報 ページで確認できます。Prometheus がデプロイされている ECS インスタンスが Elasticsearch クラスターと同じ VPC にある場合は、この例のように内部エンドポイントを使用します。それ以外の場合は、パブリックエンドポイントを使用し、パブリック IP アドレスのホワイトリストを設定する必要があります。詳細については、「IP アドレスホワイトリストの管理」をご参照ください。

      • <時系列インデックス名>: Prometheus からデータを受信する時系列インデックスの名前です。事前にこのインデックスを作成する必要があります。本ガイドでは、prom_index を例として使用します。

    • username: 時系列インデックスにアクセスするためのユーザー名です。デフォルトは elastic です。カスタムユーザーを使用することもできますが、そのユーザーが時系列インデックスへのアクセスと管理に必要な権限を持っていることを確認してください。詳細については、「Elasticsearch X-Pack ロールによるアクセス制御の管理」をご参照ください。

    • password: 指定したユーザーのパスワードです。elastic アカウントのパスワードは、クラスターの作成時に設定されます。忘れた場合は、リセットできます。詳細については、「Elasticsearch クラスターパスワードのリセット」をご参照ください。

  5. Prometheus を起動します。

    ./prometheus
  6. Prometheus データが Elasticsearch の時系列インデックスに送信されていることを確認します。

    Alibaba Cloud Elasticsearch クラスターの Kibana コンソールで、次のコマンドを実行して確認します。

    • prom_index インデックスにデータが含まれているかどうかを確認します。

      GET _cat/indices/prom_index?v&s=i

      想定される結果:

      health status index                              uuid                pri rep docs.count docs.deleted store.size pri.store.size
      green  open   .ds-prom_index-2022.06.29-000001 U-y2z4j4RyWlKmxxx   1   1        178            0      5.6kb          226b
    • データをクエリして表示できることを確認します。

      GET prom_index/_search

      想定される結果:

      {
        "took" : 354,
        "timed_out" : false,
        "_shards" : {
          "total" : 1,
          "successful" : 1,
          "skipped" : 0,
          "failed" : 0
        },
        "hits" : {
          "total" : {
            "value" : 3036,
            "relation" : "eq"
          },
          "max_score" : 1.0,
          "hits" : [
            {
              "_index" : ".ds-prom_index-2022.06.29-000001",
              "_type" : "_doc",
              "_id" : "kBXXroEBMnT0XiRApR78",
              "_score" : 1.0,
              "_source" : {
                "labels" : {
                  "instance" : "localhost:9090",
                  "job" : "prometheus"
                },
                "metrics" : {
                  "prometheus_remote_storage_exemplars_in_total" : 0.0,
                  "prometheus_target_scrape_pools_failed_total" : 0.0,
                  "prometheus_tsdb_data_replay_duration_seconds" : 6.66077E-4,
                  "prometheus_tsdb_wal_completed_pages_total" : 1.0,
                  "prometheus_tsdb_lowest_timestamp" : 1.656495558477E12,
                  "prometheus_tsdb_head_gc_duration_seconds_count" : 0.0,
                  "prometheus_tsdb_out_of_bound_samples_total" : 0.0,
                  "prometheus_tsdb_isolation_high_watermark" : 30.0,
                  "prometheus_tsdb_storage_blocks_bytes" : 0.0,
                  "up" : 1.0,
                  "go_gc_duration_seconds_sum" : 9.66942E-4,
                  "process_cpu_seconds_total" : 2.96,
                  "prometheus_tsdb_wal_writes_failed_total" : 0.0,
                  "prometheus_tsdb_head_max_time_seconds" : 1.656495768E9,
                  "prometheus_tsdb_head_chunks_created_total" : 455.0,
                  "prometheus_sd_kuma_fetch_duration_seconds_sum" : 0.0
                }
              }
            }
          ]
        }
      }

ステップ 4: Grafana をダウンロード、起動、設定する

  1. ECS インスタンスに接続します。

    詳細については、「パスワードまたはキーを使用した Linux インスタンスへのログイン」をご参照ください。

  2. ホームディレクトリで、Grafana インストールパッケージをダウンロードします。

    本ガイドでは、Grafana 9.0.2 を例として使用します。次のコマンドを実行してダウンロードします。

    cd ~
    wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.0.2.linux-amd64.tar.gz
  3. Grafana インストールパッケージを解凍し、Grafana を起動します。

    tar xvfz grafana-enterprise-9.0.2.linux-amd64.tar.gz
    cd grafana-9.0.2
    ./bin/grafana-server
  4. Web ブラウザで、http://<ECS のパブリック IP>:3000 にアクセスして、Grafana ログインページを開きます。ユーザー名とパスワードを入力して、Grafana コンソールにアクセスします。

    • 初回ログイン時は、ユーザー名とパスワードの両方に admin を使用します。パスワードの変更を求められます。

    • ECS インスタンスのパブリック IP アドレスを確認するには、ECS コンソールに移動し、対象インスタンスの Ip アドレス 列でアドレスを確認します。

    • Grafana のデフォルトポートは 3000 です。このポートにアクセスするには、ECS インスタンスのセキュリティグループにインバウンドルールを追加します。送信先 ポートを 3000 に、ソース をクライアントの IP アドレスに設定します。詳細については、「セキュリティグループルールを追加する」をご参照ください。

  5. Grafana に Prometheus データソースを追加します。

    1. Grafana コンソールの左側のナビゲーションバーで、Settings icon > [データソース]を選択します。

    2. [データソース] タブで、[データソースの追加] をクリックします。

    3. [時系列データベース] リストで、Prometheus をクリックします。

    4. 設定 タブで、Prometheus データソースを設定します。

      次の表は、この例で設定する必要があるパラメーターについて説明しています。

      パラメーター

      説明

      URL

      時系列インデックスのエンドポイント URL。次の形式で指定します: http://<Elasticsearch クラスターのパブリックまたは内部エンドポイント>:9200/_time_stream/prom/<時系列インデックス名>。

      説明
      • Elasticsearch クラスターのパブリックまたは内部エンドポイント: Alibaba Cloud Elasticsearch クラスターコンソールの 基本情報 ページで確認できます。Prometheus がデプロイされている ECS インスタンスが Elasticsearch クラスターと同じ VPC にある場合は、この例のように内部エンドポイントを使用します。それ以外の場合は、パブリックエンドポイントを使用し、パブリック IP アドレスのホワイトリストを設定する必要があります。詳細については、「IP アドレスホワイトリストの管理」をご参照ください。

      • <時系列インデックス名>: Prometheus からデータを受信する時系列インデックスの名前です。事前にこのインデックスを作成する必要があります。本ガイドでは、prom_index を例として使用します。

      [基本認証]

      クラスターの基本認証の有効化/無効化を切り替えます。有効にすると、ユーザー名とパスワードを入力する必要があります。

      [ユーザー]

      時系列インデックスにアクセスするためのユーザー名です。デフォルトは elastic です。カスタムユーザーを使用することもできますが、そのユーザーが時系列インデックスへのアクセスと管理に必要な権限を持っていることを確認してください。詳細については、「Elasticsearch X-Pack ロールによるアクセス制御の管理」をご参照ください。

      パスワード

      指定したユーザーのパスワードです。elastic アカウントのパスワードは、クラスターの作成時に設定されます。忘れた場合は、リセットできます。詳細については、「Elasticsearch クラスターパスワードのリセット」をご参照ください。

    5. [保存してテスト] をクリックします。

      設定に成功すると、[データソースは正常です] というメッセージが表示されます。

  6. Grafana で、Prometheus データソース用のダッシュボードを作成します。

    1. Grafana コンソールの左側のナビゲーションバーで、Dashboard > [新規ダッシュボード] を選択します。

    2. [新規パネルを追加] をクリックします。

    3. [データソース] を選択し、時間範囲を選択して、[クエリを実行] をクリックします。

      たとえば、[データソース] を [test_datastream] に、[メトリック] を go_gc_duration_seconds に、時間範囲を [過去 2 日間] に設定します。

    4. 右上隅の保存をクリックして、ダッシュボードを保存します。

  7. Grafana で、デフォルトの node_exporter ダッシュボードをインポートし、Prometheus データソースに接続してメトリクスを監視します。

    1. Grafana コンソールの左側のナビゲーションバーで、Dashboard > [インポート] を選択します。

    2. [grafana.com 経由でインポート] テキストボックスに、ダッシュボード URL https://grafana.com/grafana/dashboards/1860 または ID 1860 を入力します。

    3. Load をクリックします。

    4. 設定ページで、Prometheus データソースドロップダウンリストから、作成したデータソースを選択します。

    5. [インポート] をクリックします。

    6. ダッシュボードで、右上隅の時間範囲を選択して、その期間のメトリクスを表示します。

      指标监控Dashboard

      説明

      Grafana の詳細については、「Grafana ドキュメント」をご参照ください。

関連ドキュメント