首页 > 解决方案 > 架构错误:curator 中字典值 @ data['actions'] 的预期字典

问题描述

我已经安装curator-5.8.1了,但从第一天起就可以看到它不起作用。

出现以下错误/var/log/curator_snapshot_backup.log

2021-07-21 02:00:02,232 ERROR     Schema error: expected dict for dictionary value @ data['actions']
2021-07-22 02:00:05,408 ERROR     Schema error: expected dict for dictionary value @ data['actions']
2021-07-23 02:00:08,351 ERROR     Schema error: expected dict for dictionary value @ data['actions']

下面是要运行的 cron 条目

#Ansible: Curator Delete indices
0 0 * * * /root/curatorvenv/bin/python3 /opt/curator-5.8.1/run_curator.py --config /opt/curator-5.8.1/curator.yaml /opt/curator-5.8.1/actions/delete_indices.yml
#Ansible: Curator Backup all indices
0 2 * * * /root/curatorvenv/bin/python3 /opt/curator-5.8.1/run_curator.py --config /opt/curator-5.8.1/curator.yaml /opt/curator-5.8.1/actions/snapshot_backup.yml >> /var/log/curator_snapshot_backup.log 2>&1

配置文件 -

猫 /opt/curator-5.8.1/curator.yaml

---
# Ansible managed
# Remember, leave a key empty if there is no value.  None will be a string,
# not a Python "NoneType"
client:
  hosts: ['http://10.191.191.100:5200', 'http://10.191.191.101:5200', 'http://10.191.191.102:5200']
  port: 5200
  url_prefix:
  use_ssl: False
  certificate:
  client_cert:
  client_key:
  aws_key:
  aws_secret_key:
  aws_region:
  ssl_no_validate: False
  http_auth: elastic:xxx
  timeout: 30
  master_only: False

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

删除操作是

猫 /opt/curator-5.8.1/actions/delete_indices.yml

# Ansible managed
actions:
  1:
    action: delete_indices
    description: >-
      Delete indices older than 60 days (based on index name).
    options:
      ignore_empty_list: True
      timeout_override:
      continue_if_exception: True
      disable_action: False
    filters:
    - filtertype: pattern
      kind: prefix
      value: metricbeat
      exclude:
    - filtertype: age
      source: name
      direction: older
      timestring: "%Y.%m.%d"
      unit: days
      unit_count: 60
      exclude:
  2:
    action: delete_indices
    description: >-
      Delete indices older than 60 days (based on index name).
    options:
      ignore_empty_list: True
      timeout_override:
      continue_if_exception: True
      disable_action: False
    filters:
    - filtertype: pattern
      kind: prefix
      value: heartbeat
      exclude:
    - filtertype: age
      source: name
      direction: older
      timestring: "%Y.%m.%d"
      unit: days
      unit_count: 60
      exclude:
  3:
    action: delete_indices
    description: >-
      Delete indices older than 60 days (based on index name).
    options:
      ignore_empty_list: True
      timeout_override:
      continue_if_exception: True
      disable_action: False
    filters:
    - filtertype: pattern
      kind: prefix
      value: filebeat
      exclude:
    - filtertype: age
      source: name
      direction: older
      timestring: "%Y.%m.%d"
      unit: days
      unit_count: 60
      exclude:
  4:
    action: delete_indices
    description: >-
      Delete indices older than 60 days (based on index name).
    options:
      ignore_empty_list: True
      timeout_override:
      continue_if_exception: True
      disable_action: False
    filters:
    - filtertype: pattern
      kind: prefix
      value: .monitoring
      exclude:
    - filtertype: age
      source: name
      direction: older
      timestring: "%Y.%m.%d"
      unit: days
      unit_count: 3
      exclude:
[root@ ~]# cat /opt/curator-5.8.1/actions/snapshot_backup.yml
# Ansible managed
actions:
[root@ ~]#

有人可以指出问题出在哪里吗?

谢谢,

标签: elasticsearchelasticsearch-curator

解决方案


这里的某些东西很可能导致 YAML 被误解。间距可能不好。使用任何 yml 验证器来验证您的 yml 文件。


推荐阅读