Topik ini menjelaskan cara menggunakan Index Lifecycle Management (ILM) untuk mengelola data time-series Heartbeat dengan secara otomatis memindahkan data pemantauan yang menua dari node panas ke node hangat guna mengoptimalkan kinerja dan mengurangi biaya penyimpanan.
Prasyarat
Pengelolaan data Heartbeat dengan ILM memerlukan hal-hal berikut:
Node hangat telah dikonfigurasi untuk kluster tersebut.
Anda dapat memperoleh node hangat melalui salah satu dari dua cara berikut:
Saat pembuatan kluster
Catatan Penggunaan
Persyaratan templat dan alias: Tetapkan templat indeks dan alias sebelum menetapkan kebijakan siklus hidup.
Waktu modifikasi kebijakan: Jika Anda mengubah kebijakan siklus hidup selama rollover, kebijakan baru akan berlaku pada event rollover berikutnya.
Prosedur
Langkah 1: Konfirmasi konfigurasi node hangat
Sebelum melanjutkan, verifikasi bahwa kluster Anda telah dikonfigurasi dengan benar menggunakan node hangat.
Konsol Alibaba Cloud Elasticsearch
Buka halaman informasi dasar kluster Elasticsearch Anda dan periksa arsitektur kluster di bagian Node Visualization.

Kibana
Buka konsol Kibana, pilih Dev Tools, lalu jalankan perintah berikut di Console:
GET _cat/nodeattrs?v&h=node,attr,value&s=attr:descTanggapan yang berisi atribut box_type:warm menunjukkan bahwa kluster telah dikonfigurasi dengan node hangat.
Langkah 2: Konfigurasikan ILM di Heartbeat
Untuk mengintegrasikan Heartbeat secara mulus dengan ILM Elasticsearch, tentukan konfigurasi ILM dalam file heartbeat.yml. Untuk detailnya, lihat Set up index lifecycle management.
Unduh paket instalasi Heartbeat dan ekstrak isinya.
Edit file
heartbeat.ymluntuk menentukanheartbeat.monitors,setup.template.settings,setup.kibana, danoutput.elasticsearch.Konfigurasi berikut digunakan dalam topik ini.
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.kibana: # Kibana Host # Scheme and port can be left out and will be set to the default (http and 5601) # In case you specify and additional path, the scheme is required: http://localhost:5601/path # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601 host: "https://es-cn-4591jumei00xxxxxx.kibana.elasticsearch.aliyuncs.com:5601" output.elasticsearch: # Array of hosts to connect to. hosts: ["es-cn-4591jumei00xxxxxx.elasticsearch.aliyuncs.com:9200"] ilm.enabled: true setup.template.overwrite: true ilm.rollover_alias: "heartbeat" ilm.pattern: "{now/d}-000001" # Enabled ilm (beta) to use index lifecycle management instead daily indices. #ilm.enabled: false # Optional protocol and basic auth credentials. #protocol: "https" username: "elastic" password: "<your_password>"Parameter:
index.number_of_shards: Jumlah shard utama. Nilai default-nya adalah 1.
index.routing.allocation.require.box_type: Menulis data indeks ke node panas.
host: Ganti dengan titik akhir publik layanan Kibana Anda. Dapatkan titik akhir tersebut dari halaman konfigurasi Kibana.
hosts: Ganti dengan titik akhir publik atau internal kluster Elasticsearch Anda. Dapatkan titik akhir tersebut dari halaman Informasi Dasar kluster. Untuk informasi lebih lanjut, lihat View the basic information of an instance.
CatatanJika Anda menetapkannya ke titik akhir publik, konfigurasikan daftar putih akses jaringan publik untuk kluster tersebut. Untuk informasi lebih lanjut, lihat Configure a public or private access whitelist for an instance. Jika Anda menetapkannya ke titik akhir internal, pastikan kluster dan server tempat Heartbeat diinstal berada dalam VPC yang sama.
ilm.enabled: Tetapkan ke
trueuntuk mengaktifkan ILM.setup.template.overwrite: Menentukan apakah templat indeks asli akan ditimpa. Jika Anda telah memuat versi templat indeks ini ke Elasticsearch, tetapkan parameter ini ke
trueuntuk menimpa templat asli.ilm.rollover_alias: Alias untuk indeks yang dihasilkan selama rollover. Default-nya adalah heartbeat-\{beat.version\}.
ilm.pattern: Pola untuk indeks yang dihasilkan selama rollover. Mendukung date math. Default-nya adalah {now/d}-000001. Saat rollover dipicu, digit terakhir nama indeks baru akan bertambah 1. Misalnya, rollover pertama membuat indeks bernama heartbeat-2020.04.29-000001. Ketika kondisi rollover terpenuhi lagi, Elasticsearch membuat indeks baru bernama heartbeat-2020.04.29-000002.
username: Nama pengguna default adalah
elastic.password: Kata sandi untuk pengguna elastic ditetapkan saat Anda membuat kluster.
Untuk informasi lebih lanjut tentang parameter lainnya, lihat dokumentasi konfigurasi Heartbeat resmi.
PentingJika Anda mengubah ilm.rollover_alias atau ilm.pattern setelah memuat templat indeks, tetapkan setup.template.overwrite ke
trueuntuk menulis ulang templat indeks.Jalankan Heartbeat.
sudo ./heartbeat -e
Langkah 3: Buat kebijakan ILM
Buat kebijakan heartbeat-policy menggunakan API ILM atau konsol Kibana. Contoh ini menggunakan API ILM.
Heartbeat mencakup kebijakan default. Muat kebijakan tersebut dengan ./heartbeat setup --ilm-policy atau ekspor dengan ./heartbeat export ilm-policy. Anda dapat memodifikasi kebijakan yang diekspor untuk konfigurasi khusus.
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": {}
}
}
}
}
}Nama kebijakan tidak dapat diubah setelah dibuat.
Anda juga dapat membuat kebijakan di konsol Kibana. Namun, satuan minimum untuk max_age di Kibana adalah jam. Jika Anda menggunakan API, Anda dapat menentukan satuan minimum dalam detik.
Langkah 4: Terapkan kebijakan ILM ke templat indeks
Setelah menjalankan Heartbeat, templat indeks Heartbeat secara otomatis dibuat di kluster Elasticsearch Anda. Terapkan kebijakan ILM yang dibuat di Langkah 3: Buat kebijakan ILM ke templat ini.
Di bilah navigasi kiri, klik Management.
Di area Elasticsearch, klik Index Lifecycle Policies.
Di daftar Index lifecycle policies, pilih .

