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

Elasticsearch:SkyWalking と Elasticsearch を使用したエンドツーエンドモニタリングの実装

最終更新日:Aug 21, 2026

SkyWalking は、分散アプリケーションパフォーマンスモニタリング (APM) およびトレースシステムです。このトピックでは、SkyWalking を設定して、Alibaba Cloud Elasticsearch V7.4.0 クラスターをストレージバックエンドとして使用し、ご利用の分散アプリケーションのエンドツーエンドの可観測性を実現する方法について説明します。

仕組み

SkyWalking は、ご利用のアプリケーションで実行されているエージェントからテレメトリデータを収集し、そのデータを SkyWalking OAP (Observability Analysis Platform) サーバーに転送します。OAP はデータを分析・集約し、Elasticsearch に保存します。SkyWalking UI は Elasticsearch からデータを読み取り、ダッシュボードとトレースをレンダリングします。

SkyWalking は、2 つのインストルメンテーションモードをサポートしています:

  • 自動インスツルメントエージェント: アプリケーションコードを変更することなく、アプリケーションを自動的にインスツルメントします。幅広いフレームワークやライブラリに標準で対応しています。

  • 手動計装エージェント: OpenTracing SDK を使用して、非公開コンポーネントやカスタムコンポーネントなど、自動計装エージェントでカバーされないコンポーネントを計装します。自動計装と手動計装は併用できます。

SkyWalking は、さまざまな言語向けの SkyWalking エージェント、Zipkin v1、Zipkin v2、Istio テレメトリ、Envoy など、複数のソースからのデータを受け入れます。

このトピックでは、Alibaba Cloud Elasticsearch V7.4.0 を SkyWalking のストレージバックエンドとして使用する方法について説明します。Java アプリケーションのデータを SkyWalking にレポートする方法については、「SkyWalking を使用した Java アプリケーションデータのレポート」をご参照ください。SkyWalking がサポートするミドルウェアとコンポーネントの完全なリストについては、「Apache SkyWalking ドキュメント」をご参照ください。

前提条件

開始する前に、次のものが揃っていることを確認してください:

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

  • JDK 1.8.0 以降がインストールされた Linux サーバー。Elastic Compute Service (ECS) インスタンスを推奨します。詳細については、「ECS インスタンスの作成」および「JDK のインストール」をご参照ください。

  • Linux サーバー上のポート 8080、10800、11800、12800 が利用可能であること。

  • Linux サーバー上でファイアウォールと Security-Enhanced Linux (SELinux) が無効になっていること。

JDK が正しくインストールされていない場合、サービスの起動時に SkyWalking のログに Java not found または java-xxx: No such file or directory がレポートされます。

ステップ 1: SkyWalking のダウンロードとインストール

  1. Elasticsearch 7 用の SkyWalking パッケージをご利用の Linux サーバーにダウンロードします。このトピックでは Elasticsearch V7.4.0 クラスターを使用するため、SkyWalking ダウンロードページ から Binary Distribution for Elasticsearch 7 を選択します。次のコマンドを実行してパッケージをダウンロードします:

    wget https://archive.apache.org/dist/skywalking/7.0.0/apache-skywalking-apm-es7-7.0.0.tar.gz
  2. パッケージを解凍します:

    tar -zxvf apache-skywalking-apm-es7-7.0.0.tar.gz
  3. 解凍されたファイルを確認します:

    ls apache-skywalking-apm-bin-es7/

    期待される出力:

    agent
    bin
    config
    LICENSE
    licenses
    NOTICE
    oap-libs
    README.txt
    tools
    webapp

ステップ 2: Elasticsearch クラスターに接続するための SkyWalking の設定

