Anda dapat menjalankan perintah di konsol Kibana Dev Tools untuk memeriksa kesehatan kluster, beban node, alokasi shard, dan informasi indeks guna pemantauan rutin serta troubleshooting.
Prasyarat
Anda harus memiliki instans Alibaba Cloud Elasticsearch. Untuk informasi selengkapnya, lihat Buat kluster Alibaba Cloud Elasticsearch.
Prosedur
Masuk ke konsol Kibana kluster Elasticsearch Anda.
Untuk petunjuk detail, lihat Masuk ke konsol Kibana. Semua perintah dalam topik ini dapat dijalankan di konsol Dev Tools.
Di panel navigasi sebelah kiri, klik Dev Tools.
Di Console, jalankan perintah berikut untuk memeriksa status kesehatan kluster.
GET /_cluster/healthPermintaan yang berhasil mengembalikan respons berikut:
{ "cluster_name" : "es-cn-45xxxxxxxxxxxxk1q", "status" : "green", "timed_out" : false, "number_of_nodes" : 2, "number_of_data_nodes" : 2, "active_primary_shards" : 18, "active_shards" : 36, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 0, "delayed_unassigned_shards" : 0, "number_of_pending_tasks" : 0, "number_of_in_flight_fetch" : 0, "task_max_waiting_in_queue_millis" : 0, "active_shards_percent_as_number" : 100.0 }Bidang
statusmenunjukkan status kesehatan kluster. Nilai yang valid adalahgreen,yellow, danred.Status
State
Deskripsi
red
Tidak semua primary shard tersedia.
Satu atau lebih primary shard tidak ditugaskan.
yellow
Semua primary shard tersedia, tetapi tidak semua replica shard tersedia.
Satu atau lebih replica shard tidak ditugaskan.
green
Semua primary dan replica shard tersedia.
Semua primary dan replica shard telah ditugaskan.
Status kluster
yellowdapat memperlambat secara signifikan operasi seperti perubahan kata sandi dan peningkatan instans. Sebelum melakukan operasi tersebut, pulihkan kluster Anda ke statusgreen. Alasan umum statusyellowadalah jumlah replika untuk suatu indeks lebih besar daripada jumlah node yang tersedia dikurangi satu. Untuk memperbaikinya, ikuti langkah-langkah berikut:Cari indeks dengan status
yellow:curl -u <username>:<password> http://<host>:9200/_cat/indicesSesuaikan jumlah replika untuk indeks yang terpengaruh menjadi satu kurang dari jumlah node yang tersedia.
curl -XPUT -u <username>:<password> http://<host>:9200/<problematic_index_name>/_settings -H 'Content-Type: application/json' -d '{"index":{"number_of_replicas":(<number_of_nodes - 1>)}'CatatanSetelah me-restart atau melakukan scaling instans, sesuaikan jumlah replika untuk indeks Anda agar sesuai dengan jumlah node baru.
Perintah kluster
Perintah | Deskripsi |
GET /_cat/health?v | Mengembalikan status kesehatan kluster (green, yellow, atau red). Untuk deskripsi status, lihat tabel di atas. |
GET /_cluster/health?pretty=true | Mengembalikan status kesehatan kluster. Parameter
|
GET /_cluster/stats | Mengembalikan statistik kluster, termasuk informasi CPU dan JVM. |
GET /_cluster/state | Mengembalikan informasi detail tentang state kluster, termasuk node dan shard. |
GET /_cluster/pending_tasks | Mengembalikan tugas-tugas yang tertunda di kluster. |
GET /_cluster/settings | Mengembalikan pengaturan tingkat kluster. |
Perintah node
Perintah | Deskripsi |
GET /_cat/master?v | Mengembalikan informasi tentang master node. |
GET /_cat/nodes?v | Mengembalikan status saat ini dari setiap node, termasuk penggunaan CPU, penggunaan heap memory, dan beban. |
GET /_cat/nodeattrs?v | Mengembalikan atribut kustom dari setiap node. |
GET /_nodes/stats?pretty=true | Mengembalikan statistik node. |
GET /_nodes/process | Mengembalikan informasi proses untuk node. |
GET /_nodes/hot_threads | Mengembalikan tugas-tugas yang dieksekusi oleh hot thread yang mengonsumsi CPU dalam jumlah besar. Perintah ini umumnya digunakan untuk mengidentifikasi penyebab tingginya pemanfaatan CPU di kluster. Dengan menganalisis stack thread, seperti Lucene Merge Thread, dan pemanfaatan CPU dalam respons, Anda dapat mengidentifikasi tugas atau operasi spesifik yang menyebabkan beban tinggi. |
GET /_nodes/<nodeip>/jvm,process,os | Mengembalikan informasi JVM, proses, dan sistem operasi (OS) untuk node tertentu. |
GET /_cat/plugins?v | Mengembalikan plugin yang diinstal pada setiap node. |
GET /_cat/thread_pool?v | Mengembalikan statistik kolam thread untuk setiap node, termasuk jenis kolam thread, jumlah thread aktif, dan ukuran antrian. |
Perintah shard
Perintah | Deskripsi |
GET /_cat/shards?v | Mengembalikan informasi detail tentang setiap shard, seperti nama indeks, ID shard, tipe (primary atau replica), status, jumlah dokumen, dan penggunaan disk. Output mencakup alasan kegagalan untuk shard yang gagal. Untuk melihat informasi shard untuk indeks tertentu, jalankan |
GET /_cat/allocation?v | Mengembalikan alokasi shard untuk setiap node. |
GET /_cat/recovery?v | Mengembalikan progres recovery untuk setiap shard. |
Perintah segmen
GET /_cat/segments?vMengembalikan informasi segmen untuk setiap indeks, seperti nama segmen, shard tempat ia berada, penggunaan memori atau disk, dan apakah segmen tersebut telah di-flush ke disk. Anda juga dapat melihat informasi segmen untuk indeks tertentu dengan menjalankan GET _cat/segments/<index>?v.
Perintah indeks
Perintah | Deskripsi |
GET /_cat/indices?v | Mengembalikan informasi detail untuk semua indeks, termasuk status kesehatan, state, jumlah shard dan replika, serta jumlah dokumen. Untuk melihat informasi untuk indeks tertentu, jalankan |
GET /_cat/aliases?v | Mengembalikan informasi tentang semua alias indeks, termasuk indeks yang dituju dan konfigurasi routing-nya. |
Perintah pemetaan
Perintah | Deskripsi |
GET /_mapping | Mengembalikan pemetaan untuk semua indeks. |
GET /<index>/_mapping | Mengembalikan pemetaan untuk indeks tertentu. |
Perintah dokumen
Perintah | Deskripsi |
GET /_cat/count?v | Mengembalikan total jumlah dokumen di kluster. Untuk melihat jumlah untuk indeks tertentu, jalankan |
GET /<index>/_doc/<id> | Mengambil data dari dokumen tertentu. |
Perintah snapshot
Perintah | Deskripsi |
GET _snapshot/_all | Mengembalikan semua snapshot. |
GET _snapshot/<snapshot_name>/_status | Mengembalikan progres snapshot tertentu. |
FAQ
Bagaimana cara melihat semua tugas pencarian yang sedang dieksekusi di Elasticsearch?
Di konsol Dev Tools Kibana, jalankan perintah berikut untuk mengkueri semua tugas pencarian yang sedang berjalan di node saat ini beserta detailnya:
GET /_tasks?actions=indices:data/read/search*&detailed=true&nodes=_localPerintah ini cocok untuk skenario seperti troubleshooting latensi pencarian dan memeriksa status eksekusi tugas pencarian.
Bagaimana cara melakukan troubleshooting error 503 Service Unavailable yang dikembalikan untuk permintaan pencarian Elasticsearch?
Error 503 biasanya disebabkan oleh beban kluster yang tinggi atau penggunaan disk yang tinggi. Lakukan langkah-langkah berikut untuk melakukan troubleshooting error tersebut:
Jalankan
GET /_cluster/healthuntuk memeriksa status kesehatan kluster dan menentukan apakah kluster berada dalam stateredatauyellowatau apakah terdapat shard yang tidak ditugaskan.Jalankan
GET /_cat/nodes?vuntuk memeriksa penggunaan CPU, penggunaan heap memory, dan penggunaan disk dari node.Jika status kluster tidak normal, selesaikan terlebih dahulu masalah alokasi shard atau bottleneck sumber daya, lalu coba lagi permintaan pencarian tersebut.