L a y o f f s

ILM giúp tự động quản lý vòng đời index, nhưng nếu mỗi lần áp dụng ILM đều phải làm thủ công thì thật bất tiện.

Vì vậy, tôi cần một cách để tự động áp dụng ILM policy khi index được tạo.

 

Và đó là lý do có index template.

Index template cho phép thiết lập sẵn các cấu hình cho index mới khi nó được tạo.

Để hiểu rõ hơn, bạn có thể tham khảo bài viết này:

https://oboki.net/workspace/data-engineering/elasticsearch/elasticsearch-index-template/

 

[ElasticSearch] Index Template – oboki

 

oboki.net

 

Mục tiêu của tôi là:

Áp dụng tự động ILM policy (xóa index sau 7 ngày) cho các index được tạo hàng ngày.

Tôi sẽ sử dụng watch-history-ilm-policy, một ILM policy được tạo tự động, để xóa index sau 7 ngày.

 

Cách thực hiện rất đơn giản:

Sử dụng index template để khi một index cụ thể được tạo, watch-history-ilm-policy sẽ được áp dụng.

Chỉ cần thay đổi cấu hình của Fluentd.

 

1. Thêm file index-template.json

index_template.json: |-
  {
    "index_patterns": [
      "logstash-*"
    ],
    "settings": {
      "index": {
        "lifecycle": {
          "name": "watch-history-ilm-policy",
          "rollover_alias": ""
        }
      }
    }
  }

Trong index_patterns, điền tên của index cần áp dụng.

Trong settings.index.lifecycle.name, điền tên của ILM policy cần áp dụng.

2. Thêm cấu hình vào kubernetes.conf

kubernetes.conf: |-
  
    ...
      enable_ilm true
      #ilm_policy_id watch-history-ilm-policy
      #ilm_policy_overwrite false
      #ilm_policy {}
      #rollover_index true
      template_name delete-after-7days
      template_file /fluentd/etc/index_template.json
    ...
  
  
  ...

Nếu làm theo cách của tôi, hãy bỏ các dòng comment.

template_file là đường dẫn đến file index-template.json đã mount.

 

Nếu bạn muốn tự định nghĩa ILM policy, hãy bỏ comment ở các dòng liên quan và điền rule vào ilm_policy.

 

Chỉ cần cấu hình như vậy là xong!

 

Tôi định nghĩa cả hai file bằng cùng một configmap.

Để biết cách mount nhiều file từ một configmap, hãy tham khảo bài viết sau:

https://togomi.tistory.com/22

 

Mount multiple files with one configmap

k8s에서 하나의 configmap을 이용하여 여러 개의 파일을 마운트하는 법을 알아보자. 아래와 같이 하나의 configmap에서 여러 개의 파일을 만들 수 있다. 이해를 위해 파일이라고 했지만, 사실은 key-value

togomi.tistory.com

 

Đường dẫn mount của kubernetes.conf là /fluentd/etc/kubernetes.conf.