Data pemantauan Heartbeat terus bertambah seiring waktu, sehingga meningkatkan jumlah shard dan beban kluster. Index Lifecycle Management (ILM) mengotomatiskan rollover, shrink, migrasi, dan penghapusan di seluruh fase hot, warm, cold, dan delete untuk indeks heartbeat-*.
Prosedur
-
Langkah 1: Buat dan konfigurasikan kluster hot-warm
Buat kluster hot-warm, aktifkan pembuatan indeks otomatis, dan konfigurasikan daftar putih IP akses publik.
-
Langkah 2: Konfigurasikan ILM di Heartbeat
Aktifkan ILM dan konfigurasikan parameternya dalam file heartbeat.yml. Heartbeat secara otomatis menghasilkan templat indeks di Elasticsearch saat startup.
-
Buat kebijakan siklus hidup yang menentukan kondisi rollover dan pengarsipan indeks.
-
Langkah 4: Kaitkan kebijakan ILM dengan templat indeks
Kaitkan kebijakan ILM dengan templat indeks Heartbeat.
-
Langkah 5: Terapkan kebijakan ILM ke indeks
Terapkan kebijakan ILM ke indeks Heartbeat awal agar semua indeks berikutnya mewarisinya.
-
Langkah 6: Lihat indeks di setiap fase
Lihat indeks di setiap fase siklus hidup: hot, warm, cold, dan delete.
Langkah 1: Buat dan konfigurasikan kluster hot-warm
-
Buat kluster hot-warm dan verifikasi atribut nodenya. Tabel berikut membandingkan jenis node tersebut.
Jenis node
Kebutuhan penyimpanan data
Kinerja baca/tulis
Spesifikasi
Kebutuhan 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. OpenStore juga tersedia untuk penyimpanan data cold arsitektur tanpa server.
Di Alibaba Cloud Elasticsearch,
box_typeuntuk node warm adalahwarm(bukan cold), sesuai dengan tier warm di 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=hot -
Node data warm:
-Enode.attr.box_type=warm
Node data hanya berfungsi sebagai node hot setelah node warm diaktifkan.
-
-
Masuk ke konsol Kibana kluster tersebut. Hubungkan ke kluster menggunakan Kibana.
-
Di panel navigasi kiri, klik Dev Tools.
-
Di Console, jalankan perintah berikut untuk melihat atribut node kluster.
GET _cat/nodeattrs?v&h=host,attr,valueJika respons mencakup node hot dan warm, kluster mendukung arsitektur hot-warm.
-
-
Aktifkan pembuatan indeks otomatis untuk kluster target. Aktifkan pembuatan indeks otomatis dengan mengonfigurasi parameter YML.
-
Tambahkan alamat IP server Heartbeat ke daftar putih IP titik akhir publik kluster. Konfigurasikan daftar putih IP.
Langkah 2: Konfigurasikan ILM di Heartbeat
Panduan Elastic Set up index lifecycle management mencakup konfigurasi ILM secara rinci.
-
Unduh dan ekstrak paket instalasi Heartbeat.
-
Edit file heartbeat.yml untuk menentukan heartbeat.monitors, setup.template.settings, setup.kibana, dan output.elasticsearch.
Contoh konfigurasi:
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>"Parameter utama tercantum di bawah ini. Dokumentasi konfigurasi Heartbeat mencakup semua parameter yang tersedia.
Parameter
Deskripsi
index.number_of_shards
Jumlah shard utama. Default: 1.
index.routing.allocation.require.box_type
Mengarahkan data indeks ke node hot.
setup.template.overwrite
Apakah akan menimpa templat indeks yang sudah ada. Atur ke true jika versi templat ini sudah dimuat. Ini adalah parameter tingkat atas yang sejajar dengan
setup.template.settings.host
Titik akhir publik layanan Kibana Anda, tersedia di halaman konfigurasi Kibana.
hosts
Titik akhir publik atau internal kluster Elasticsearch Anda, tersedia di halaman Informasi Dasar. Lihat informasi dasar instans. Titik akhir publik memerlukan IP client dalam daftar putih IP kluster. Konfigurasikan daftar putih IP. Titik akhir internal memerlukan kluster dan server Heartbeat berada dalam VPC yang sama.
ilm.enabled
Atur ke
trueuntuk mengaktifkan ILM.ilm.rollover_alias
Alias untuk indeks yang telah dilakukan rollover. Default:
heartbeat-{beat.version}.ilm.pattern
Pola untuk nama indeks hasil rollover. Mendukung date math. Default: {now/d}-000001. Saat rollover, angka di akhir bertambah (misalnya,
heartbeat-2020.04.29-000001menjadiheartbeat-2020.04.29-000002).username
Default:
elastic.password
Kata sandi untuk pengguna
elastic, ditentukan saat pembuatan instans. Setel ulang kata sandi akses instans.PentingJika Anda mengubah
ilm.rollover_aliasatauilm.patternsetelah templat indeks dimuat, Anda harus mengatursetup.template.overwriteketrueuntuk menulis ulang templat indeks. -
Jalankan layanan Heartbeat.
sudo ./heartbeat -e
Langkah 3: Buat kebijakan ILM
Anda dapat membuat kebijakan ILM melalui API atau konsol Kibana. Contoh ini menggunakan API untuk membuat kebijakan bernama heartbeat-policy.
Heartbeat memuat kebijakan default saat Anda menjalankan ./heartbeat setup --ilm-policy. Ekspor kebijakan tersebut dengan ./heartbeat export ilm-policy untuk digunakan sebagai titik awal kebijakan kustom.
Jalankan perintah berikut di konsol Kibana 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 |
Memicu rollover ketika indeks mencapai 5 MB, 1 hari, atau 100 dokumen. Indeks hasil rollover memasuki fase warm setelah 60 detik. |
|
warm |
Mengecilkan indeks menjadi satu shard dan force-merge menjadi satu segmen. Indeks memasuki fase cold 3 menit setelah rollover. |
|
cold |
Memindahkan indeks dari node hot ke node warm. Memasuki fase delete 1 jam setelah rollover. |
|
delete |
Indeks dihapus. |
Nama kebijakan bersifat immutable. Konsol Kibana juga mendukung pembuatan kebijakan, tetapi satuan minimum max_age-nya adalah jam. API mendukung satuan yang lebih kecil seperti detik.
Langkah 4: Kaitkan kebijakan ILM dengan templat indeks
Heartbeat secara otomatis membuat templat indeks di Elasticsearch saat startup. Kaitkan heartbeat-policy dari Langkah 3: Buat kebijakan ILM dengan templat ini.
-
Masuk ke konsol Kibana instans Elasticsearch Anda. Hubungkan ke kluster menggunakan Kibana.
-
Di panel navigasi kiri, klik Management.
-
Di bagian Elasticsearch, klik Index Lifecycle Policies.
-
Di daftar Index lifecycle policies, temukan
heartbeat-policydan klik Actions > Add policy to index template . -
Di kotak dialog, pilih templat indeks dari daftar Index template dan masukkan alias rollover di kolom Alias for rollover index.
-
Klik Add policy.
Langkah 5: Terapkan kebijakan ILM ke indeks
Heartbeat membuat indeks awal saat startup. Terapkan kebijakan ILM ke indeks ini. Indeks berikutnya akan mewarisi kebijakan dari templat yang dikonfigurasi di Langkah 4: Kaitkan kebijakan ILM dengan templat indeks.
-
Di halaman Management, buka bagian Elasticsearch dan klik Index Management.
-
Di daftar Index management, temukan indeks target dan klik namanya.
-
Di halaman Summary, klik Manage > Remove lifecycle policy untuk menghapus kebijakan default yang disertakan dengan Heartbeat.
-
Di kotak dialog konfirmasi, klik Remove policy.
-
Kemudian, klik Manage > Add lifecycle policy.
-
Di kotak dialog, pilih
heartbeat-policydari Langkah 3: Buat kebijakan ILM di daftar Lifecycle policy. Masukkan alias rollover yang sama dari Langkah 4: Kaitkan kebijakan ILM dengan templat indeks di kolom Index rollover alias, lalu klik Add policy.
Langkah 6: Lihat indeks di setiap fase
Di halaman Index management, pilih fase dari daftar drop-down Lifecycle phase untuk memfilter indeks.
FAQ
Bagaimana cara menyesuaikan frekuensi pemeriksaan kebijakan ILM?
ILM memeriksa indeks yang memenuhi syarat setiap 10 menit secara default. Selama interval ini, volume data dapat melebihi ambang batas. Misalnya, di Langkah 3: Buat kebijakan ILM, max_docs diatur ke 100, tetapi jumlah aktual dapat melebihi 100 sebelum pemicu rollover dijalankan.
Sesuaikan frekuensi pemeriksaan dengan parameter indices.lifecycle.poll_interval:
Interval yang pendek meningkatkan beban node. Seimbangkan responsivitas kebijakan dengan kinerja kluster.
PUT _cluster/settings
{
"transient": {
"indices.lifecycle.poll_interval":"1m"
}
}