本地英文版地址: ../en/monitoring-settings.html
默认情况下,监控是开启的,但数据收集是禁用的。
要开启数据收集,使用 xpack.monitoring.collection.enabled
设置。
你可以在文件 elasticsearch.yml
中配置这些监控设置。
你还可以使用集群更新设置 API动态的更新一部分设置。
集群设置优先于elasticsearch.yml
文件中的设置。
要调整监控数据在监控UI中的显示方式,请在kibana.yml
中配置xpack.monitoring
设置。
若要控制如何从 Logstash 收集监控数据,请在logstash.yml
中配置监控设置。
更多信息请参考 监控一个集群。
常规监控设置
-
xpack.monitoring.enabled
-
设置为
true
(默认) 以在节点上启用 Elasticsearch X-Pack 对 Elasticsearch 的监控。要启用数据收集,必须设置
xpack.monitoring.collection.enabled
为true
。默认为false
。
监控收集设置 (Monitoring Collection Settings)
xpack.monitoring.collection
设置控制如何从 Elasticsearch 节点收集数据。可以使用 集群更新设置 API 动态地更新所有监控收集的设置。
-
xpack.monitoring.collection.enabled
(动态) -
[6.3.0]
在 6.3.0 版本中添加的。
设置为
true
以开启监控数据的收集。当这个设置为false
(默认值)时,Elasticsearch 监控数据不会被收集,且所有来自其他源(比如Kibana,Beats和 Logstash)的监控数据都会被忽略。 -
xpack.monitoring.collection.interval
(动态) -
从 7.0.0 开始,不再支持设置为
-1
以禁用数据收集。[6.3.0]在 6.3.0 版本中废弃。请使用 设置xpack.monitoring.collection.enabled
为false
代替之。控制收集数据样本的频率。默认为
10s
。如果你修改了收集的间隔时间,请在kibana.yml
中将xpack.monitoring.min_interval_seconds
选项设置为相同的值。 -
xpack.monitoring.elasticsearch.collection.enabled
(动态) -
控制是否应收集有关 Elasticsearch 集群的统计数据。默认为
true
。与xpack.monitoring.collection.enabled
不同的是,它允许你启用或禁用所有监控的数据收集。然而,该设置只是禁用 Elasticsearch 数据的收集,仍然允许其他数据(例如,Kibana、Logstash、Beats 或 APM 服务器监控数据)通过该集群。 -
xpack.monitoring.collection.cluster.stats.timeout
(动态) -
(time value) 收集集群统计信息的超时时间。默认为
10s
。 -
xpack.monitoring.collection.node.stats.timeout
(动态) -
(time value) 收集节点统计信息的超时时间。默认为
10s
。 -
xpack.monitoring.collection.indices
(动态) -
控制监控要从哪些索引收集数据。默认为所有索引。
以逗号分隔的列表形式指定索引名称,例如
test1,test2,test3
。 名称可以包含通配符,比如test*
。可以用-
作为前缀来显式指定要排除的索引。 比如,test*,-test3
将监控所有以test
开头的索引,但是test3
除外。 系统索引,像 .security* 或 .kibana* 总是以.
开头的,通常是应该被监控的。 考虑添加.*
到索引列表中,以确保对系统索引的监控,比如.*,test*,-test3
。 -
xpack.monitoring.collection.index.stats.timeout
(动态) -
(time value) 收集索引的统计信息的超时时间。默认为
10s
。 -
xpack.monitoring.collection.index.recovery.active_only
(动态) -
控制是否要收集所有的 恢复(reovery)。设置为
true
,只收集活动中的恢复。默认为false
. -
xpack.monitoring.collection.index.recovery.timeout
(动态) -
(time value) 收集恢复信息的超时时间。默认为
10s
。 -
xpack.monitoring.history.duration
(动态) -
(time value) 保留期限,超过该期限,由监控导出程序创建的索引将被自动删除。默认为
7d
(7天)。这个设置有一个最小值
1d
(1天),以确保有一些内容受到监控,且不可以禁用。这个设置只影响
local
类型的导出程序。使用http
导出程序建立的索引不会被自动删除。 -
xpack.monitoring.exporters
- 配置代理存储监控数据的位置。默认情况下,代理使用本地导出器,该导出器在其安装的集群上索引监控数据。使用 HTTP 导出器将数据发送到单独的监控集群。 更多信息,请参考 本地导出器设置, HTTP 导出器设置 以及 监控是如何工作的.
本地导出器设置 (Local Exporter Settings)
local
导出器是监控使用的默认的导出器。顾名思义,它将数据导出到本地(local)
集群,这意味着不需要太多配置。
如果你未提供任何(any)导出器,那么监控会自动为你创建一个。只要提供了任意一个导出器,都不会再添加默认值。
xpack.monitoring.exporters.my_local: type: local
-
type
-
本地导出器的值必须始终是
local
,且是必需的。 -
use_ingest
-
是否为集群提供 占位符管道(placeholder pipeline),并为每个批量请求提供 管道处理器(pipeline processor)。默认为
true
。如果禁用,则意味着它将不会使用管道,这意味着未来的版本无法自动将批量请求升级为 符合未来要求的(future-proof) 请求。 -
cluster_alerts.management.enabled
-
是否为此集群创建集群警报。默认值为
true
。要使用此特性,必须启用 Watcher。如果你用的是基础许可证,集群警报不会显示。
HTTP导出器设置 (HTTP Exporter Settings)
下面列出了http
导出器可以提供的设置。所有设置都在选择了导出器名称之后显示:
xpack.monitoring.exporters.my_remote: type: http host: ["host:port", ...]
-
type
-
HTTP 导出器的值必须始终是
http
,且是必需的。 -
host
-
host
支持多种格式,既可以是数组,也可以是单个值。 支持的格式包括hostname
,hostname:port
,http://hostname
http://hostname:port
,https://hostname
以及https://hostname:port
。主机不能被假设,必须真实存在。 如果未在host
字符串中指定,则默认的 模式(schema) 始终是http
,默认的 端口(port) 始终是9200
。xpack.monitoring.exporters: example1: type: http host: "10.1.2.3" example2: type: http host: ["http://10.1.2.4"] example3: type: http host: ["10.1.2.5", "10.1.2.6"] example4: type: http host: ["https://10.1.2.3:9200"]
-
auth.username
-
如果提供了
auth.secure_password
Huoauth.password
,则 username 是必须的。 -
auth.secure_password
(安全设置, 可重新加载的) -
auth.username
的密码。 如果还指定了auth.password
,则它优先级更高。 -
auth.password
-
auth.username
的密码。 如果还指定了auth.secure_password
,则它会被忽略。
在 7.7.0 中废弃!
请使用 auth.secure_password
替代之。
-
connection.timeout
-
(time value) HTTP 连接等待套接字为请求打开的时间。默认值为
6s
。 -
connection.read_timeout
-
(time value) HTTP 连接等待套接字发回响应的时间。默认为
10 * connection.timeout
(当 time_out 和 real_timeout 两个都未设置时为60s
)。 -
ssl
- 每个 HTTP 导出器可以定义自己的 TLS / SSL 设置或继承它们。 参考下面的 TLS / SSL 部分。
-
proxy.base_path
-
作为任何传出请求前缀的基本路径,诸如
/base/path
(例如,批量请求将作为/base/path/_bulk
发送)。没有默认值。 -
headers
-
添加到每个请求中的可选的 header,有助于通过代理路由请求。
xpack.monitoring.exporters.my_remote: headers: X-My-Array: [abc, def, xyz] X-My-Header: abc123
基于数组的 header 被发送
n
次,其中n
是数组的大小。 不能设置Content-Type
和Content-Length
。 监控代理创建的任何 header 都将覆盖此处定义的任何内容。 -
index.name.time_format
-
一种机制,用于更改默认情况下每日监控索引的默认日期后缀。
默认为
yyyy.MM.dd
,这就是每天创建索引的原因。 -
use_ingest
-
是否为集群提供 占位符管道(placeholder pipeline),并为每个批量请求提供 管道处理器(pipeline processor)。默认为
true
。如果禁用,则意味着它将不会使用管道,这意味着未来的版本无法自动将批量请求升级为 符合未来要求的(future-proof) 请求。 -
cluster_alerts.management.enabled
-
是否为此集群创建集群警报。默认为
true
。 要使用此特性,必须启用 Watcher。如果你用的是基础许可证,集群警报不会显示。 -
cluster_alerts.management.blacklist
-
防止创建特定的集群警报。它还会删除当前集群中已经存在的任何可用的观察器。
可以将以下任何观察标识符添加到阻止的警报列表中:
-
elasticsearch_cluster_status
-
elasticsearch_version_mismatch
-
elasticsearch_nodes
-
kibana_version_mismatch
-
logstash_version_mismatch
-
xpack_license_expiration
比如:
["elasticsearch_version_mismatch","xpack_license_expiration"]
-
可以配置以下 TLS/SSL 设置。
-
xpack.monitoring.exporters.$NAME.ssl.supported_protocols
-
支持的协议版本。可用的协议有:
SSLv2Hello
,SSLv3
,TLSv1
,TLSv1.1
,TLSv1.2
,TLSv1.3
。 如果 JVM 的提供者支持 TLSv1.3,则默认为TLSv1.3,TLSv1.2,TLSv1.1
。 否则,默认为TLSv1.2,TLSv1.1
。如果
xpack.security.fips_mode.enabled
为true
,则你不能使用SSLv2Hello
或SSLv3
。 参考 FIPS 140-2。 -
xpack.monitoring.exporters.$NAME.ssl.verification_mode
-
控制证书的验证。有效值包括:
-
full
,验证所提供的证书是否由可信机构(CA)签名,还验证服务器的主机名(或IP地址)是否与证书中标识的名称匹配。 -
certificate
,用于验证所提供的证书是否由可信机构(CA)签名,但不执行任何主机名验证。 -
none
,不验证服务器的证书。 这种模式禁用了 SSL/TLS 的许多安全优势,并且应该在非常谨慎的考虑之后才使用。 它主要用作尝试解决 TLS 错误时的临时诊断机制;强烈建议不要在生产集群上使用它。默认为
full
-
-
xpack.monitoring.exporters.$NAME.ssl.cipher_suites
-
支持的密码套件因使用的 Java 版本而异。例如,对于版本11,默认值为
TLS_AES_256_GCM_SHA384
,TLS_AES_128_GCM_SHA256
,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
,TLS_RSA_WITH_AES_256_GCM_SHA384
,TLS_RSA_WITH_AES_128_GCM_SHA256
,TLS_RSA_WITH_AES_256_CBC_SHA256
,TLS_RSA_WITH_AES_128_CBC_SHA256
,TLS_RSA_WITH_AES_256_CBC_SHA
,TLS_RSA_WITH_AES_128_CBC_SHA
.上面列出的默认密码套件包括 TLSv1.3 密码和需要 Java 加密扩展(JCE)无限强度权限策略文件进行256位 AES 加密的密码。 如果 TLSv1.3 不可用,则 TLSv1.3 密码
TLS_AES_256_GCM_SHA384
和TLS_AES_128_GCM_SHA256
不会包括在默认列表中。 如果 256-bit AES 不可用,则名字中有AES_256
的密码不会包含在默认列表中。 最后,AES GCM 在 Java 11 之前的版本中存在已知的性能问题,只有在使用 Java 11 或更高版本时才会包含在默认列表中。有关更多信息,请参见Oracle的 Java加密体系结构文档 。
下列设置用于指定通过SSL/TLS连接通信时应使用的私钥、证书和可信证书。 私钥和证书是可选的,如果服务器需要客户端身份验证来进行PKI身份验证,就会使用它们。
使用PEM编码文件时,请使用以下设置:
-
xpack.monitoring.exporters.$NAME.ssl.key
- 包含私钥的PEM编码文件的路径。
-
xpack.monitoring.exporters.$NAME.ssl.key_passphrase
- 用于解密私钥的密码。因为密钥可能没有加密,所以这个值是可选的。
-
xpack.monitoring.exporters.$NAME.ssl.secure_key_passphrase
(安全设置) - 用于解密私钥的密码。 因为密钥可能没有加密,所以这个值是可选的。
-
xpack.monitoring.exporters.$NAME.ssl.certificate
- 指定与密钥关联的 PEM 编码证书(或证书链)的路径。
-
xpack.monitoring.exporters.$NAME.ssl.certificate_authorities
- 应该受信任的 PEM 编码证书文件的路径列表。
Java 密钥库文件(JKS)包含私钥、证书和应该信任的证书,使用时请使用以下设置:
-
xpack.monitoring.exporters.$NAME.ssl.keystore.path
- 包含私钥和证书的密钥库文件的路径。
-
xpack.monitoring.exporters.$NAME.ssl.keystore.password
- 密钥库的密码。
-
xpack.monitoring.exporters.$NAME.ssl.keystore.secure_password
(安全设置) - 密钥库的密码。
-
xpack.monitoring.exporters.$NAME.ssl.keystore.key_password
- 密钥库中密钥的密码。默认值是 密钥库密码(keystore password)。
-
xpack.monitoring.exporters.$NAME.ssl.keystore.secure_key_password
(安全设置) - 密钥库中密钥的密码。默认值是 密钥库密码(keystore password)。
-
xpack.monitoring.exporters.$NAME.ssl.truststore.path
- 包含要信任的证书的密钥库的路径。它必须是 Java密钥库(jks, Java keystore)或 PKCS#12 文件。
-
xpack.monitoring.exporters.$NAME.ssl.truststore.password
- 信任库(truststore) 的密码。
-
xpack.monitoring.exporters.$NAME.ssl.truststore.secure_password
(安全设置) - 信任库(truststore) 的密码。
Elasticsearch 可以配置为使用 PKCS#12 容器文件(.p12
或 .pfx
),它包含私钥、证书和应该被信任的证书。
PKCS#12 文件的配置方式与 Java 密钥库文件相同:
-
xpack.monitoring.exporters.$NAME.ssl.keystore.path
- 包含私钥和证书的密钥库文件的路径。
-
xpack.monitoring.exporters.$NAME.ssl.keystore.type
-
密钥库文件的格式。
它必须是
jks
或PKCS12
。 如果密钥库路径以 ".p12", ".pfx", or ".pkcs12" 结尾,则默认为PKCS12
。否则默认jks
。 -
xpack.monitoring.exporters.$NAME.ssl.keystore.password
- 密钥库的密码。
-
xpack.monitoring.exporters.$NAME.ssl.keystore.secure_password
(安全设置) - 密钥库的密码。
-
xpack.monitoring.exporters.$NAME.ssl.keystore.key_password
- 密钥库中密钥的密码。默认值是 密钥库密码(keystore password)。
-
xpack.monitoring.exporters.$NAME.ssl.keystore.secure_key_password
(安全设置) - 密钥库中密钥的密码。默认值是 密钥库密码(keystore password)。
-
xpack.monitoring.exporters.$NAME.ssl.truststore.path
- 包含要信任的证书的密钥库的路径。它必须是 Java密钥库(jks, Java keystore)或 PKCS#12 文件。
-
xpack.monitoring.exporters.$NAME.ssl.truststore.type
-
将此项设置为
PKCS12
以表明信任库(truststore)是一个 PKCS#12 文件。 -
xpack.monitoring.exporters.$NAME.ssl.truststore.password
- 信任库(truststore) 的密码。
-
xpack.monitoring.exporters.$NAME.ssl.truststore.secure_password
(安全设置) - 信任库(truststore) 的密码。
Elasticsearch 可以被配置为使用PKCS#11令牌,该令牌包含私钥、证书和应该被信任的证书。
PKCS#11 令牌需要在 JVM 级别进行额外配置,可以通过以下设置启用:
-
xpack.monitoring.exporters.$NAME.keystore.type
-
将此项设置为
PKCS11
,以指示应将 PKCS#11 令牌用作密钥库。 -
xpack.monitoring.exporters.$NAME.truststore.type
-
信任库(truststore) 文件的格式。
对于 Java 密钥库格式,使用
jks
。 对于 PKCS#12 文件,使用PKCS12
。对于 PKCS#11 令牌,使用PKCS11
。默认为jks
。
在配置 PKCS#11 令牌(JVM 被配置为用作 Elasticsearch 的密钥库或信任库)时,可以通过在所配置的上下文中将适当的值设置为ssl.truststore.password
或ssl.truststore.secure_password
来配置令牌的PIN。
由于只能配置一个 PKCS#11 令牌,因此在 Elasticsearch 中只能配置一个密钥库和信任库。
这反过来意味着只有一个证书可用于传输层和 http 层的 TLS。