配置文件
编辑配置文件编辑
配置文件的默认位置是 ~/.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 配置文件。两个根键必须是 elasticsearch
和 logging
。这里将描述每个键的子键。
elasticsearch
根键的 client
子键还有其他可用的键,其中许多列在 此处。最常用的(上面列出的)描述如下
hosts编辑
所有主机都必须采用 HTTP[S]://FQDN.DOMAIN.TLD:PORT
形式,否则它们将被拒绝,Curator 将退出并显示错误。唯一的例外是 HTTPS://FQDN.DOMAIN.TLD
(没有端口),在这种情况下,:443
是隐式的,实际上是自动附加的。
如果 cloud_id
和 hosts
键都被填充,则会抛出异常,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_id
和 hosts
键都被填充,则会抛出异常,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编辑
这应该是 True
、False
或留空。
verify_certs:
如果对 Elasticsearch 实例的访问受 SSL 加密保护,您可以将 verify_certs
设置为 False
以禁用 SSL 证书验证。
这样做的有效用例包括使用无法以其他方式验证的自签名证书,并且会生成错误消息。
将 verify_certs
设置为 False
可能会导致警告消息,指出您的 SSL 证书不受信任。这是预期的行为。
默认值为 True
。
request_timeout编辑
这应该是以秒为单位的整数,或者留空。
request_timeout:
您可以使用此设置更改默认客户端连接超时值。
默认值为 30
(秒),通常不应更改为非常大。如果给定操作(例如 快照、还原 或 强制合并)需要更长的超时,可以通过在操作 选项 中设置 timeout_override 来覆盖每个操作的客户端超时。其中一些运行时间较长的操作具有默认的覆盖值。
master_only编辑
这应该是 True
、False
或留空。
master_only:
在某些情况下,主要是在自动部署中,在每个节点上安装 Curator 是有意义的。但是您不希望它在每个节点上都运行。通过将 master_only
设置为 True
,这是可能的。它会进行测试,并且只会在作为选定主节点的节点上继续运行。
默认值为 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_key
的 id
或 api_key
子键提供的任何值。
默认值为空。
loglevel编辑
这应该是 CRITICAL
、ERROR
、WARNING
、INFO
、DEBUG
或留空。
loglevel:
设置要显示的最低可接受日志严重性。
-
CRITICAL
将仅显示严重消息。 -
ERROR
将仅显示错误和严重消息。 -
WARNING
将显示错误、警告和严重消息。 -
INFO
将显示信息、错误、警告和严重消息。 -
DEBUG
将显示调试消息,以及上述所有消息。
默认值为 INFO
。
logfile编辑
这应该是日志文件的路径,或者留空。
logfile:
文件路径
文件路径可以指定如下
对于 Windows
'C:\path\to\file'
对于 Linux、BSD、Mac OS
'/path/to/file'
鼓励在文件路径周围使用单引号,尤其是在 Windows 文件路径中。
默认值为空,这将导致记录到 STDOUT
或控制台。
logformat编辑
这应该是 default
、json
、logstash
、ecs
或留空。
logformat:
default
格式如下所示
2016-04-22 11:53:09,972 INFO Action #1: ACTIONNAME
json
或 logstash
格式如下所示
{"@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_transport
和 urllib3
Python 模块的日志将*不会*输出。这些日志可能会非常冗长,因此除非您需要它们来调试问题,否则您应该接受默认值。
如果您确实需要排查问题,请将 blacklist
设置为 []
,这是一个空数组。将其保留为未设置将导致默认行为,即过滤掉 elastic_transport
和 urllib3
日志流量。