使用 Metricbeat 收集 Kibana 监控数据

编辑

使用 Metricbeat 收集 Kibana 监控数据编辑

在 6.4 及更高版本中,您可以使用 Metricbeat 收集有关 Kibana 的数据并将其发送到监控集群,而不是像在 传统收集方法 中所述的那样将其路由到生产集群。

Example monitoring architecture

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

  1. 禁用 Kibana 监控指标的默认收集。

    在 Kibana 配置文件 (kibana.yml) 中添加以下设置

    monitoring.kibana.collection.enabled: false

    monitoring.enabled 保持为其默认值 (true)。有关更多信息,请参阅 Kibana 中的监控设置

  2. 启动 Kibana.
  3. 在生产集群中的每个节点上将 xpack.monitoring.collection.enabled 设置设置为 true。默认情况下,它是禁用的 (false)。

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

    • 在 Kibana 中

      1. 在您的 Web 浏览器中打开 Kibana。

        如果您在本地运行 Kibana,请转到 https://127.0.0.1:5601/

        如果启用了 Elastic 安全功能,请登录。

      2. 在侧边导航中,单击 堆栈监控。如果数据收集被禁用,系统会提示您将其打开。
    • 从控制台或命令行,在生产集群上将 xpack.monitoring.collection.enabled 设置为 true

      例如,您可以使用以下 API 来查看和更改此设置

      GET _cluster/settings
      
      PUT _cluster/settings
      {
        "persistent": {
          "xpack.monitoring.collection.enabled": true
        }
      }

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

  4. 安装 Metricbeat 在与 Kibana 相同的服务器上。
  5. 在 Metricbeat 中启用 Kibana X-Pack 模块。

    例如,要启用 modules.d 目录中的默认配置,请运行以下命令

    metricbeat modules enable kibana-xpack

    有关更多信息,请参阅 指定要运行的模块Kibana 模块

  6. 在 Metricbeat 中配置 Kibana X-Pack 模块。

    modules.d/kibana-xpack.yml 文件包含以下设置

    - module: kibana
      metricsets:
        - stats
      period: 10s
      hosts: ["localhost:5601"]
      #basepath: ""
      #username: "user"
      #password: "secret"
      xpack.enabled: true

    默认情况下,该模块从 localhost:5601 收集 Kibana 监控指标。如果该主机和端口号不正确,您必须更新 hosts 设置。如果您配置 Kibana 使用加密通信,则必须通过 HTTPS 访问它。例如,使用类似于 https://127.0.0.1:5601hosts 设置。

    如果启用了 Elastic 安全功能,您还必须提供用户 ID 和密码,以便 Metricbeat 可以成功收集指标

    1. 在生产集群上创建一个具有 remote_monitoring_collector 内置角色 的用户。或者,使用 remote_monitoring_user 内置用户
    2. usernamepassword 设置添加到 Kibana 模块配置文件。
  7. 可选:在 Metricbeat 中禁用系统模块。

    默认情况下,系统模块 是启用的。但是,它收集的信息不会显示在 Kibana 中的 监控 页面上。除非您想将该信息用于其他目的,否则请运行以下命令

    metricbeat modules disable system
  8. 确定将监控数据发送到哪里。

    在生产环境中,我们强烈建议使用单独的集群(称为监控集群)来存储数据。使用单独的监控集群可以防止生产集群中断影响您访问监控数据的能力。它还可以防止监控活动影响生产集群的性能。

    例如,在 Metricbeat 配置文件 (metricbeat.yml) 中指定 Elasticsearch 输出信息

    output.elasticsearch:
      # Array of hosts to connect to.
      hosts: ["http://es-mon-1:9200", "http://es-mon2:9200"] 
    
      # Optional protocol and basic auth credentials.
      #protocol: "https"
      #username: "elastic"
      #password: "changeme"

    在此示例中,数据存储在具有节点 es-mon-1es-mon-2 的监控集群上。

    如果您配置了监控集群使用加密通信,则必须通过 HTTPS 访问它。例如,使用类似于 https://es-mon-1:9200hosts 设置。

    Elasticsearch 监控功能使用摄取管道。存储监控数据的集群必须至少有一个具有 ingest 角色的节点。

    如果在监控集群上启用了 Elasticsearch 安全功能,您必须提供有效的用户 ID 和密码,以便 Metricbeat 可以成功发送指标

    1. 在监控集群上创建一个具有 remote_monitoring_agent 内置角色 的用户。或者,使用 remote_monitoring_user 内置用户
    2. usernamepassword 设置添加到 Metricbeat 配置文件中的 Elasticsearch 输出信息。

    有关这些配置选项的更多信息,请参阅 配置 Elasticsearch 输出

  9. 启动 Metricbeat.
  10. 在 Kibana 中查看监控数据.