配置文件编辑

配置文件的默认位置是 ~/.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 基本身份验证密码

id编辑

这应该是 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 文件路径中。

默认值为空,这将导致记录到 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 日志流量。