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

编辑

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

7.16 版中已弃用。

不建议使用 Elasticsearch 监控插件来收集和传送监控数据。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 来查看和更改此设置

      response = client.cluster.get_settings
      puts response
      GET _cluster/settings
      response = client.cluster.put_settings(
        body: {
          persistent: {
            'xpack.monitoring.collection.enabled' => true
          }
        }
      )
      puts 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 中查看监控数据.