Elastic Curator 的配置和运行

Elastic Curator 的配置和运行

elasticsearch索引的管理工具curator4的配置和运行详解,这个是elastic官方提供的工具.

Singleton Command Line Interface

运行:

curator_cli [OPTIONS] COMMAND [ARGS]...
# 如果用不指定的Options连接es,可以指定curator.yml配置文件读取连接es和curator的参数
# 默认配置文件~/.curator/curator.yml
curator_cli --config /PATH/TO/curator.yml COMMAND [ARGS]...

# 帮助命令
curator_cli --help
curator_cli show_indices --help

# 例子
curator_cli --host 192.168.1.36:9200 show_indices

新版的curator_cli命令行工具对条件的匹配已经改了,
需要使用--filter_list JSON 的格式来过滤。(感觉已经没帮助可查了,用起来变得复杂- -!)

# 例如查看索引,需要使用--filter_list来过滤需要的索引
curator_cli --host 192.168.13.36:9200 show_indices  --filter_list '[{"filtertype":"age","source":"creation_date","direction":"older","unit":"days","unit_count":13},{"filtertype":"pattern","kind":"prefix","value":"logstash"}]'

这样还不如就用这个了:
curator [--config CONFIG.YML] [--dry-run] ACTION_FILE.YML

Command Line Interface

运行:

curator [--config CONFIG.YML] [--dry-run] ACTION_FILE.YML

  --config CONFIG.YML    curator配置文件,配置连接es等参数,
                         默认为~/.curator/curator.yml
  --dry-run              测试运行
  ACTION_FILE.YML        YAML actionfile指定执行操作的文件

ACTION_FILE.YML

ACTION_FILE.YML文件用于配置curator需要执行的操作。

https://www.elastic.co/guide/en/elasticsearch/client/curator/current/actionfile.html

curator_actions_cron.yml

主要用于配置curator定时执行任务,
将运行命令放在crontab中在每日凌晨0点过后执行,
用于清理和优化es的索引。

---
actions:
  1:
    action: delete_indices
    description: "删除过期索引"
    options:
      # action开关,为True表示不执行这个action,默认False
      disable_action: False
      # 如果为True,则在filters空列表时,继续下一个action处理而不是退出程序。
      ignore_empty_list: True
      # 发现错误后,继续执行下一个索引操作,默认False
      continue_if_exception: True
    filters:
    # 是否排除隐藏索引,如.kibana
    - filtertype: kibana
      exclude: True
    # 是否排除open状态的索引
    - filtertype: opened
      exclude: True
    # 处理30天前的索引
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 30
      exclude: False
  2:
    action: allocation
    description: "冷热数据分离任务:将非当天索引从hot节点迁移到stale节点。"
    options:
      # action开关,为True表示不执行这个action,默认False
      disable_action: False
      # ignore_empty_list标识忽略选项,默认False,
      # 如果为True,则在filters空列表时,继续下一个action处理而不是退出程序。
      ignore_empty_list: True
      # 发现错误后,继续执行下一个索引操作,默认False
      continue_if_exception: True
      allocation_type: include
      key: zone
      value: stale
      wait_for_completion: False
    filters:
    # 是否排除隐藏索引,如.kibana
    - filtertype: kibana
      exclude: True
    # 是否排除open状态的索引
    - filtertype: opened
      exclude: False
    # 处理1天前的索引
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 1
      exclude: False
  3:
    action: forcemerge
    description: "强制归并索引segments,优化es性能"
    options:
      # action开关,为True表示不执行这个action,默认False
      disable_action: False
      # ignore_empty_list标识忽略选项,默认False,
      # 如果为True,则在filters空列表时,继续下一个action处理而不是退出程序。
      ignore_empty_list: True
      # 发现错误后,继续执行下一个索引操作,默认False
      continue_if_exception: True
      max_num_segments: 1
      delay:
    filters:
    # 是否排除隐藏索引,如.kibana
    - filtertype: kibana
      exclude: False
    # 是否排除open状态的索引
    - filtertype: opened
      exclude: False
    # 处理1天前的索引
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 2
      exclude: False
  4:
    action: close
    description: "关闭匹配的索引,减少es内存占用"
    options:
      # action开关,为True表示不执行这个action,默认False
      disable_action: False
      # 如果为True,则在filters空列表时,继续下一个action处理而不是退出程序。
      ignore_empty_list: True
      # 发现错误后,继续执行下一个索引操作,默认False
      continue_if_exception: True
      # close索引前是否删除aliases
      delete_aliases: False
    filters:
    # 是否排除隐藏索引,如.kibana
    - filtertype: kibana
      exclude: True
    # 是否排除open状态的索引
    - filtertype: opened
      exclude: False
    # 处理7天前的索引
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 7
      exclude: False

