配置文件

编辑

配置文件的默认位置是 ~/.curator/curator.yml,但可以使用 命令行 上的 --config 标志指定其他位置。

您可以在配置文件中使用 环境变量

配置文件包含客户端连接和日志记录设置。它看起来像这样

---
# Remember, leave a key empty if there is no value.  None will be a string,
# not a Python "NoneType"
elasticsearch:
  client:
    hosts:
      - http://127.0.0.1:9200
    cloud_id:
    ca_certs:
    client_cert:
    client_key:
    verify_certs:
    request_timeout: 30
  other_settings:
    master_only: False
    username:
    password:
    api_key:
      id:
      api_key:
      token:

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

这是一个 YAML 配置文件。两个根键必须是 elasticsearchlogging。此处将描述每个键的子键。

elasticsearch 根键的 client 子键还有其他可用键,其中许多键在 此处 列出。最常用的键(上面列出)描述如下

hosts

编辑

所有主机都必须采用 HTTP[S]://FQDN.DOMAIN.TLD:PORT 格式,否则将被拒绝,Curator 将退出并显示错误。唯一的例外是 HTTPS://FQDN.DOMAIN.TLD(无端口),在这种情况下,:443 是隐式的,实际上会自动追加。

如果 cloud_idhosts 键都已填充,则会抛出异常,并且 Curator 将退出。

hosts 定义可以是单个值

hosts: http://127.0.0.1:9200

或者以 3 种可接受的 YAML 方式呈现序列或数组中的多个值

Curator 每次只能处理一个集群。在 hosts 设置中包含来自多个集群的客户端将导致错误。

流程

hosts: [ "http://10.0.0.1:9200", "http://10.0.0.2:9200" ]

跨越

hosts: [ "http://10.0.0.1:9200",
    "http://10.0.0.2:9200" ]

hosts:
  - http://10.0.0.1:9200
  - http://10.0.0.2:9200

cloud_id

编辑

由于包含冒号,因此该值应封装在引号中

cloud_id: 'deployment_name:BIG_HASH_VALUE'

如果 cloud_idhosts 键都已填充,则会抛出异常,并且 Curator 将退出。

ca_certs

编辑

这应该是 CA 证书的文件路径,或者留空。

ca_certs:

此设置允许使用指定的 CA 证书文件来验证 Elasticsearch 使用的 SSL 证书。

没有默认值。

文件路径

可以按如下方式指定文件路径

对于 Windows

'C:\path\to\file'

对于 Linux、BSD、Mac OS

'/path/to/file'

建议在文件路径周围使用单引号,尤其是在 Windows 文件路径的情况下。

client_cert

编辑

这应该是客户端证书(公钥)的文件路径,或者留空。

client_cert:

允许使用指定的 SSL 客户端证书文件对 Elasticsearch 进行身份验证。该文件可能同时包含 SSL 客户端证书和 SSL 密钥,在这种情况下,client_key 不使用。如果指定 client_cert,并且指定的文件也不包含密钥,请使用 client_key 指定包含 SSL 密钥的文件。该文件必须采用 PEM 格式,并且密钥部分(如果使用)也必须采用 PEM 格式的未加密密钥。

文件路径

可以按如下方式指定文件路径

对于 Windows

'C:\path\to\file'

对于 Linux、BSD、Mac OS

'/path/to/file'

建议在文件路径周围使用单引号,尤其是在 Windows 文件路径的情况下。

client_key

编辑

这应该是客户端密钥(私钥)的文件路径,或者留空。

client_key:

允许使用指定的 SSL 客户端密钥文件对 Elasticsearch 进行身份验证。如果使用 client_cert 并且指定的文件也不包含密钥,请使用 client_key 指定包含 SSL 密钥的文件。密钥文件必须采用 PEM 格式的未加密密钥。

文件路径

可以按如下方式指定文件路径

对于 Windows

'C:\path\to\file'

对于 Linux、BSD、Mac OS

'/path/to/file'

建议在文件路径周围使用单引号,尤其是在 Windows 文件路径的情况下。

verify_certs

编辑

这应该是 TrueFalse 或留空。

verify_certs:

如果对 Elasticsearch 实例的访问受 SSL 加密保护,则可以将 verify_certs 设置为 False 以禁用 SSL 证书验证。

