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

编辑

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

编辑

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 监控功能使用 inges pipelines,因此存储监控数据的集群必须至少有一个 ingest 节点

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

  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 中查看监控数据.