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

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

最終更新日:Mar 26, 2026

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

仕組み

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. Linux サーバーに、Elasticsearch 7 向け SkyWalking パッケージをダウンロードします。本トピックでは 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:SkyWalking から Elasticsearch クラスターへの接続設定

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

  1. application.ymlconfig フォルダで開きます。

    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} # 時間および日単位のメトリックが分単位のインデックスにマージされます。
        dayStep: ${SW_STORAGE_DAY_STEP:1} # 分/時/日の各インデックスにおける日数を表します。
        user: ${SW_ES_USER:"elastic"}
        password: ${SW_ES_PASSWORD:"es_password"}
    重要

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

    主なパラメーターは以下のとおりです。

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

    core:
      selector: ${SW_CORE:default}
      default:
        # Mixed: エージェントデータの受信、レベル 1 集計、レベル 2 集計
        # Receiver: エージェントデータの受信、レベル 1 集計
        # Aggregator: レベル 2 集計
        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
        # バックエンドの restHost:restPort をカンマ区切りで指定
        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 に初めて接続する際は、多数のインデックスをクラスター内に作成するため、通常より起動時間が長くなります。インデックス作成が完了するまで、UI ページが空白になる場合があります。進行状況を確認するには、<SkyWalking インストールパス>/logs/skywalking-oap-server.log のログを参照してください。

    Access SkyWalking

  4. Elasticsearch 内に SkyWalking のインデックスが作成されたことを確認します。クラスターの Kibana コンソールにログインします(「Kibana コンソールへのログイン」をご参照ください)し、以下のコマンドを実行します。

    GET _cat/indices?v

    結果には、skywalking-index で始まる多数のインデックスが一覧表示されます。

    Indices whose names start with skywalking-index

次のステップ