All Products
Search
Document Center

Elasticsearch:Gunakan SkyWalking untuk menerapkan pemantauan end-to-end pada Elasticsearch

Last Updated:Mar 26, 2026

SkyWalking adalah sistem Pemantauan Kinerja Aplikasi (APM) dan tracing terdistribusi. Topik ini menjelaskan cara mengonfigurasi SkyWalking agar menggunakan kluster Alibaba Cloud Elasticsearch V7.4.0 sebagai backend penyimpanannya, sehingga memungkinkan observabilitas end-to-end untuk aplikasi terdistribusi Anda.

Cara kerja

SkyWalking mengumpulkan data telemetri dari agen yang berjalan di aplikasi Anda, lalu meneruskan data tersebut ke server SkyWalking OAP (Observability Analysis Platform). OAP menganalisis dan mengagregasi data tersebut serta menyimpannya di Elasticsearch. UI SkyWalking membaca data dari Elasticsearch untuk merender dasbor dan jejak.

SkyWalking mendukung dua mode instrumentasi:

  • Agent auto-instrument: Menginstrumentasi aplikasi Anda secara otomatis tanpa mengubah kode aplikasi. Mendukung berbagai framework dan library secara langsung.

  • Agent manual-instrument: Gunakan OpenTracing SDK untuk menginstrumentasi komponen yang tidak didukung oleh agent auto-instrument, termasuk komponen privat atau kustom. Instrumentasi otomatis dan manual dapat digunakan bersamaan.

SkyWalking menerima data dari berbagai sumber, termasuk agent SkyWalking untuk berbagai bahasa, Zipkin v1, Zipkin v2, telemetri Istio, dan Envoy.

Topik ini membahas penggunaan kluster Alibaba Cloud Elasticsearch V7.4.0 sebagai backend penyimpanan SkyWalking. Untuk melaporkan data aplikasi Java ke SkyWalking, lihat Gunakan SkyWalking untuk melaporkan data aplikasi Java. Untuk daftar lengkap middleware dan komponen yang didukung oleh SkyWalking, lihat dokumentasi Apache SkyWalking.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Kluster Alibaba Cloud Elasticsearch V7.4.0. Lihat Buat kluster Alibaba Cloud Elasticsearch.

  • Server Linux dengan JDK 1.8.0 atau versi lebih baru yang telah diinstal. Disarankan menggunakan Instance Elastic Compute Service (ECS). Lihat Buat instance ECS dan Instal JDK.

  • Port 8080, 10800, 11800, dan 12800 pada server Linux tersedia.

  • Firewall dan Security-Enhanced Linux (SELinux) dinonaktifkan pada server Linux.

Jika JDK tidak diinstal dengan benar, log SkyWalking akan menampilkan Java not found atau java-xxx: No such file or directory saat Anda menjalankan layanan.

Langkah 1: Unduh dan instal SkyWalking

  1. Unduh paket SkyWalking untuk Elasticsearch 7 ke server Linux Anda. Karena topik ini menggunakan kluster Elasticsearch V7.4.0, pilih Binary Distribution for Elasticsearch 7 dari halaman unduhan SkyWalking. Jalankan perintah berikut untuk mengunduh paket:

    wget https://archive.apache.org/dist/skywalking/7.0.0/apache-skywalking-apm-es7-7.0.0.tar.gz
  2. Ekstrak paket tersebut:

    tar -zxvf apache-skywalking-apm-es7-7.0.0.tar.gz
  3. Verifikasi file yang telah diekstrak:

    ls apache-skywalking-apm-bin-es7/

    Output yang diharapkan:

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

Langkah 2: Konfigurasikan SkyWalking untuk terhubung ke kluster Elasticsearch

