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 menampilkanJava not foundataujava-xxx: No such file or directorysaat Anda menjalankan layanan.
Langkah 1: Unduh dan instal SkyWalking
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.gzEkstrak paket tersebut:
tar -zxvf apache-skywalking-apm-es7-7.0.0.tar.gzVerifikasi 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.
Buka file
application.ymldi folderconfig:cd apache-skywalking-apm-bin-es7/config/ vi application.ymlTemukan bagian
storage. Ubah selector dariH2menjadielasticsearch7, 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"}PentingPertahankan
trustStorePathdantrustStorePassdalam keadaan dikomentari. Mengaktifkannya tanpa file keystore yang valid akan menyebabkan errorNoSuchFileException: ../es_keystore.jks.Parameter utama adalah:
Parameter Deskripsi 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.(Opsional) Ubah alamat IP pendengar atau nomor port di bagian
corepada fileapplication.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}(Opsional) Modifikasi
webapp/webapp.ymluntuk 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
Pastikan kluster Elasticsearch sedang berjalan sebelum menjalankan SkyWalking.
Jalankan skrip startup dari direktori
bin:cd ../bin ./startup.shJika startup berhasil, Anda akan melihat:
SkyWalking OAP started successfully! SkyWalking Web Application started successfully!Menjalankan
startup.shakan menjalankan SkyWalking OAP dan UI SkyWalking sekaligus.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.
Verifikasi bahwa SkyWalking telah membuat indeksnya di Elasticsearch. Masuk ke konsol Kibana kluster Anda — lihat Masuk ke konsol Kibana — lalu jalankan:
GET _cat/indices?vHasilnya akan menampilkan banyak indeks yang namanya diawali dengan
skywalking-index.
Langkah selanjutnya
Untuk menghubungkan aplikasi Anda ke SkyWalking, tambahkan JAR agent di
apache-skywalking-apm-bin-es7/agent/skywalking-agent.jarke argumen startup JVM aplikasi Anda.Untuk mempelajari lebih lanjut tentang middleware dan komponen yang didukung, lihat dokumentasi Apache SkyWalking.
Untuk melaporkan data aplikasi Java langsung ke SkyWalking, lihat Gunakan SkyWalking untuk melaporkan data aplikasi Java.