生产环境中的监控
编辑生产环境中的监控
编辑在生产环境中,您应该将监控数据发送到单独的监控集群,以便即使在您监控的节点不可用时,也可以使用历史数据。
Elastic Agent 和 Metricbeat 是收集和发送监控数据到监控集群的推荐方法。
如果您之前配置了旧的收集方法,则应迁移到使用 Elastic Agent 或 Metricbeat 收集。不要同时使用旧的收集方法和其他收集方法。
如果您至少拥有黄金订阅,则使用专用监控集群还使您能够从中心位置监控多个集群。
要在单独的集群中存储监控数据
-
设置您要用作监控集群的 Elasticsearch 集群。例如,您可能会设置一个包含节点
es-mon-1
和es-mon-2
的双主机集群。- 理想情况下,监控集群和生产集群运行在相同的 Elastic Stack 版本上。但是,最新 8.x 版本的监控集群也适用于使用相同主要版本的生产集群。使用 8.x 的监控集群也适用于使用最新 7.x 版本的生产集群。
- 监控集群中必须至少有一个 摄取节点;它不需要是专用的摄取节点。
-
(可选)验证监控集群上是否禁用了监控数据的收集。默认情况下,
xpack.monitoring.collection.enabled
设置为false
。例如,您可以使用以下 API 来查看和更改此设置
resp = client.cluster.get_settings() print(resp) resp1 = client.cluster.put_settings( persistent={ "xpack.monitoring.collection.enabled": False }, ) print(resp1)
response = client.cluster.get_settings puts response response = client.cluster.put_settings( body: { persistent: { 'xpack.monitoring.collection.enabled' => false } } ) puts response
const response = await client.cluster.getSettings(); console.log(response); const response1 = await client.cluster.putSettings({ persistent: { "xpack.monitoring.collection.enabled": false, }, }); console.log(response1);
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
用户resp = client.security.put_user( username="remote_monitor", password="changeme", roles=[ "remote_monitoring_agent" ], full_name="Internal Agent For Remote Monitoring", ) print(resp)
const response = await client.security.putUser({ username: "remote_monitor", password: "changeme", roles: ["remote_monitoring_agent"], full_name: "Internal Agent For Remote Monitoring", }); console.log(response);
POST /_security/user/remote_monitor { "password" : "changeme", "roles" : [ "remote_monitoring_agent"], "full_name" : "Internal Agent For Remote Monitoring" }
或者,使用
remote_monitoring_user
内置用户。
- 如果您计划使用 Elastic Agent,请创建一个具有
-
配置您的生产集群以收集数据并将其发送到监控集群
- (可选)配置 Logstash 以收集数据并将其发送到监控集群。
- (可选)配置 Enterprise Search 监控。
-
(可选)配置 Beats 以收集数据并将其发送到监控集群。对于由 Elastic Agent 管理的 Beats,请跳过此步骤。
- (可选)配置 APM Server 监控
-
(可选)配置 Kibana 以收集数据并将其发送到监控集群
-
(可选)为监控创建一个专用的 Kibana 实例,而不是使用单个 Kibana 实例来访问您的生产集群和监控集群。
如果您使用 SAML、Kerberos、PKI、OpenID Connect 或令牌身份验证提供程序登录到 Kibana,则必须使用专用的 Kibana 实例。在这些上下文中使用的安全令牌是特定于集群的;因此,您不能使用单个 Kibana 实例连接到生产集群和监控集群。
- (可选)禁用此 Kibana 实例中监控数据的收集。在
kibana.yml
文件中将xpack.monitoring.kibana.collection.enabled
设置为false
。有关此设置的更多信息,请参阅 Kibana 中的监控设置。
- (可选)禁用此 Kibana 实例中监控数据的收集。在
- 配置 Kibana 以检索和显示监控数据.