快轉到主要內容
  1. 文章/

ElasticSearch Curator

·1 分鐘

Curator 一個用來管理 ElasticSearch indices/snapshots 的工具

之前有用這個來刪除 indices,但是因為之前用的指令比較簡單,都是統一刪除 21 天前的資料
現在裡面資料比較複雜,所以需要做一些變化
原本以為是不是下兩次指令就好,現在發現可以一次指定多個設定一次做~

參考文件 - Curator Guide

CONFIG #

連接 ElasticSearch 所需要的設定檔案,預設是應該放在 ~/.curator/curator.yml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
client:
  hosts:
    - es
  port: 9200
  url_prefix:
  use_ssl: False
  certificate:
  client_cert:
  client_key:
  ssl_no_validate: False
  http_auth:
  timeout: 30
  master_only: False

logging:
  loglevel: INFO
  logfile:
  logformat: default
  blacklist: ['elasticsearch', 'urllib3']

Action #

我這邊因為會有兩組 indices
其中我想 topbeat 資料比較多,保留七天。
packetbeat 資料比較少,可以保留久一點,所以我就分兩個 action 來設定

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
actions:
  1:
    action: delete_indices
    description: remove topbeat indices
    options:
      ignore_empty_list: True
      timeout_override:
      continue_if_exception: False
      disable_action:
    filters:
    - filtertype: pattern
      kind: prefix
      value: topbeat-
      exclude:
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 7
      exclude:
  2:
    action: delete_indices
    description: remove packetbeat indices
    options:
      ignore_empty_list: True
      timeout_override:
      continue_if_exception: False
      disable_action:
    filters:
    - filtertype: pattern
      kind: prefix
      value: packetbeat-
      exclude:
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 35
      exclude:

執行 #

接下來只需要執行下面指令就可以了~

1
> curator action.yml

Docker #

我把專案放在 Github 上面: elasticsearch-curator