Data pemantauan time-series yang dihasilkan oleh Heartbeat terus bertambah seiring waktu, sehingga meningkatkan jumlah shard dan beban kluster. Anda dapat menggunakan Index Lifecycle Management (ILM) untuk menetapkan kebijakan rollover pada indeks heartbeat-*. Kebijakan ini memungkinkan Anda melakukan rollover indeks pada fase hot, mengurangi jumlah shard dan melakukan force-merge segmen pada fase warm, memigrasikan data ke node warm pada fase cold, serta menghapus data kedaluwarsa secara berkala pada fase delete.
Prosedur
-
Langkah 1: Buat dan konfigurasikan kluster hot-warm
Buat kluster yang berisi node hot dan warm, aktifkan pembuatan indeks otomatis, dan konfigurasikan daftar putih IP untuk akses publik.
-
Langkah 2: Konfigurasikan ILM di Heartbeat
Aktifkan fitur ILM dan konfigurasikan parameternya dalam file heartbeat.yml. Setelah menjalankan Heartbeat, Elasticsearch secara otomatis menghasilkan templat indeks Heartbeat.
-
Gunakan API kebijakan ILM untuk membuat kebijakan yang menentukan kondisi rollover dan pengarsipan indeks.
-
Langkah 4: Kaitkan kebijakan ILM dengan templat indeks
Kaitkan kebijakan ILM dengan templat indeks Heartbeat.
-
Langkah 5: Kaitkan indeks dengan kebijakan ILM
Kaitkan kebijakan ILM dengan indeks Heartbeat pertama agar kebijakan tersebut diterapkan pada semua indeks yang dicakup oleh templat indeks.
-
Langkah 6: Lihat indeks di setiap fase
Lihat indeks yang diarsipkan di setiap fase: hot, warm, cold, dan delete.
Langkah 1: Buat dan konfigurasikan kluster hot-warm
-
Buat kluster hot-warm yang terdiri dari node hot dan warm, lalu periksa atributnya. Tabel berikut menjelaskan perbedaannya.
Jenis node
Kebutuhan data
Kinerja baca/tulis
Spesifikasi
Penyimpanan
hot node
Data terbaru, seperti data log dari dua hari terakhir.
Tinggi
Tinggi, misalnya 32-core 64 GB.
Disk cloud SSD direkomendasikan.
warm node
Data historis, seperti data log yang lebih dari dua hari.
Rendah
Rendah, misalnya 8-core 32 GB.
Disk Ultra direkomendasikan. Anda juga dapat menggunakan OpenStore untuk menerapkan penyimpanan arsitektur tanpa server bagi jumlah besar data dingin.
Di Alibaba Cloud Elasticsearch, nilai
box_typeuntuk node warm adalahwarm, bukancold. Hal ini karena node warm di Alibaba Cloud Elasticsearch sesuai dengan tier warm dalam arsitektur Elasticsearch asli.-
Saat membuat instans Alibaba Cloud Elasticsearch, aktifkan Warm nodes untuk membuat kluster hot-warm.
Setelah mengaktifkan dan membeli node warm, sistem akan menambahkan parameter
-Enode.attr.box_typeke parameter startup node:-
Hot node:
-Enode.attr.box_type=hot -
Warm node:
-Enode.attr.box_type=warm
Mengaktifkan node warm menetapkan node data yang sudah ada sebagai node hot.
-
-
Masuk ke konsol Kibana kluster tersebut. Untuk informasi selengkapnya, lihat Terhubung ke kluster menggunakan Kibana.
-
Di panel navigasi sebelah kiri, klik Dev Tools.
-
Di Console, jalankan perintah berikut untuk melihat atribut node hot dan warm di kluster.
GET _cat/nodeattrs?v&h=host,attr,valueJika output berisi node hot dan warm, kluster mendukung arsitektur hot-warm.
-
-
Aktifkan pembuatan indeks otomatis untuk kluster. Untuk informasi selengkapnya, lihat Aktifkan pembuatan indeks otomatis dengan mengonfigurasi parameter YML.
-
Konfigurasikan daftar putih IP untuk akses publik ke kluster dan tambahkan alamat IP server tempat Heartbeat diinstal ke daftar putih tersebut. Untuk informasi selengkapnya, lihat Konfigurasikan daftar putih IP.
Langkah 2: Konfigurasikan ILM di Heartbeat
Untuk informasi selengkapnya tentang cara mengonfigurasi ILM, lihat Set up index lifecycle management.
-
Unduh dan ekstrak paket instalasi Heartbeat.
-
Edit file heartbeat.yml untuk menentukan bagian heartbeat.monitors, setup.template.settings, setup.kibana, dan output.elasticsearch.
Contoh berikut menunjukkan konfigurasi sampel.
heartbeat.monitors: - type: icmp schedule: '*/5 * * * * * *' hosts: ["47.111.xx.xx"] setup.template.settings: index.number_of_shards: 3 index.codec: best_compression index.routing.allocation.require.box_type: "hot" setup.template.overwrite: true setup.kibana: host: "https://es-cn-4591jumei00xxxxxx.kibana.elasticsearch.aliyuncs.com:5601" output.elasticsearch: hosts: ["es-cn-4591jumei00xxxxxx.elasticsearch.aliyuncs.com:9200"] ilm.enabled: true ilm.rollover_alias: "heartbeat" ilm.pattern: "{now/d}-000001" username: "elastic" password: "<your_password>"Tabel berikut menjelaskan beberapa parameter tersebut. Untuk informasi selengkapnya, lihat Heartbeat configuration documentation.
Parameter
Deskripsi
index.number_of_shards
Jumlah shard utama. Nilai default-nya adalah 1.
index.routing.allocation.require.box_type
Menentukan bahwa data indeks ditulis ke node hot.
setup.template.overwrite
Menentukan apakah akan menimpa templat indeks asli. Jika Anda telah memuat versi templat indeks ini ke Elasticsearch, Anda harus mengatur parameter ini ke
trueuntuk menimpa templat asli. Ini merupakan item konfigurasi tingkat atas yang berada pada level yang sama dengansetup.template.settings.host
Ganti nilainya dengan titik akhir publik layanan Kibana Anda. Anda dapat memperoleh titik akhir tersebut dari halaman konfigurasi Kibana.
hosts
Ganti nilainya dengan titik akhir publik atau pribadi kluster Elasticsearch Anda. Anda dapat memperoleh titik akhir tersebut dari halaman Informasi Dasar kluster. Untuk informasi selengkapnya, lihat Lihat informasi dasar instans. Jika Anda mengatur parameter ini ke titik akhir publik, Anda harus mengonfigurasi daftar putih IP untuk akses publik ke kluster. Untuk informasi selengkapnya, lihat Konfigurasikan daftar putih IP. Jika Anda mengatur parameter ini ke titik akhir pribadi, pastikan kluster dan server yang menjalankan Heartbeat berada dalam VPC yang sama.
ilm.enabled
Atur parameter ini ke
trueuntuk mengaktifkan ILM.ilm.rollover_alias
Alias untuk indeks yang dihasilkan saat rollover. Nilai default-nya adalah
heartbeat-{beat.version}.ilm.pattern
Pola untuk indeks yang dihasilkan saat rollover. Parameter ini mendukung date math. Nilai default-nya adalah
{now/d}-000001. Saat rollover dipicu, penghitung numerik dalam nama indeks akan bertambah 1. Misalnya, jika rollover pertama menghasilkan indeks bernamaheartbeat-2020.04.29-000001, rollover berikutnya akan menghasilkan indeks baru bernamaheartbeat-2020.04.29-000002.username
Username default-nya adalah
elastic.password
Password untuk pengguna
elastic. Password ditentukan saat Anda membuat instans. Jika Anda lupa password-nya, Anda dapat mengatur ulang. Untuk informasi selengkapnya, lihat Atur ulang password akses instans.PentingJika Anda mengubah
ilm.rollover_aliasatauilm.patternsetelah memuat templat indeks, Anda harus mengatursetup.template.overwriteketrueuntuk menimpa templat tersebut. -
Jalankan layanan Heartbeat.
sudo ./heartbeat -e
Langkah 3: Buat kebijakan ILM
Anda dapat membuat kebijakan ILM di Elasticsearch menggunakan API atau konsol Kibana. Contoh berikut menunjukkan cara membuat kebijakan heartbeat-policy menggunakan API.
Heartbeat dapat memuat dan menulis kebijakan default ke Elasticsearch dengan perintah ./heartbeat setup --ilm-policy. Untuk membuat kebijakan kustom, ekspor kebijakan default dengan ./heartbeat export ilm-policy, lalu modifikasi.
Di konsol Kibana, jalankan perintah berikut untuk membuat kebijakan ILM.
PUT /_ilm/policy/heartbeat-policy
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_size": "5mb",
"max_age": "1d",
"max_docs": 100
}
}
},
"warm": {
"min_age": "60s",
"actions": {
"forcemerge": {
"max_num_segments":1
},
"shrink": {
"number_of_shards":1
}
}
},
"cold": {
"min_age": "3m",
"actions": {
"allocate": {
"require": {
"box_type": "warm"
}
}
}
},
"delete": {
"min_age": "1h",
"actions": {
"delete": {}
}
}
}
}
}
|
Fase |
Deskripsi |
|
hot |
Rollover dipicu ketika ukuran indeks mencapai 5 MB, usia indeks mencapai 1 hari, atau jumlah dokumen mencapai 100. Aksi |
|
warm |
Indeks diperkecil menjadi satu shard, lalu dilakukan force-merge menjadi satu segmen. Indeks kemudian memasuki fase cold tiga menit setelah rollover. |
|
cold |
Indeks dimigrasikan dari node hot ke node warm dan memasuki fase delete satu jam kemudian. |
|
delete |
Indeks dihapus. |
Nama kebijakan tidak dapat diubah setelah kebijakan dibuat. Anda juga dapat membuat kebijakan di konsol Kibana. Namun, satuan minimum untuk max_age di Kibana adalah jam. Jika menggunakan API, Anda dapat menentukan satuan minimum dalam detik.
Langkah 4: Kaitkan kebijakan ILM ke templat indeks
Setelah menjalankan Heartbeat, templat indeks Heartbeat secara otomatis dibuat di Elasticsearch. Kaitkan kebijakan heartbeat-policy yang Anda buat di Langkah 3: Buat kebijakan ILM dengan templat indeks ini.
-
Masuk ke konsol Kibana instans Alibaba Cloud Elasticsearch Anda. Untuk informasi selengkapnya, lihat Terhubung ke kluster menggunakan Kibana.
-
Di panel navigasi sebelah kiri, klik Management.
-
Di area Elasticsearch, klik Index Lifecycle Policies.
-
Di daftar Index lifecycle policies, temukan kebijakan heartbeat-policy dan pilih Actions > Add policy to index template pada baris kebijakan tersebut.
-
Di kotak dialog yang muncul, pilih templat indeks dari daftar Index template dan masukkan alias indeks di kotak teks Alias for rollover index.
-
Klik Add policy.
Langkah 5: Kaitkan indeks dengan kebijakan ILM
Setelah menjalankan Heartbeat, Elasticsearch secara otomatis membuat indeks. Anda harus mengaitkan kebijakan ILM secara manual dengan indeks pertama ini untuk mengganti kebijakan default-nya. Hal ini diperlukan meskipun kebijakan tersebut sudah dikaitkan dengan templat indeks seperti yang dijelaskan di Langkah 4: Kaitkan kebijakan ILM ke templat indeks.
-
Di halaman Management, di area Elasticsearch, klik Index Management.
-
Di daftar Index management, temukan indeks target dan klik nama indeks tersebut.
-
Di halaman Summary, pilih Manage > Remove lifecycle policy untuk menghapus kebijakan default yang disertakan Heartbeat.
-
Di kotak dialog yang muncul, klik Remove policy.
-
Kemudian, pilih Manage > Add lifecycle policy.
-
Di kotak dialog yang muncul, pilih kebijakan heartbeat-policy yang Anda buat di Langkah 3: Buat kebijakan ILM dari daftar Lifecycle policy. Di kotak teks Index rollover alias, masukkan alias indeks yang Anda definisikan di Langkah 4: Kaitkan kebijakan ILM ke templat indeks. Lalu, klik Add policy.
Langkah 6: Lihat indeks di setiap fase
Di halaman Index management, klik daftar drop-down Lifecycle phase dan pilih fase siklus hidup, seperti Hot, Warm, atau Cold, untuk menyaring dan melihat indeks di fase tersebut.
FAQ
Bagaimana cara menyesuaikan frekuensi pemeriksaan kebijakan ILM?
Secara default, ILM memeriksa indeks yang sesuai dengan kebijakan setiap 10 menit. Selama interval ini, jumlah data dapat melebihi ambang batas yang ditentukan. Misalnya, di Langkah 3: Buat kebijakan ILM, max_docs diatur ke 100, tetapi rollover mungkin tidak dipicu hingga jumlah dokumen sudah melebihi 100.
Anda dapat mengontrol frekuensi pemeriksaan dengan memodifikasi parameter indices.lifecycle.poll_interval:
Frekuensi pemeriksaan yang tinggi meningkatkan beban node. Konfigurasikan parameter ini dengan hati-hati sesuai kebutuhan bisnis Anda.
PUT _cluster/settings
{
"transient": {
"indices.lifecycle.poll_interval":"1m"
}
}