SkyWalking はデフォルトのストレージバックエンドとして H2 を使用しますが、H2 は永続データストレージをサポートしていません。application.yml を編集して、ストレージバックエンドを Elasticsearch に変更します。

  1. config フォルダ内の application.yml を開きます:

    cd apache-skywalking-apm-bin-es7/config/
    vi application.yml
  2. storage セクションを見つけます。セレクターを H2 から elasticsearch7 に変更し、接続パラメーターを設定します:

    storage:
      selector: ${SW_STORAGE:elasticsearch7}
      elasticsearch7:
        nameSpace: ${SW_NAMESPACE:"skywalking-index"}
        clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:es-cn-4591kzdzk000i****.public.elasticsearch.aliyuncs.com:9200}
        protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
       # trustStorePath: ${SW_SW_STORAGE_ES_SSL_JKS_PATH:"../es_keystore.jks"}
       # trustStorePass: ${SW_SW_STORAGE_ES_SSL_JKS_PASS:""}
        enablePackedDownsampling: ${SW_STORAGE_ENABLE_PACKED_DOWNSAMPLING:true} # Hour and Day metrics will be merged into minute index.
        dayStep: ${SW_STORAGE_DAY_STEP:1} # Represent the number of days in the one minute/hour/day index.
        user: ${SW_ES_USER:"elastic"}
        password: ${SW_ES_PASSWORD:"es_password"}
    重要

    trustStorePath と trustStorePass はコメントアウトしたままにしてください。有効なキーストアファイルなしでこれらのコメントを解除すると、NoSuchFileException: ../es_keystore.jks エラーが発生します。

    主なパラメーターは次のとおりです:

    パラメーター 説明
    selector ストレージバックエンドセレクター。elasticsearch7 に設定します。
    nameSpace Elasticsearch クラスターで作成されるすべてのインデックス名に適用されるプレフィックス。
    clusterNodes ご利用の Elasticsearch クラスターのパブリックエンドポイント。SkyWalking と Elasticsearch クラスターは異なる VPC にあるため、パブリックエンドポイントを使用します。エンドポイントを確認する方法については、「クラスターの基本情報の表示」をご参照ください。
    user Elasticsearch クラスターのユーザー名。デフォルト: elastic。
    password クラスター作成時に設定した elastic ユーザーのパスワード。パスワードをリセットする方法については、「Elasticsearch クラスターのアクセスパスワードのリセット」をご参照ください。
  3. (任意) core の application.yml セクションで、リスニング IP アドレスまたはポート番号を変更します。デフォルトは、RESTful API 用のポート 12800 と gRPC 用のポート 11800 です。このトピックではデフォルト値を使用します。

    core:
      selector: ${SW_CORE:default}
      default:
        # Mixed: Receive agent data, Level 1 aggregate, Level 2 aggregate
        # Receiver: Receive agent data, Level 1 aggregate
        # Aggregator: Level 2 aggregate
        role: ${SW_CORE_ROLE:Mixed} # Mixed/Receiver/Aggregator
        restHost: ${SW_CORE_REST_HOST:0.0.0.0}
        restPort: ${SW_CORE_REST_PORT:12800}
        restContextPath: ${SW_CORE_REST_CONTEXT_PATH:/}
        gRPCHost: ${SW_CORE_GRPC_HOST:0.0.0.0}
        gRPCPort: ${SW_CORE_GRPC_PORT:11800}
  4. (任意) webapp/webapp.yml を変更して、UI ポートまたはバックエンドエンドポイントを変更します。このトピックではデフォルト値を使用します。

    server:
      port: 8080
    collector:
      path: /graphql
      ribbon:
        ReadTimeout: 10000
        # Point to all backend's restHost:restPort, split by ,
        listOfServers: 127.0.0.1:12800

ステップ 3: SkyWalking の起動と結果の確認

  1. SkyWalking を起動する前に、Elasticsearch クラスターが実行中であることを確認します。

  2. bin ディレクトリから起動スクリプトを実行します:

    cd ../bin
    ./startup.sh

    起動に成功すると、次のように表示されます:

    SkyWalking OAP started successfully!
    SkyWalking Web Application started successfully!

    startup.sh を実行すると、SkyWalking OAP と SkyWalking UI の両方が起動します。

  3. ブラウザで http://<Linux サーバーの IP アドレス>:8080/ を開き、SkyWalking UI にアクセスします。

    SkyWalking が初めて Elasticsearch に接続する際、SkyWalking はクラスター内に多数のインデックスを作成するため、起動が通常より遅くなります。インデックスの作成が完了するまで、UI ページが空白で表示されることがあります。進捗状況を確認するには、<SkyWalking のインストールパス>/logs/skywalking-oap-server.log でログを表示します。

    アクセスに成功すると、SkyWalking Rocketbot モニタリングダッシュボードが表示されます。ダッシュボードには、Dashboard、Topology、Trace などのナビゲーションメニューが含まれています。グローバルビューでは、モニタリングパネル (ヒートマップ、レスポンスタイムパーセンタイル、グローバル概要など) にデータが表示されないのは正常です。これは、サービスは起動したものの、まだアプリケーションエージェントのデータが接続されていないことを示しています。

  4. SkyWalking が Elasticsearch にインデックスを作成したことを確認します。ご利用のクラスターの Kibana コンソールにログインし (詳細については、「Kibana コンソールへのログイン」をご参照ください)、次のコマンドを実行します:

    GET _cat/indices?v

    結果には、名前が skywalking-index で始まる多数のインデックスがリストされます。

    コマンドを実行すると、次のようなインデックスデータが返され、SkyWalking が Elasticsearch にデータを正常に書き込んだことを示します。

    green  open   skywalking-index_all_percentile-20200408
    green  open   skywalking-index_endpoint_inventory
    green  open   skywalking-index_service_apdex-20200408
    green  open   skywalking-index_database_access_resp_time_month-202004
    green  open   skywalking-index_service_relation_client_cpm-20200408
    green  open   skywalking-index_database_access_sla_month-202004
    green  open   skywalking-index_service_relation_server_call_sla-20200408
    green  open   skywalking-index_endpoint_sla-20200408
    green  open   skywalking-index_instance_jvm_memory_noheap-20200408
    green  open   skywalking-index_service_relation_server_percentile-20200408
    green  open   skywalking-index_service_instance_relation_server_resp_time-20200408
    green  open   skywalking-index_profile_task_segment_snapshot-20200408
    green  open   skywalking-index_endpoint_relation_cpm-20200408
    green  open   skywalking-index_instance_jvm_old_gc_time-20200408
    green  open   skywalking-index_service_sla-20200408
    green  open   skywalking-index_top_n_database_statement-20200408
    green  open   skywalking-index_service_relation_client_call_sla-20200408
    green  open   skywalking-index_endpoint_percentile_month-202004
    green  open   apm-agent-configuration

次のステップ

  • ご利用のアプリケーションを SkyWalking に接続するには、apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar にあるエージェント JAR をご利用のアプリケーションの JVM 起動引数に追加します。

  • サポートされているミドルウェアとコンポーネントの詳細については、「Apache SkyWalking ドキュメント」をご参照ください。

  • Java アプリケーションのデータを直接 SkyWalking にレポートする方法については、「SkyWalking を使用した Java アプリケーションデータのレポート」をご参照ください。