使用旧版收集器收集监控数据

编辑

使用旧版收集器收集监控数据

编辑

在 7.16 版本中已弃用。

使用 Elasticsearch Monitoring 插件收集和发送监控数据已被弃用。建议使用 Elastic Agent 和 Metricbeat 来收集和发送监控数据到监控集群。如果您之前配置了旧版收集方法,则应迁移到使用Elastic AgentMetricbeat收集方法。

这种收集 Elasticsearch 指标的方法涉及使用导出器将指标发送到监控集群。

高级监控设置使您可以控制数据收集的频率、配置超时以及设置本地存储的监控索引的保留期。您还可以调整监控数据的显示方式。

要了解有关监控的常规信息,请参阅监控集群

  1. 配置您的集群以收集监控数据

    1. 验证集群中每个节点的 xpack.monitoring.elasticsearch.collection.enabled 设置是否为 true,这是其默认值。

      您可以在每个节点的 elasticsearch.yml 中指定此设置,也可以将其作为动态集群设置跨集群指定。如果启用了 Elasticsearch 安全功能,您必须具有 monitor 集群权限才能查看集群设置,并且必须具有 manage 集群权限才能更改它们。

      有关更多信息,请参阅监控设置集群更新设置

    2. 将集群中每个节点的 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 中启用此设置。在侧边导航栏中,单击监控。如果数据收集被禁用,系统会提示您将其打开。

      有关更多信息,请参阅监控设置集群更新设置

    3. 可选:指定您要监控的索引。

      默认情况下,监控代理会从所有 Elasticsearch 索引中收集数据。要从特定索引中收集数据,请配置 xpack.monitoring.collection.indices 设置。您可以将多个索引指定为逗号分隔的列表,或使用索引模式来匹配多个索引。例如

      xpack.monitoring.collection.indices: logstash-*, index1, test2

      您可以将 - 添加到索引名称或模式前面,以显式排除它们。例如,要包括所有以 test 开头的索引,但排除 test3,您可以指定 test*,-test3。要包括诸如 .security 和 .kibana 之类的系统索引,请将 .* 添加到包含的名称列表中。例如 .*,test*,-test3

    4. 可选:指定收集监控数据的频率。xpack.monitoring.collection.interval 设置的默认值为 10 秒。请参阅监控设置
  2. 确定在哪里存储监控数据。

    默认情况下,数据通过使用local 导出器存储在同一集群上。或者,您可以使用http 导出器将数据发送到单独的监控集群

    Elasticsearch 监控功能使用提取管道,因此存储监控数据的集群必须至少有一个提取节点

    有关典型监控架构的更多信息,请参阅工作原理

  3. 如果您选择使用 http 导出器

    1. 在要监控的集群(通常称为生产集群)上,配置每个节点以将指标发送到您的监控集群。在 elasticsearch.yml 文件中的 xpack.monitoring.exporters 设置中配置 HTTP 导出器。例如

      xpack.monitoring.exporters:
        id1:
          type: http
          host: ["http://es-mon-1:9200", "http://es-mon-2:9200"]
    2. 如果监控集群上启用了 Elastic 安全功能,则在将数据发送到监控集群时,您必须提供适当的凭据

      1. 在监控集群上创建一个具有remote_monitoring_agent 内置角色的用户。或者,使用remote_monitoring_user 内置用户
      2. 将用户 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
    3. 如果您将监控集群配置为使用加密通信,则必须在 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
  4. 配置您的集群以将来自 Kibana、Beats 和 Logstash 等来源的监控数据路由到监控集群。有关配置每个产品以收集和发送监控数据的信息,请参阅监控集群
  5. 如果您更新了生产集群上的 elasticsearch.yml 文件中的设置,请重新启动 Elasticsearch。请参阅停止 Elasticsearch启动 Elasticsearch

    您可能希望在重新启动节点之前暂时禁用分片分配,以避免在安装过程中不必要的分片重新分配。

  6. 可选:配置存储监控数据的索引
  7. 在 Kibana 中查看监控数据.