Seiring pertumbuhan data pemantauan time-series Heartbeat, peningkatan jumlah shard akan membebani kluster. Gunakan index lifecycle management (ILM) untuk membuat kebijakan rollover bagi indeks heartbeat-*. Kebijakan ini memungkinkan Anda melakukan rollover indeks pada fase hot, mengecilkan shard dan menggabungkan 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 hot-warm, aktifkan pembuatan indeks otomatis, dan konfigurasikan daftar putih akses untuk titik akhir publik.
Langkah 2: Konfigurasikan ILM di Heartbeat
Aktifkan dan konfigurasikan parameter ILM dalam file heartbeat.yml. Setelah menjalankan Heartbeat, templat indeks Heartbeat akan dibuat secara otomatis di Elasticsearch.
Gunakan API kebijakan ILM untuk membuat kebijakan manajemen siklus hidup yang menentukan kondisi rollover dan pengarsipan indeks.
Langkah 4: Hubungkan kebijakan ILM ke templat indeks
Asosiasikan kebijakan ILM dengan templat indeks Heartbeat.
Langkah 5: Hubungkan indeks ke kebijakan ILM
Asosiasikan kebijakan ILM dengan indeks Heartbeat pertama agar kebijakan tersebut diterapkan pada semua indeks yang dicakup oleh templat indeks.
Langkah 6: Lihat indeks pada setiap fase
Lihat indeks yang diarsipkan pada setiap fase: hot, warm, cold, dan delete.
Langkah 1: Buat dan konfigurasikan kluster hot-warm
Buat kluster hot-warm dan periksa atribut hot dan warm dari nodenya. Perbedaan antara jenis node adalah sebagai berikut:
Jenis node
Kebutuhan penyimpanan data
Kinerja baca/tulis
Spesifikasi
Kebutuhan penyimpanan
hot node
Data terbaru, seperti data log dari 2 hari terakhir.
Tinggi
Tinggi, misalnya 32-core 64 GB
Disk cloud SSD direkomendasikan.
warm node
Data historis, seperti data log yang lebih dari 2 hari.
Rendah
Rendah, misalnya 8-core 32 GB
Disk cloud efisien direkomendasikan. Anda juga dapat menggunakan OpenStore untuk penyimpanan arsitektur tanpa server volume data besar.
Pada Alibaba Cloud Elasticsearch, nilai
box_typeuntuk warm node adalahwarm, bukancold. Hal ini karena jenis node ini sesuai dengan tier warm dalam arsitektur Elasticsearch asli.Saat Anda membuat instans Alibaba Cloud Elasticsearch, aktifkan node warm untuk membuat kluster hot-warm.
Setelah Anda mengaktifkan dan membeli node warm, sistem akan menambahkan parameter
-Enode.attr.box_typeke parameter startup node:Node data hot:
-Enode.attr.box_type=hotNode data warm:
-Enode.attr.box_type=warm
Node data hanya menjadi hot node setelah Anda mengaktifkan node warm.
Masuk ke konsol Kibana untuk kluster tersebut. Untuk informasi selengkapnya, lihat Hubungkan ke kluster menggunakan Kibana.
Di panel navigasi sebelah kiri, klik Dev Tools.
Di Console, jalankan perintah berikut untuk melihat atribut hot dan warm dari node.
GET _cat/nodeattrs?v&h=host,attr,valueJika hasilnya mencantumkan node hot dan warm, kluster tersebut 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 akses untuk titik akhir publik kluster, dan tambahkan alamat IP server Heartbeat ke daftar putih tersebut. Untuk informasi selengkapnya, lihat Konfigurasikan daftar putih alamat IP.
Langkah 2: Konfigurasikan ILM di Heartbeat
Untuk petunjuk konfigurasi ILM lengkap, lihat Siapkan manajemen siklus hidup indeks.
Unduh dan ekstrak paket instalasi Heartbeat.
Dalam file heartbeat.yml, definisikan pengaturan 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. Untuk informasi selengkapnya, lihat dokumentasi konfigurasi Heartbeat.
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 templat indeks yang sudah ada akan ditimpa. Jika Anda telah memuat templat indeks versi ini ke Elasticsearch, Anda harus mengatur parameter ini ke true untuk menimpa templat tersebut. Ini adalah item konfigurasi tingkat atas yang sejajar dengan
setup.template.settings.host
Ganti nilai dengan titik akhir publik layanan Kibana Anda, yang tersedia di halaman konfigurasi Kibana.
hosts
Ganti nilai dengan titik akhir publik atau pribadi kluster Elasticsearch Anda, yang tersedia di halaman informasi dasar kluster. Untuk informasi selengkapnya, lihat Lihat informasi dasar instans. Jika Anda menggunakan titik akhir publik, Anda harus mengonfigurasi daftar putih akses untuk kluster tersebut. Untuk informasi selengkapnya, lihat Konfigurasikan daftar putih alamat IP. Jika Anda menggunakan titik akhir pribadi, pastikan kluster dan server Heartbeat berada dalam VPC yang sama.
ilm.enabled
Atur parameter ini ke true untuk mengaktifkan manajemen siklus hidup indeks (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, digit terakhir nama indeks baru akan ditambah 1. Misalnya, jika rollover pertama membuat indeks bernama heartbeat-2020.04.29-000001, rollover berikutnya akan membuat indeks bernama heartbeat-2020.04.29-000002.
username
Username default-nya adalah elastic.
password
Anda menetapkan password untuk pengguna elastic saat membuat instans. Jika lupa password, atur ulang dengan mengikuti petunjuk di Atur ulang password akses instans.
PentingJika Anda mengubah ilm.rollover_alias atau ilm.pattern setelah templat indeks dimuat, Anda harus mengatur setup.template.overwrite ke true untuk menimpa templat indeks tersebut.
Jalankan layanan Heartbeat.
sudo ./heartbeat -e
Langkah 3: Buat kebijakan ILM
Anda dapat membuat kebijakan ILM menggunakan API atau di konsol Kibana. Bagian ini menjelaskan cara membuat kebijakan heartbeat-policy dengan API.
Heartbeat mendukung pemuatan kebijakan default ke Elasticsearch dengan perintah ./heartbeat setup --ilm-policy. Kebijakan default dapat diekspor dengan perintah ./heartbeat export ilm-policy. Anda dapat memodifikasi kebijakan default untuk membuat kebijakan secara manual.
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": {}
}
}
}
}
}Parameter | Deskripsi |
hot | Memenuhi salah satu kondisi max_docs, max_size, atau max_age akan memicu rollover. Setelah rollover, indeks lama menunggu selama 60 detik sebelum memasuki fase warm. |
warm | Indeks diperkecil menjadi satu shard lalu force-merged menjadi satu segmen. Setelah tindakan ini, indeks memasuki fase cold 3 menit setelah rollover. |
cold | Indeks dimigrasikan dari node hot ke node warm. Setelah tindakan ini selesai, indeks memasuki fase delete setelah 1 jam. |
delete | Indeks dihapus. |
Nama kebijakan tidak dapat diubah setelah dibuat. Anda juga dapat membuat kebijakan di konsol Kibana. Namun, Kibana mengatur max_age dalam satuan jam, sedangkan API mendukung satuan detik.
Langkah 4: Hubungkan kebijakan ILM ke templat indeks
Setelah Anda menjalankan Heartbeat, templat indeks Heartbeat dibuat secara otomatis di Elasticsearch. Asosiasikan kebijakan heartbeat-policy yang dibuat di Langkah 3: Buat kebijakan ILM dengan templat indeks ini.
Masuk ke konsol Kibana untuk instans Alibaba Cloud Elasticsearch Anda. Untuk informasi selengkapnya, lihat Hubungkan ke kluster menggunakan konsol Kibana.
Di panel navigasi sebelah kiri, klik Management.
Di bagian Elasticsearch, klik Index Lifecycle Policies.
Di daftar Index lifecycle policies, temukan kebijakan heartbeat-policy, lalu klik Actions > Add policy to index template.
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: Hubungkan indeks ke kebijakan ILM
Setelah menjalankan Heartbeat, sebuah indeks dibuat secara otomatis di Elasticsearch. Asosiasikan indeks pertama dengan kebijakan ILM yang telah Anda asosiasikan dengan templat indeks di Langkah 4: Hubungkan kebijakan ILM ke templat indeks.
Di halaman Management, di bagian 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 Heartbeat default.
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: Hubungkan kebijakan ILM ke templat indeks, lalu klik Add policy.
Langkah 6: Lihat indeks pada setiap fase
Di halaman Index management, klik daftar drop-down Lifecycle phase dan pilih fase tertentu, seperti Hot, Warm, atau Cold, untuk memfilter dan melihat indeks pada fase tersebut.
FAQ
Bagaimana cara menyesuaikan frekuensi pemeriksaan kebijakan ILM?
Secara default, ILM memeriksa indeks yang sesuai kebijakan setiap 10 menit. Artinya, volume data dapat melebihi ambang batas yang ditentukan sebelum pemeriksaan dilakukan. Misalnya, di Langkah 3: Buat kebijakan ILM, max_docs diatur ke 100, tetapi rollover mungkin baru dipicu setelah jumlah dokumen melebihi 100.
Anda dapat mengontrol frekuensi pemeriksaan dengan memodifikasi parameter indices.lifecycle.poll_interval:
Frekuensi pemeriksaan yang tinggi dapat meningkatkan beban pada node. Kami menyarankan agar Anda mengatur parameter ini dengan hati-hati sesuai kebutuhan bisnis Anda.
PUT _cluster/settings
{
"transient": {
"indices.lifecycle.poll_interval":"1m"
}
}