使用旧版收集器收集监控数据
编辑使用旧版收集器收集监控数据
编辑7.16 版本中已弃用。
使用 Elasticsearch Monitoring 插件收集和发送监控数据已被弃用。Elastic Agent 和 Metricbeat 是收集和发送监控数据到监控集群的推荐方法。如果您之前配置了旧版收集方法,则应迁移到使用 Elastic Agent 或 Metricbeat 收集方法。
这种收集有关 Elasticsearch 指标的方法涉及使用导出器将指标发送到监控集群。
高级监控设置使您可以控制数据收集的频率,配置超时以及设置本地存储的监控索引的保留期。您还可以调整监控数据的显示方式。
要了解一般监控信息,请参阅 监控集群。
-
配置您的集群以收集监控数据
-
验证集群中每个节点上的
xpack.monitoring.elasticsearch.collection.enabled
设置是否为true
(这是其默认值)。您可以在每个节点上的
elasticsearch.yml
文件中或作为动态集群设置在整个集群中指定此设置。如果启用了 Elasticsearch 安全功能,则您必须拥有monitor
集群权限才能查看集群设置,并拥有manage
集群权限才能更改它们。 -
将集群中每个节点上的
xpack.monitoring.collection.enabled
设置设置为true
。默认情况下,它是禁用的 (false
)。您可以在每个节点上的
elasticsearch.yml
文件中或作为动态集群设置在整个集群中指定此设置。如果启用了 Elasticsearch 安全功能,则您必须拥有monitor
集群权限才能查看集群设置,并拥有manage
集群权限才能更改它们。例如,使用以下 API 来查看和更改此设置
resp = client.cluster.get_settings() print(resp)
response = client.cluster.get_settings puts response
const response = await client.cluster.getSettings(); console.log(response);
GET _cluster/settings
resp = client.cluster.put_settings( persistent={ "xpack.monitoring.collection.enabled": True }, ) print(resp)
response = client.cluster.put_settings( body: { persistent: { 'xpack.monitoring.collection.enabled' => true } } ) puts response
const response = await client.cluster.putSettings({ persistent: { "xpack.monitoring.collection.enabled": true, }, }); console.log(response);
PUT _cluster/settings { "persistent": { "xpack.monitoring.collection.enabled": true } }
或者,您可以在 Kibana 中启用此设置。在侧边导航中,单击 监控。如果数据收集被禁用,系统会提示您将其打开。
-
可选:指定要监控的索引。
默认情况下,监控代理会从所有 Elasticsearch 索引收集数据。要从特定索引收集数据,请配置
xpack.monitoring.collection.indices
设置。您可以将多个索引指定为逗号分隔的列表,或者使用索引模式来匹配多个索引。例如:xpack.monitoring.collection.indices: logstash-*, index1, test2
您可以使用
-
前缀显式排除索引名称或模式。例如,要包含以test
开头的所有索引(test3
除外),您可以指定test*,-test3
。要包含系统索引(例如 .security 和 .kibana),请将.*
添加到包含名称的列表中。例如.*,test*,-test3
- 可选:指定收集监控数据的频率。
xpack.monitoring.collection.interval
设置的默认值为 10 秒。请参阅 监控设置。
-
-
确定监控数据的存储位置。
默认情况下,数据使用
local
导出器 存储在同一集群中。或者,您可以使用http
导出器 将数据发送到单独的 *监控集群*。Elasticsearch 监控功能使用 inges pipelines,因此存储监控数据的集群必须至少有一个 ingest 节点。
有关典型监控架构的更多信息,请参阅 工作原理。
-
如果您选择使用
http
导出器-
在要监控的集群(通常称为 *生产集群*)上,将每个节点配置为将指标发送到您的监控集群。在
elasticsearch.yml
文件中的xpack.monitoring.exporters
设置中配置 HTTP 导出器。例如:xpack.monitoring.exporters: id1: type: http host: ["http://es-mon-1:9200", "http://es-mon-2:9200"]
-
如果在监控集群上启用了 Elastic 安全功能,则在将数据发送到监控集群时,必须提供相应的凭据。
- 在监控集群上创建一个具有
remote_monitoring_agent
内置角色 的用户。或者,使用remote_monitoring_user
内置用户。 -
将用户 ID 和密码设置添加到
elasticsearch.yml
文件和每个节点上的密钥库中的 HTTP 导出器设置中。例如:
xpack.monitoring.exporters: id1: type: http host: ["http://es-mon-1:9200", "http://es-mon-2:9200"] auth.username: remote_monitoring_user # "xpack.monitoring.exporters.id1.auth.secure_password" must be set in the keystore
- 在监控集群上创建一个具有
-
如果您将监控集群配置为使用 加密通信,则必须在
host
设置中使用 HTTPS 协议。您还必须指定将用于验证监控集群中节点身份的可信 CA 证书。-
要将 CA 证书添加到 Elasticsearch 节点的受信任证书中,您可以使用
certificate_authorities
设置指定 PEM 编码证书的位置。例如:xpack.monitoring.exporters: id1: type: http host: ["https://es-mon1:9200", "https://es-mon-2:9200"] auth: username: remote_monitoring_user # "xpack.monitoring.exporters.id1.auth.secure_password" must be set in the keystore ssl: certificate_authorities: [ "/path/to/ca.crt" ]
-
或者,您可以使用密钥库(包含证书的 Java 密钥库文件)配置受信任的证书。例如:
xpack.monitoring.exporters: id1: type: http host: ["https://es-mon1:9200", "https://es-mon-2:9200"] auth: username: remote_monitoring_user # "xpack.monitoring.exporters.id1.auth.secure_password" must be set in the keystore ssl: truststore.path: /path/to/file truststore.password: password
-
-
- 配置您的集群以将来自 Kibana、Beats 和 Logstash 等源的监控数据路由到监控集群。有关配置每个产品以收集和发送监控数据的更多信息,请参阅 监控集群。
-
如果您更新了生产集群上
elasticsearch.yml
文件中的设置,请重新启动 Elasticsearch。请参阅 停止 Elasticsearch 和 启动 Elasticsearch。您可能希望在重新启动节点之前暂时 禁用分片分配,以避免在安装过程中发生不必要的分片重新分配。
- 可选:配置存储监控数据的索引。
- 在 Kibana 中查看监控数据.