curator_actions_cmd.yml

主要用于需要手动处理的es索引任务。

---
actions:
  1:
    action: open
    description: "open匹配的索引"
    options:
      # action开关,为True表示不执行这个action,默认False 【记得手动开启action】
      disable_action: True
      # 如果为True,则在filters空列表时,继续下一个action处理而不是退出程序。
      ignore_empty_list: True
      # 发现错误后,继续执行下一个索引操作,默认False
      continue_if_exception: True
    # 下面开始匹配需要执行的任务的索引 【记得手动修改filters条件】
    filters:
    - filtertype: closed
      exclude: False
    # 是否排除open状态的索引
    - filtertype: opened
      exclude: True
    # 是否排除隐藏索引,如.kibana
    - filtertype: kibana
      exclude: True
    # 主要在这里匹配索引的时间
    - filtertype: age
      source: name
      # direction值为: younger|older
      direction: younger
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 14
      exclude: False
    # 这里匹配索引名称
    - filtertype: pattern
      # kind值: prefix|suffix|timestring|regex
      kind: prefix
      value: logstash-
      exclude: False

Environment Variables

环境变量可以应用与执行curator和curator_cli命令。

环境变量支持写入CONFIG.YML和ACTION_FILE.YML。

https://www.elastic.co/guide/en/elasticsearch/client/curator/current/envvars.html

CONFIG.YML

https://www.elastic.co/guide/en/elasticsearch/client/curator/current/configfile.html

CONFIG.YML是curator和curator_cli的全局配置文件。

在使用命令时,如果不指定配置文件,默认读取文件:

~/.curator/curator.yml

curator.yml

---
# Remember, leave a key empty if there is no value.  None will be a string,
# not a Python "NoneType"
client:
  hosts:
    - 10.0.0.1
    - 10.0.0.2:9200
    - 10.0.0.3:9201
  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']

curator4版本当前的坑说明

curator当前在filters中的age类型中对时间存在时差问题.

原因是,这个age对时间的计算形式如下:

point_of_reference = epoch - ((number of seconds in unit) * unit_count)

<point_of_reference>就是计算出来的时间
<epoch>是当前时间的utc时间
<number of seconds in unit>就是配置的day或hours单位的秒数,就是配置的unit换算来的.
<unit_count>就是unit_count值

curator直接是把<point_of_reference>这个时间拿来匹配索引的时间,比如索引名称的后缀时间%Y.%m.%d

由这里很明显的知道了由于<epoch>是utc时间,所以<point_of_reference>也utc时间.
那么,中国的和utc时间是要+8小时的,所以这里匹配出来的时间要再加8小时间才是对的.

当前看似官方也知道这个问题,后面的版本可能会再换算一个native时区的时间吧.

当前可以这样解决:
在换算时间的时候,有意识的先扣掉8个小时再换算,这样就可以解决问题了:

比如要获取前一天是索引,改成这样:
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: hours
      unit_count: 16
      exclude: False
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容

  • 1、ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段:以下内容来自:http://bai...
    螺旋上升的世界阅读 2,993评论 0 20
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,566评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,714评论 6 342
  • 计划的在完美,也敌不过意志力薄弱
    咣当xx阅读 86评论 0 0
  • 想买大福, 可素家里的冰箱被麻麻买的临期酸奶塞的满满的。 此时此刻,我觉得我的心比冰箱还要塞。
    禾阿乃阅读 219评论 0 1