生产环境中的监控
edit生产环境中的监控
edit在生产环境中,您应将监控数据发送到一个单独的监控集群,以便即使您正在监控的节点不可用时,历史数据仍然可用。
Elastic Agent 和 Metricbeat 是推荐用于收集并将监控数据传输到监控集群的方法。
如果您之前配置了传统的收集方法,您应该迁移到使用Elastic Agent或Metricbeat收集。不要将传统收集与其他收集方法一起使用。
如果您至少拥有黄金订阅,使用专用监控集群还可以让您从中央位置监控多个集群。
将监控数据存储在单独的集群中:
-
设置您要用作监控集群的Elasticsearch集群。 例如,您可以设置一个包含节点
es-mon-1和es-mon-2的双主机集群。- 理想情况下,监控集群和生产集群运行在相同的Elastic Stack版本上。然而,使用最新9.x版本的监控集群也可以与使用相同主版本的生产集群一起工作。使用9.x的监控集群也可以与使用最新8.x版本的生产集群一起工作。
- 监控集群中必须至少有一个摄取节点;它不需要是一个专用的摄取节点。
-
(可选) 验证在监控集群上禁用了监控数据的收集。默认情况下,
xpack.monitoring.collection.enabled设置为false。例如,您可以使用以下API来查看和更改此设置:
GET _cluster/settings PUT _cluster/settings { "persistent": { "xpack.monitoring.collection.enabled": false } } -
如果在监控集群上启用了Elasticsearch安全功能,请创建可以发送和检索监控数据的用户:
如果您计划使用 Kibana 查看监控数据,用户名和密码凭证必须在 Kibana 服务器和监控集群上都有效。
-
如果您计划使用 Elastic Agent,创建一个具有
remote_monitoring_collector内置角色的用户,并且确保在远程监控集群上已经安装了与监控相关的集成资产。 -
如果您计划使用 Metricbeat,创建一个具有
remote_monitoring_collector内置角色的用户和一个具有remote_monitoring_agent内置角色的用户。或者,使用remote_monitoring_user内置用户。 -
如果您计划使用HTTP导出器通过生产集群路由数据,请创建一个具有
remote_monitoring_agent内置角色的用户。例如,以下请求创建一个具有
remote_monitoring_agent角色的remote_monitor用户:POST /_security/user/remote_monitor { "password" : "changeme", "roles" : [ "remote_monitoring_agent"], "full_name" : "Internal Agent For Remote Monitoring" }或者,使用
remote_monitoring_user内置用户。
-
如果您计划使用 Elastic Agent,创建一个具有
-
配置您的生产集群以收集数据并将其发送到监控集群:
- (可选) 配置Logstash以收集数据并将其发送到监控集群。
- (可选) 配置企业搜索监控。
-
(可选) 配置 Beats 以收集数据并将其发送到监控集群。对于由 Elastic Agent 管理的 Beats,请跳过此步骤。
- (可选) 配置APM服务器监控
-
(可选) 配置 Kibana 以收集数据并将其发送到监控集群:
-
(可选) 创建一个专用的 Kibana 实例用于监控,而不是使用一个 Kibana 实例来访问您的生产集群和监控集群。
如果您使用 SAML、Kerberos、PKI、OpenID Connect 或令牌身份验证提供程序登录 Kibana,则需要一个专用的 Kibana 实例。在这些上下文中使用的安全令牌是特定于集群的;因此,您不能使用单个 Kibana 实例来连接到生产和监控集群。
-
(可选) 在此 Kibana 实例中禁用监控数据的收集。在
kibana.yml文件中将xpack.monitoring.kibana.collection.enabled设置为false。有关此设置的更多信息,请参阅Kibana中的监控设置。
-
(可选) 在此 Kibana 实例中禁用监控数据的收集。在
- 配置 Kibana 以检索和显示监控数据。