这样做的有效用例包括使用无法以其他方式验证的自签名证书,并且会生成错误消息。

verify_certs 设置为 False 可能会导致警告消息,提示您的 SSL 证书不受信任。这是预期行为。

默认值为 True

request_timeout

编辑

这应该是以秒为单位的整数,或者留空。

request_timeout:

您可以使用此设置更改默认客户端连接超时值。

默认值为 30(秒),通常不应更改为非常大的值。如果给定操作(例如 快照恢复强制合并)需要更长的超时时间,则可以通过在操作 选项 中设置 timeout_override 来覆盖每个操作的客户端超时时间。某些较长时间运行的操作具有默认覆盖值。

master_only

编辑

这应该是 TrueFalse 或留空。

master_only:

在某些情况下,主要是在自动部署中,将 Curator 安装在每个节点上是有意义的。但是您不希望它在每个节点上运行。通过将 master_only 设置为 True,这是可能的。它会测试并仅在选定的主节点上继续运行。

如果 master_onlyTrue,并且 hosts 的值超过一个,则 Curator 将引发异常。此设置应与 hosts 中的单个主机一起使用,因为其实用程序集中在部署到集群中的所有节点上。

默认值为 False

username

编辑

HTTP 基本身份验证用户名

password

编辑

HTTP 基本身份验证密码

这应该是 API 密钥对的 id 部分。

api_key:
  id:

此设置与另一个子键 api_key 结合使用,允许对 Elasticsearch 实例进行 API 密钥身份验证。

默认为空。

api_key

编辑

这应该是 API 密钥对的 api_key 部分。

api_key:
  api_key:

此设置与另一个子键 id 结合使用,允许对 Elasticsearch 实例进行 API 密钥身份验证。

默认为空。

token

编辑

这应该是 API 密钥对的 base64 编码表示形式。

api_key:
  token:

此设置将覆盖为 api_keyidapi_key 子键提供的任何值。

默认为空。

loglevel

编辑

这应该是 CRITICALERRORWARNINGINFODEBUG 或留空。

loglevel:

设置要显示的最小可接受日志严重性。

  • CRITICAL 仅显示严重消息。
  • ERROR 仅显示错误和严重消息。
  • WARNING 将显示错误、警告和严重消息。
  • INFO 将显示信息、错误、警告和严重消息。
  • DEBUG 将显示调试消息,以及以上所有消息。

默认值为 INFO

logfile

编辑

这应该是日志文件的路径,或者留空。

logfile:

文件路径

可以按如下方式指定文件路径

对于 Windows

'C:\path\to\file'

对于 Linux、BSD、Mac OS

'/path/to/file'

建议在文件路径周围使用单引号,尤其是在 Windows 文件路径的情况下。

默认值为 empty,这将导致日志记录到 STDOUT 或控制台。

logformat

编辑

这应该是 defaultjsonlogstashecs 或留空。

logformat:

default 格式如下所示

2016-04-22 11:53:09,972 INFO      Action #1: ACTIONNAME

jsonlogstash 格式如下所示

{"@timestamp": "2016-04-22T11:54:29.033Z", "function": "cli", "linenum": 178,
"loglevel": "INFO", "message": "Action #1: ACTIONNAME", "name": "curator.cli"}

ecs 格式如下所示

{"@timestamp":"2020-02-22T11:55:00.022Z","log.level":"info","message":"Action #1:
ACTIONNAME","ecs":{"version":"1.6.0"},"log":{"logger":"curator.cli","origin":
{"file":{"line":178,"name":"cli.py"},"function":"run"},"original":"Action #1:
ACTIONNAME"},"process":{"name":"MainProcess","pid":12345,"thread":
{"id":123456789886543,"name":"MainThread"}}}

默认值为 default

blacklist

编辑

这应该是空数组 []、日志处理程序字符串数组或留空。

blacklist: ['elastic_transport', 'urllib3']

默认值为 ['elastic_transport', 'urllib3'],这将导致 elastic_transporturllib3 Python 模块的日志输出。这些日志可能非常冗长,因此除非您需要它们来调试问题,否则您应该接受默认值。

如果您确实需要对问题进行故障排除,请将 blacklist 设置为 [],这是一个空数组。不设置它将导致默认行为,即过滤掉 elastic_transporturllib3 日志流量。