SkyWalking adalah alat pemantauan kinerja aplikasi terdistribusi (APM) dan sistem pelacakan terdistribusi. Topik ini menjelaskan cara menggunakan SkyWalking untuk memantau kluster Alibaba Cloud Elasticsearch V7.4.
Informasi latar belakang
SkyWalking memiliki fitur-fitur berikut:
SkyWalking menyediakan agen instrumentasi otomatis sehingga Anda tidak perlu memodifikasi kode aplikasi.
SkyWalking menyediakan agen instrumentasi manual yang mendukung SDK OpenTracing. Agen instrumentasi manual dapat memantau komponen yang didukung oleh API OpenTracing untuk Java.
CatatanUntuk informasi lebih lanjut tentang komponen yang didukung oleh API OpenTracing untuk Java, lihat OpenTracing Registry.
Agen instrumentasi otomatis dan manual dapat digunakan secara bersamaan. Agen instrumentasi manual dapat memantau komponen yang tidak didukung oleh agen instrumentasi otomatis, bahkan komponen pribadi.
SkyWalking adalah program backend berbasis Java untuk analitik. Ini menyediakan RESTful API dan kemampuan analitik untuk agen dalam bahasa lain.
SkyWalking menyediakan analitik streaming berperforma tinggi.
Gambar berikut mengilustrasikan arsitektur SkyWalking.
SkyWalking adalah platform untuk menyimpan hasil analitik data dan pengukuran. Hasil ini dikirim ke SkyWalking Collector melalui HTTP atau gRPC. SkyWalking Collector menganalisis dan menggabungkan data serta menyimpannya di Elasticsearch, H2, MySQL, atau TiDB. Anda dapat melihat hasil analisis di UI SkyWalking. SkyWalking mengumpulkan data dalam format berbeda dari berbagai sumber, seperti agen SkyWalking dalam berbagai bahasa pemrograman, Zipkin v1, Zipkin v2, Istio telemetry, dan Envoy.
Dalam topik ini, SkyWalking diintegrasikan ke dalam Alibaba Cloud Elasticsearch V7.4. Anda juga dapat menggunakan klien SkyWalking untuk melaporkan data ke aplikasi Java. Untuk informasi lebih lanjut, lihat Gunakan SkyWalking untuk Melaporkan Data Aplikasi Java. Untuk informasi lebih lanjut tentang middleware dan komponen yang didukung oleh SkyWalking, lihat Dokumentasi Apache SkyWalking.
Prasyarat
Kluster Alibaba Cloud Elasticsearch telah dibuat. Dalam topik ini, kluster Elasticsearch V7.4.0 digunakan.
Untuk informasi lebih lanjut, lihat Buat Kluster Alibaba Cloud Elasticsearch.
Server Linux tempat JDK 1.8.0 atau versi lebih baru telah diinstal disiapkan.
Kami merekomendasikan Anda menggunakan Instance ECS Alibaba Cloud. Untuk informasi lebih lanjut tentang cara membeli instance ECS, lihat Langkah 1: Buat Instance ECS.
CatatanUntuk informasi lebih lanjut tentang cara menginstal JDK, lihat Langkah 3: Instal JDK. Jika JDK tidak diinstal dengan benar dan Anda memulai SkyWalking untuk melihat log, pesan kesalahan "Java not found" atau "java-xxx: No such file or directory" dilaporkan.
Port 8080, 10800, 11800, dan 12800 di server Linux tidak terpakai.
Firewall dan Security-Enhanced Linux (SELinux) dinonaktifkan untuk server Linux.
Prosedur
Langkah 1: Unduh dan instal SkyWalking
Unduh paket SkyWalking ke server Linux.
Kluster Elasticsearch V7.4.0 digunakan dalam topik ini. Oleh karena itu, Anda harus memilih Binary Distribution untuk ElasticSearch 7. Kode berikut memberikan perintah yang digunakan untuk mengunduh paket:
wget https://archive.apache.org/dist/skywalking/7.0.0/apache-skywalking-apm-es7-7.0.0.tar.gzJalankan perintah berikut untuk mengekstrak paket:
tar -zxvf apache-skywalking-apm-es7-7.0.0.tar.gzJalankan perintah berikut untuk melihat file yang diekstraksi:
ls apache-skywalking-apm-bin-es7/Hasil berikut dikembalikan:
total 92 agent bin config LICENSE licenses NOTICE oap-libs README.txt tools webapp
Langkah 2: Konfigurasikan SkyWalking untuk terhubung ke kluster Elasticsearch
Jalankan kode berikut untuk membuka file application.yml di folder config:
cd apache-skywalking-apm-bin-es7/config/ vi application.ymlTemukan
storage, ubah H2 menjadi elasticsearch7, dan konfigurasikan file berdasarkan instruksi berikut: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"}CatatanSkyWalking menyimpan data di H2 secara default. Namun, H2 tidak mendukung penyimpanan data persisten. Oleh karena itu, Anda harus mengubah H2 menjadi Elasticsearch.
Parameter
Deskripsi
selector
Pemilih penyimpanan. Untuk contoh ini, atur nilainya menjadi elasticsearch7.
nameSpace
Ruang nama. Nilai parameter ini digunakan sebagai awalan untuk nama semua indeks di kluster Elasticsearch.
clusterNodes
Titik akhir kluster Elasticsearch. Kluster Elasticsearch tidak berada di virtual private cloud (VPC) yang sama dengan SkyWalking. Anda harus menggunakan titik akhir publik untuk mengakses kluster Elasticsearch. Untuk informasi lebih lanjut tentang cara memperoleh titik akhir publik kluster Elasticsearch, lihat Lihat informasi dasar kluster.
user
Nama pengguna yang digunakan untuk mengakses kluster Elasticsearch. Nama pengguna default adalah elastic.
password
Kata sandi yang digunakan untuk mengakses kluster Elasticsearch. Kata sandi pengguna elastic ditentukan saat Anda membuat kluster Elasticsearch. Jika Anda lupa kata sandi, Anda dapat menyetel ulang. Untuk informasi lebih lanjut tentang cara menyetel ulang kata sandi, lihat Setel ulang kata sandi akses untuk kluster Elasticsearch.
PentingTentukan hanya nama pengguna dan kata sandi. Komentari trustStorePath dan trustStorePass. Jika tidak, pesan kesalahan "NoSuchFileException:../es_keystore.jks" dilaporkan.
Opsional:Ubah alamat IP atau nomor port untuk mendengarkan.
Secara default, SkyWalking berkomunikasi dengan Elasticsearch melalui port 12800 untuk operasi RESTful API dan melalui port 11800 untuk operasi gRPC API. Alamat IP atau nomor port dapat diubah di bagian inti file application.yml. Dalam topik ini, nilai default digunakan.
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}Opsional:Di folder webapp, modifikasi konfigurasi di file webapp.yml.
Konfigurasi default digunakan dalam topik ini. Anda dapat memodifikasi konfigurasi berdasarkan kebutuhan bisnis Anda.
server: port: 8080 collector: path: /graphql ribbon: ReadTimeout: 10000 # Point to all backend's restHost:restPort, split by , listOfServers: 127.0.0.1:12800
Langkah 3: Verifikasi hasil
Jalankan perintah berikut untuk memulai SkyWalking di server Linux:
cd ../bin ./startup.shPentingSebelum Anda memulai SkyWalking, pastikan bahwa kluster Elasticsearch berjalan normal.
SkyWalking Collector dan SkyWalking UI juga dimulai setelah Anda menjalankan perintah
startup.sh.
Jika SkyWalking dimulai, hasil berikut dikembalikan:
SkyWalking OAP started successfully! SkyWalking Web Application started successfully!Masukkan http://<alamat IP server Linux>:8080/ di bilah alamat browser Anda.
CatatanJika ini pertama kalinya Anda menggunakan SkyWalking untuk terhubung ke Elasticsearch, startup lambat. Hal ini karena SkyWalking perlu membuat sejumlah besar indeks di Elasticsearch. Sebelum pembuatan selesai, halaman yang diakses kosong. Anda dapat melihat log yang disimpan di
<jalur instalasi SkyWalking>logs/skywalking-oap-server.loguntuk memeriksa apakah pembuatan telah selesai.Masuk ke konsol Kibana kluster Elasticsearch. Untuk informasi lebih lanjut, lihat Masuk ke Konsol Kibana. Kemudian, jalankan perintah
GET _cat/indices?vuntuk melihat data indeks.Di hasil yang dikembalikan, sejumlah besar indeks yang namanya dimulai dengan
skywalking-indexada.