本地英文版地址: ../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://hostnamehttp://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_passwordHuoauth.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。