All Products
Search
Document Center

Elasticsearch:Kelola data Heartbeat dengan ILM

Last Updated:Jun 04, 2026

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

  1. Langkah 1: Buat dan konfigurasikan kluster hot-warm

    Buat kluster hot-warm, aktifkan pembuatan indeks otomatis, dan konfigurasikan daftar putih IP akses publik.

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

  3. Langkah 3: Buat kebijakan ILM

    Buat kebijakan siklus hidup yang menentukan kondisi rollover dan pengarsipan indeks.

  4. Langkah 4: Kaitkan kebijakan ILM dengan templat indeks

    Kaitkan kebijakan ILM dengan templat indeks Heartbeat.

  5. Langkah 5: Terapkan kebijakan ILM ke indeks

    Terapkan kebijakan ILM ke indeks Heartbeat awal agar semua indeks berikutnya mewarisinya.

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

  1. 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_type untuk node warm adalah warm (bukan cold), sesuai dengan tier warm di 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 berfungsi sebagai node hot setelah node warm diaktifkan.
    2. Masuk ke konsol Kibana kluster tersebut. Hubungkan ke kluster menggunakan Kibana.

    3. Di panel navigasi kiri, klik Dev Tools.

    4. Di Console, jalankan perintah berikut untuk melihat atribut node kluster.

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

      Jika respons mencakup node hot dan warm, kluster mendukung arsitektur hot-warm.

  2. Aktifkan pembuatan indeks otomatis untuk kluster target. Aktifkan pembuatan indeks otomatis dengan mengonfigurasi parameter YML.

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

  1. Unduh dan ekstrak paket instalasi Heartbeat.

  2. 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 true untuk 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-000001 menjadi heartbeat-2020.04.29-000002).

    username

    Default: elastic.

    password

    Kata sandi untuk pengguna elastic, ditentukan saat pembuatan instans. Setel ulang kata sandi 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 menulis ulang templat indeks.

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

  1. Masuk ke konsol Kibana instans Elasticsearch Anda. Hubungkan ke kluster menggunakan Kibana.

  2. Di panel navigasi kiri, klik Management.

  3. Di bagian Elasticsearch, klik Index Lifecycle Policies.

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

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

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

  1. Di halaman Management, buka bagian Elasticsearch dan klik Index Management.

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

  3. Di halaman Summary, klik Manage > Remove lifecycle policy untuk menghapus kebijakan default yang disertakan dengan Heartbeat.

  4. Di kotak dialog konfirmasi, klik Remove policy.

  5. Kemudian, klik Manage > Add lifecycle policy.

  6. Di kotak dialog, pilih heartbeat-policy dari 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:

Penting

Interval yang pendek meningkatkan beban node. Seimbangkan responsivitas kebijakan dengan kinerja kluster.

PUT _cluster/settings
{
  "transient": {
    "indices.lifecycle.poll_interval":"1m"
  }
}