SkyWalking menggunakan H2 sebagai backend penyimpanan default, tetapi H2 tidak mendukung penyimpanan data persisten. Ubah backend penyimpanan menjadi Elasticsearch dengan mengedit file application.yml.

  1. Buka file application.yml di folder config:

    cd apache-skywalking-apm-bin-es7/config/
    vi application.yml
  2. Temukan bagian storage. Ubah selector dari H2 menjadi elasticsearch7, lalu konfigurasikan parameter koneksi:

    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} # Metrik Jam dan Hari akan digabung ke indeks menit.
        dayStep: ${SW_STORAGE_DAY_STEP:1} # Mewakili jumlah hari dalam satu indeks menit/jam/hari.
        user: ${SW_ES_USER:"elastic"}
        password: ${SW_ES_PASSWORD:"es_password"}
    Penting

    Pertahankan trustStorePath dan trustStorePass dalam keadaan dikomentari. Mengaktifkannya tanpa file keystore yang valid akan menyebabkan error NoSuchFileException: ../es_keystore.jks.

    Parameter utama adalah:

    ParameterDeskripsi
    selectorSelector backend penyimpanan. Atur ke elasticsearch7.
    nameSpaceAwalan yang diterapkan pada semua nama indeks yang dibuat di kluster Elasticsearch.
    clusterNodesTitik akhir publik kluster Elasticsearch Anda. Karena SkyWalking dan kluster Elasticsearch berada di VPC yang berbeda, gunakan titik akhir publik. Untuk menemukan titik akhir tersebut, lihat Lihat informasi dasar kluster.
    userUsername untuk kluster Elasticsearch. Default: elastic.
    passwordPassword untuk pengguna elastic, yang ditetapkan saat Anda membuat kluster. Untuk mengatur ulang password, lihat Atur ulang password akses kluster Elasticsearch.
  3. (Opsional) Ubah alamat IP pendengar atau nomor port di bagian core pada file application.yml. Nilai default adalah port 12800 untuk RESTful API dan port 11800 untuk gRPC. Topik ini menggunakan nilai default.

    core:
      selector: ${SW_CORE:default}
      default:
        # Mixed: Terima data agent, agregasi Level 1, agregasi Level 2
        # Receiver: Terima data agent, agregasi Level 1
        # Aggregator: agregasi Level 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. (Opsional) Modifikasi webapp/webapp.yml untuk mengubah port UI atau titik akhir backend. Topik ini menggunakan nilai default.

    server:
      port: 8080
    collector:
      path: /graphql
      ribbon:
        ReadTimeout: 10000
        # Arahkan ke semua restHost:restPort backend, dipisahkan dengan ,
        listOfServers: 127.0.0.1:12800

Langkah 3: Jalankan SkyWalking dan verifikasi hasilnya

  1. Pastikan kluster Elasticsearch sedang berjalan sebelum menjalankan SkyWalking.

  2. Jalankan skrip startup dari direktori bin:

    cd ../bin
    ./startup.sh

    Jika startup berhasil, Anda akan melihat:

    SkyWalking OAP started successfully!
    SkyWalking Web Application started successfully!

    Menjalankan startup.sh akan menjalankan SkyWalking OAP dan UI SkyWalking sekaligus.

  3. Buka http://<alamat IP server Linux>:8080/ di browser untuk mengakses UI SkyWalking.

    Pertama kali SkyWalking terhubung ke Elasticsearch, proses startup lebih lambat dari biasanya karena SkyWalking membuat banyak indeks di kluster. Halaman UI mungkin tampak kosong hingga pembuatan indeks selesai. Untuk memeriksa progres, lihat log di <path instalasi SkyWalking>/logs/skywalking-oap-server.log.

    Access SkyWalking

  4. Verifikasi bahwa SkyWalking telah membuat indeksnya di Elasticsearch. Masuk ke konsol Kibana kluster Anda — lihat Masuk ke konsol Kibana — lalu jalankan:

    GET _cat/indices?v

    Hasilnya akan menampilkan banyak indeks yang namanya diawali dengan skywalking-index.

    Indices whose names start with skywalking-index

Langkah selanjutnya