Integrasikan stack Elastic APM open-source dengan Alibaba Cloud Elasticsearch untuk membangun pipeline observabilitas bagi layanan dan aplikasi Anda. Panduan ini akan memandu Anda melalui proses men-deploy server APM yang dikelola sendiri pada instans Elastic Compute Service (ECS), menginstrumentasi aplikasi Go dengan agen APM, serta memvisualisasikan data yang dikumpulkan di Kibana.
APM menjembatani kesenjangan antara metrik infrastruktur dan perilaku tingkat aplikasi. Sementara log dan metrik memberi tahu Anda apa yang terjadi di lapisan infrastruktur, APM memberi tahu Anda apa yang terjadi di dalam aplikasi Anda dan bagaimana pengalaman pengguna. Mengintegrasikan APM ke dalam stack Anda memungkinkan Anda:
Mengidentifikasi operasi mana yang paling lama berlangsung dan mengapa layanan berhenti merespons
Memetakan dependensi layanan dan mengidentifikasi bottleneck dalam alur permintaan terdistribusi
Melacak pengalaman pengguna riil di browser dan klien native
Menghasilkan laporan SLA dan analisis tren dari perspektif bisnis
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster Alibaba Cloud Elasticsearch V7.10. Lihat Buat kluster Alibaba Cloud Elasticsearch.
Instans ECS yang menjalankan Linux. Lihat Hubungkan ke instans Linux menggunakan password atau kunci.
Go yang telah diinstal pada instans ECS. Panduan ini menginstrumentasi aplikasi Go menggunakan agen Elastic APM Go.
Cara kerja
Server APM menerima data jejak dari agen APM yang berjalan di dalam aplikasi Anda.
Server APM meneruskan data tersebut ke kluster Alibaba Cloud Elasticsearch Anda.
Kibana membaca data dari Elasticsearch dan menampilkannya di UI APM di bawah Observability.
Langkah 1: Bangun server APM
Instal server APM
Hubungkan ke instans ECS Anda sebagai pengguna biasa. Lihat Hubungkan ke instans Linux menggunakan password atau kunci.
Unduh paket server APM.
wget https://artifacts.elastic.co/downloads/apm-server/apm-server-7.10.2-linux-x86_64.tar.gzEkstrak paket tersebut.
tar -zxf apm-server-7.10.2-linux-x86_64.tar.gz
Konfigurasi server APM
Masuk ke direktori server APM.
cd apm-server-7.10.2-linux-x86_64/Buka file konfigurasi.
vim apm-server.ymlPerbarui konfigurasi dengan detail kluster Elasticsearch Anda.
Parameter Deskripsi apm-server.hostAlamat dan port tempat server APM mendengarkan. Format: <IP>:<port>. Nilai0.0.0.0:8200mendengarkan pada semua antarmuka.output.elasticsearch.hostsTitik akhir kluster Elasticsearch Anda. Gunakan titik akhir internal jika instans ECS dan kluster berada dalam virtual private cloud (VPC) yang sama. Jika berada di VPC berbeda, gunakan titik akhir publik dan konfigurasikan daftar putih IP publik. Lihat Lihat informasi dasar kluster dan Konfigurasikan daftar putih alamat IP publik atau privat untuk kluster Elasticsearch. output.elasticsearch.usernameUsername untuk Elasticsearch. Nilai default-nya adalah elastic. Untuk menggunakan akun kustom, buat role terlebih dahulu dan berikan izin tulis yang diperlukan. Lihat Gunakan mekanisme RBAC yang disediakan oleh Elasticsearch X-Pack untuk menerapkan kontrol akses.output.elasticsearch.passwordPassword untuk username di atas. Password akun elasticditentukan saat Anda membuat kluster. Untuk mengatur ulang, lihat Atur ulang password akses untuk kluster Elasticsearch.apm-server: host: "0.0.0.0:8200" output.elasticsearch: hosts: ["es-cn-*****.elasticsearch.aliyuncs.com:9200"] username: "elastic" password: "<your-password>"
Jalankan server APM
Jalankan perintah berikut untuk menjalankan server APM di latar belakang dan mengarahkan output ke file log.
nohup ./apm-server -e > apmserver.log 2>&1 &Server APM mulai berjalan, terhubung ke Elasticsearch pada titik akhir yang Anda tentukan, dan mengekspos API agen pada port 8200. Untuk memverifikasi bahwa server sedang berjalan, periksa apmserver.log untuk pesan yang mengonfirmasi koneksi ke Elasticsearch dan bahwa server sedang mendengarkan pada port 8200.
Langkah 2: Konfigurasi agen APM
Contoh ini menggunakan agen Elastic APM Go. Panduan ini menggunakan variabel lingkungan untuk pengaturan awal.
Panduan ini menggunakan Go sebagai contoh. Untuk bahasa lain, instal agen Elastic APM yang sesuai. Lihat dokumentasi agen Elastic APM untuk daftar lengkap bahasa yang didukung dan modul bawaan.
Instal agen Go
Inisialisasi modul Go untuk proyek Anda.
sudo go mod init demoInstal paket agen APM.
Jika Anda melihat error
golang.org xxxx: i/o timeout, lingkungan Anda tidak dapat mengakses golang.org. Ubah proxy modul Go ke mirror yang dapat diakses sebelum mencoba lagi.sudo go get go.elastic.co/apm sudo go get go.elastic.co/apm/module/apmhttp
Tetapkan variabel lingkungan agen APM
Buka file profil shell.
vim ~/.bash_profileTambahkan variabel lingkungan berikut dan simpan file tersebut.
Variabel Default Deskripsi ELASTIC_APM_SERVICE_NAMENama file eksekusi Nama layanan Anda. Karakter yang diizinkan: huruf, angka, tanda hubung ( -), garis bawah (_), dan spasi.ELASTIC_APM_SERVER_URLhttp://localhost:8200URL server APM. Atur ke alamat server yang Anda jalankan di Langkah 1. ELASTIC_APM_SECRET_TOKEN_(tidak ada)_ Token rahasia yang dibutuhkan oleh server APM. export ELASTIC_APM_SERVICE_NAME=zijian export ELASTIC_APM_SERVER_URL= export ELASTIC_APM_SECRET_TOKEN=Terapkan konfigurasi tersebut.
source ~/.bash_profile
Instrumentasi aplikasi Anda
Agen Elastic APM Go menyediakan modul bawaan untuk framework populer (seperti apmhttp) dan API Tracer tingkat rendah untuk instrumentasi kustom. Contoh ini menggunakan apmhttp untuk membungkus server HTTP standar.
Buat file aplikasi.
vim apm.goTambahkan kode berikut dan simpan file tersebut.
package main import ( "net/http" "go.elastic.co/apm/module/apmhttp" ) func main() { mux := http.NewServeMux() http.ListenAndServe(":8080", apmhttp.Wrap(mux)) }Jalankan aplikasi.
sudo go run apm.goSaat aplikasi berjalan, agen APM mulai mengirim data jejak ke server APM, yang kemudian meneruskannya ke kluster Elasticsearch Anda.
Langkah 3: Lihat data APM di Kibana
Aktifkan pembuatan indeks otomatis
Alibaba Cloud Elasticsearch menerapkan konvensi penamaan indeks. Indeks onboarding APM yang dibuat secara otomatis oleh server APM tidak sesuai dengan konvensi tersebut, sehingga Anda harus secara eksplisit mengizinkannya.
Login ke konsol Kibana. Lihat Login ke konsol Kibana.
Panduan ini menggunakan kluster V7.10. Langkah login mungkin berbeda untuk versi Elasticsearch lainnya.
Di halaman utama Kibana, klik Dev tools di pojok kanan atas.
Di tab Console, jalankan perintah berikut. Ganti
7.10.2dengan versi server APM yang Anda instal.PUT _cluster/settings { "persistent": { "action.auto_create_index":"+.*,+apm-7.10.2-onboarding-*,-*" } }
Lihat layanan yang dipantau
Klik ikon
di pojok kiri atas untuk memperluas panel navigasi.Di bawah Observability, klik APM.
Di tab Services, semua layanan yang dipantau oleh agen APM akan ditampilkan.

Klik nama layanan untuk menyelidiki lebih dalam jejak, transaksi, dan data performanya.
Langkah selanjutnya
Untuk menggunakan bahasa pemrograman berbeda, instal agen Elastic APM yang sesuai. Untuk daftar lengkap bahasa yang didukung beserta modul bawaannya, lihat dokumentasi agen Elastic APM.
Untuk mengelola konfigurasi agen secara terpusat tanpa redeploy, gunakan konfigurasi agen APM berbasis Kibana di bawah Observability > APM > Settings.
Untuk mengontrol akses ke kluster Elasticsearch Anda, siapkan kontrol akses berbasis peran. Lihat Gunakan mekanisme RBAC yang disediakan oleh Elasticsearch X-Pack untuk menerapkan kontrol akses.