All Products
Search
Document Center

Elasticsearch:Kelola data Heartbeat dengan ILM

Last Updated:Mar 26, 2026

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

  1. 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.

  2. 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.

  3. Langkah 3: Buat kebijakan ILM

    Gunakan API kebijakan ILM untuk membuat kebijakan manajemen siklus hidup yang menentukan kondisi rollover dan pengarsipan indeks.

  4. Langkah 4: Hubungkan kebijakan ILM ke templat indeks

    Asosiasikan kebijakan ILM dengan templat indeks Heartbeat.

  5. 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.

  6. 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

  1. 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_type untuk warm node adalah warm, bukan cold. Hal ini karena jenis node ini sesuai dengan tier warm dalam arsitektur Elasticsearch asli.
    1. 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_type ke parameter startup node:

      • Node data hot: -Enode.attr.box_type=hot

      • Node data warm: -Enode.attr.box_type=warm

      Node data hanya menjadi hot node setelah Anda mengaktifkan node warm.
    2. Masuk ke konsol Kibana untuk kluster tersebut. Untuk informasi selengkapnya, lihat Hubungkan ke kluster menggunakan Kibana.

    3. Di panel navigasi sebelah kiri, klik Dev Tools.

    4. Di Console, jalankan perintah berikut untuk melihat atribut hot dan warm dari node.

      GET _cat/nodeattrs?v&h=host,attr,value

      Jika hasilnya mencantumkan node hot dan warm, kluster tersebut mendukung arsitektur hot-warm.

  2. Aktifkan pembuatan indeks otomatis untuk kluster. Untuk informasi selengkapnya, lihat Aktifkan pembuatan indeks otomatis dengan mengonfigurasi parameter YML.

  3. 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.

  1. Unduh dan ekstrak paket instalasi Heartbeat.

  2. 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.

    Penting

    Jika 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.

  3. 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.

  1. Masuk ke konsol Kibana untuk instans Alibaba Cloud Elasticsearch Anda. Untuk informasi selengkapnya, lihat Hubungkan ke kluster menggunakan konsol Kibana.

  2. Di panel navigasi sebelah kiri, klik Management.

  3. Di bagian Elasticsearch, klik Index Lifecycle Policies.

  4. Di daftar Index lifecycle policies, temukan kebijakan heartbeat-policy, lalu klik Actions > Add policy to index template.

  5. Di kotak dialog yang muncul, pilih templat indeks dari daftar Index template dan masukkan alias indeks di kotak teks Alias for rollover index.

  6. 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.

  1. Di halaman Management, di bagian Elasticsearch, klik Index Management.

  2. Di daftar Index management, temukan indeks target dan klik nama indeks tersebut.

  3. Di halaman Summary, pilih Manage > Remove lifecycle policy untuk menghapus kebijakan Heartbeat default.

  4. Di kotak dialog yang muncul, klik Remove policy.

  5. Kemudian, pilih Manage > Add lifecycle policy.

  6. 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:

Penting

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"
  }
}