Kueri lambat yang berlebihan atau berjalan lama di Redis (misalnya 20 detik) dapat memblokir antrian operasi single-threaded dan menyebabkan layanan tidak tersedia. Anda dapat menggunakan Alibaba Cloud Elasticsearch dan Rsbeat untuk mengumpulkan serta menganalisis log lambat Redis secara real time, sehingga memungkinkan deteksi dan penyelesaian masalah kinerja secara cepat.
Informasi latar belakang
Rsbeat mengumpulkan log lambat Redis dan mengirimkannya ke Elasticsearch untuk divisualisasikan dan dianalisis di Konsol Kibana. Istilah berikut digunakan dalam topik ini:
-
Elasticsearch: mesin pencarian dan analitik terdistribusi berbasis Lucene yang bersifat real time dan dirilis di bawah Lisensi Apache. Elasticsearch memungkinkan Anda menyimpan, mengkueri, dan menganalisis dataset besar dalam waktu nyaris real time.
Alibaba Cloud Elasticsearch kompatibel dengan fitur-fitur open source Elasticsearch seperti Security, Machine Learning, Graph, dan Application Performance Monitoring (APM). Layanan ini tersedia dalam versi seperti 5.5.3, 6.3.2, 6.7.0, 6.8.0, dan 7.4.0. Alibaba Cloud Elasticsearch mendukung plugin komersial X-Pack dan menyediakan pengelolaan izin tingkat enterprise, pemantauan dan peringatan keamanan, serta pelaporan otomatis. Dalam contoh ini, Alibaba Cloud Elasticsearch digunakan. Untuk informasi selengkapnya, lihat Apa itu Alibaba Cloud Elasticsearch?
-
Rsbeat: pengirim data yang digunakan untuk mengumpulkan dan menganalisis log lambat Redis. Untuk informasi selengkapnya, lihat dokumentasi resmi Rsbeat.
-
Redis: penyimpanan struktur data in-memory open source. Redis dapat digunakan sebagai database, cache, dan middleware perpesanan. Untuk informasi selengkapnya, lihat dokumentasi resmi Redis.
ApsaraDB for Redis kompatibel dengan protokol Redis asli dan mendukung penyimpanan hibrida memori-disk dengan arsitektur hot standby yang sangat tersedia, serta dapat diskalakan untuk memenuhi kebutuhan operasi baca/tulis berkinerja tinggi. Dalam contoh ini, ApsaraDB for Redis digunakan. Untuk informasi selengkapnya, lihat Apa itu ApsaraDB for Redis?
Prosedur
-
Buat kluster Alibaba Cloud Elasticsearch, instans ApsaraDB for Redis, dan instans Elastic Compute Service (ECS) dalam virtual private cloud (VPC) yang sama.
-
Langkah 1: Konfigurasikan parameter kueri lambat untuk instans ApsaraDB for Redis
Konfigurasikan kondisi untuk menghasilkan log lambat Redis dan tentukan jumlah maksimum log lambat yang dapat direkam sesuai kebutuhan Anda.
-
Langkah 2: Instal dan konfigurasikan Rsbeat
Instal Rsbeat pada instans ECS dan tentukan instans ApsaraDB for Redis serta kluster Alibaba Cloud Elasticsearch dalam file konfigurasi Rsbeat.
-
Langkah 3: Analisis log lambat Redis di Konsol Kibana menggunakan grafik
Lihat detail log lambat Redis di Konsol Kibana kluster Alibaba Cloud Elasticsearch dan analisis log tersebut sesuai kebutuhan bisnis Anda.
Lakukan persiapan
-
Buat kluster Alibaba Cloud Elasticsearch dan aktifkan fitur Auto Indexing untuk kluster tersebut.
Untuk informasi selengkapnya, lihat Buat kluster Alibaba Cloud Elasticsearch dan Konfigurasikan file YML. Dalam contoh ini, digunakan kluster Elasticsearch V6.7 Edisi Standar.
-
Buat instans ApsaraDB for Redis.
Untuk informasi selengkapnya, lihat Langkah 1: Buat instans ApsaraDB for Redis. Dalam contoh ini, digunakan instans ApsaraDB for Redis V5.0 Edisi Community. Instans ini berada dalam VPC yang sama dengan kluster Alibaba Cloud Elasticsearch, sehingga Anda dapat mengakses kluster Elasticsearch melalui jaringan internal.
-
Buat instans ECS.
Untuk informasi selengkapnya, lihat Buat instans menggunakan wizard. Dalam contoh ini, digunakan instans ECS yang menjalankan image CentOS 7.6 64-bit. Instans ini berada dalam VPC yang sama dengan instans ApsaraDB for Redis dan kluster Alibaba Cloud Elasticsearch.
-
Konfigurasikan daftar putih alamat IP untuk akses ke instans ApsaraDB for Redis.
Tambahkan alamat IP pribadi instans ECS ke daftar putih alamat IP instans ApsaraDB for Redis. Untuk informasi selengkapnya, lihat Konfigurasikan daftar putih.
Langkah 1: Konfigurasikan parameter kueri lambat untuk instans ApsaraDB for Redis
-
Masuk ke Konsol ApsaraDB for Redis.
-
Di bilah navigasi atas, pilih wilayah.
-
Pada halaman Clusters, klik ID instans target.
-
Di panel navigasi sebelah kiri, klik Parameters.
-
Pada tab System Parameters, temukan parameter slowlog-log-slower-than dan slowlog-max-len, lalu ubah parameter tersebut sesuai kebutuhan Anda.
Parameter
Deskripsi
Contoh
slowlog-log-slower-than
Jika waktu proses suatu perintah melebihi nilai parameter ini, perintah tersebut didefinisikan sebagai kueri lambat dan direkam sebagai log lambat. Waktu proses tidak mencakup waktu yang dihabiskan dalam antrian. Satuan: mikrodetik. Nilai default: 10000 (10 milidetik).
PentingJika Anda mengatur parameter ini ke angka negatif, ApsaraDB for Redis tidak akan merekam kueri lambat sebagai log lambat. Jika Anda mengatur parameter ini ke 0, ApsaraDB for Redis akan merekam semua perintah.
Dalam contoh ini, parameter ini diatur ke 20000. Nilai ini menunjukkan bahwa perintah dengan waktu proses lebih dari 20 milidetik akan direkam sebagai log lambat.
slowlog-max-len
Jumlah maksimum perintah kueri lambat yang dapat direkam sebagai log lambat. Jika jumlah perintah yang direkam melebihi nilai parameter ini, ApsaraDB for Redis akan menghapus log lambat terlama.
Dalam contoh ini, parameter ini diatur ke 100. Nilai ini menunjukkan bahwa ApsaraDB for Redis merekam 100 perintah kueri lambat terbaru sebagai log lambat.
Langkah 2: Instal dan konfigurasikan Rsbeat
-
Hubungkan ke instans ECS.
Untuk informasi selengkapnya, lihat Hubungkan ke instans ECS.
-
Unduh dan ekstrak paket Rsbeat.
Dalam contoh ini, digunakan Rsbeat 5.3.2.
wget https://github.com/Yourdream/rsbeat/archive/master.zip unzip master.zip -
Ubah konfigurasi Rsbeat.
-
Jalankan perintah berikut untuk membuka file rsbeat.yml:
cd rsbeat-master vim rsbeat.yml -
Ubah konfigurasi pada bagian rsbeat dan output.elasticsearch sesuai petunjuk berikut, lalu simpan perubahan tersebut.
Berikut contoh konfigurasi rsbeat.yml:
################################ Rsbeat ###################################### rsbeat: # Defines how often an event is sent to the output period: 1s redis: ["r-xxx.redis.rds.aliyuncs.com:6379"] slowerThan: 100 #================================ General ===================================== # The name of the shipper that publishes the network data. It can be used to group # all the transactions sent by a single shipper in the web interface. #name: # The tags of the shipper are included in their own field with each # transaction published. #tags: ["service-X", "web-tier"] # Optional fields that you can specify to add additional information to the # output. #fields: # env: staging #============================== Outputs ======================================= # Configure what outputs to use when sending the data collected by the beat. # Multiple outputs may be used. #-------------------------- Elasticsearch output ------------------------------ output.elasticsearch: # Array of hosts to connect to. hosts: ["es-cn-xxx.elasticsearch.aliyuncs.com:9200"] # Optional protocol and basic auth credentials. #protocol: "https" username: "elastic" password: "xxx" # Overwrite existing template template.overwrite: trueTabel 1. Konfigurasi pada bagian rsbeat Parameter
Deskripsi
period
Interval pengiriman log lambat Redis oleh Rsbeat ke kluster Elasticsearch.
redis
Titik akhir untuk menghubungkan ke instans ApsaraDB for Redis. Untuk informasi selengkapnya, lihat Lihat titik akhir.
PentingSandi akses ke instans ApsaraDB for Redis tidak ditentukan dalam file konfigurasi Rsbeat. Agar Rsbeat dapat mengakses instans ApsaraDB for Redis, Anda harus mengaktifkan akses tanpa sandi setelah memperoleh titik akhir. Untuk informasi selengkapnya, lihat Aktifkan akses tanpa sandi.
slowerThan
Waktu yang diperlukan untuk mengirim perintah
config set slowlog-log-slower-thanke server Redis. Satuan: mikrodetik.Tabel 2. Konfigurasi pada bagian output.elasticsearch Parameter
Deskripsi
hosts
Titik akhir untuk mengakses kluster Elasticsearch. Anda dapat memperoleh titik akhir tersebut di halaman Informasi Dasar kluster Elasticsearch. Untuk informasi selengkapnya, lihat Lihat informasi dasar kluster.
username
Username untuk mengakses kluster Elasticsearch. Username default adalah elastic.
password
Sandi untuk mengakses kluster Elasticsearch. Sandi ini ditentukan saat Anda membuat kluster Elasticsearch. Jika Anda lupa sandi tersebut, Anda dapat mengatur ulang. Untuk informasi tentang tindakan pencegahan dan prosedur pengaturan ulang sandi, lihat Atur ulang sandi akses kluster Elasticsearch.
template.overwrite
Menentukan apakah templat indeks yang dibuat oleh Rsbeat dengan nama yang sama dengan templat indeks kluster Elasticsearch akan menimpa templat indeks kluster Elasticsearch. Nilai default: true.
-
-
Jalankan layanan Rsbeat.
./rsbeat.linux.amd64 -c rsbeat.yml -e -d "*"
Langkah 3: Analisis log lambat Redis di Konsol Kibana menggunakan grafik
-
Masuk ke Konsol Kibana kluster Elasticsearch.
Untuk informasi selengkapnya, lihat Masuk ke Konsol Kibana.
-
Buat pola indeks.
- Di panel navigasi sebelah kiri, klik Management.
- Di bagian Kibana, klik Index Patterns.
- Klik Create index pattern.
-
Pada bagian yang muncul, masukkan nama pola indeks di kolom Index pattern dan klik Next step.
- Tentukan Time Filter field name. Dalam topik ini, parameter ini diatur ke @timestamp.
- Klik Create index pattern.
-
Lihat detail log lambat Redis.
-
Di panel navigasi sebelah kiri, klik Discover.
-
Di bagian kiri halaman Discover, pilih rsbeat-* dari daftar drop-down di bawah Add a filter.
-
Di pojok kanan atas halaman, pilih rentang waktu dan lihat detail log lambat Redis selama rentang waktu tersebut.
Di halaman Discover, pilih
rsbeat-*sebagai pola indeks dan atur rentang waktu ke Last 24 hours untuk melihat catatan log lambat dalam periode tersebut. Halaman ini menampilkan jumlah hasil yang cocok, histogram distribusi waktu, serta daftar entri log yang berisi bidang seperticmd,ipPort,slowId,key, danduration.
-
-
Catat 10 kunci teratas dengan jumlah log lambat Redis terbanyak dan urutkan secara menurun.
-
Di panel navigasi sebelah kiri, klik Visualize.
-
Di halaman Visualize, klik ikon
. -
Di kotak dialog New Visualization, klik Pie.
-
Di bagian From a New Search, Select Index, klik rsbeat-*.
-
Konfigurasikan parameter pada bagian Metrics dan Buckets.
Konfigurasi Metrics:
Slice Size: Atur Aggregation ke Count, dan atur Custom Label ke
slowlog count.
Konfigurasi Buckets:
Split Slices: Atur Aggregation ke Terms, atur Field ke
key, atur Order By ke metric: slowlog count, atur Order ke Descend, dan atur Size ke10.
-
Klik ikon
untuk melihat hasilnya.
CatatanUntuk informasi selengkapnya tentang catatan penggunaan Konsol Kibana, lihat Kibana User Guide.
-