Di kotak dialog, pilih templat indeks dari daftar dropdown Index template, lalu masukkan alias indeks di kotak teks Alias for rollover index.

Klik Add policy.
Langkah 5: Hubungkan indeks dengan kebijakan ILM
Setelah menjalankan Heartbeat, sebuah indeks secara otomatis dibuat di kluster Elasticsearch Anda. Anda harus menghubungkan kebijakan ILM yang sesuai dengan indeks tersebut secara manual untuk inisialisasi.
Di halaman Management, di area Elasticsearch, pilih Index Management.
Di daftar Index management, temukan indeks target lalu klik namanya.
Di halaman Summary, klik untuk menghapus kebijakan default yang disertakan Heartbeat.

Di kotak dialog, klik Remove policy.
Kemudian, pilih .
Di kotak dialog, pilih kebijakan siklus hidup yang dibuat di Langkah 3: Buat kebijakan ILM dari Lifecycle policy. Di kotak teks Index rollover alias, masukkan alias indeks yang ditentukan di Langkah 4: Terapkan kebijakan ILM ke templat indeks, lalu klik Add policy.

Setelah kebijakan ILM dikaitkan dengan indeks awal, hasilnya ditampilkan pada gambar berikut.

Langkah 6: Lihat indeks di setiap fase
Untuk melihat indeks di fase hot, di halaman Index management, pilih .
Anda juga dapat menggunakan metode yang sama untuk melihat indeks di fase lainnya.