监控 Fleet 管理的 APM Server

编辑

本指南假设您已经将 APM 数据摄取到 Elastic Stack 中。

在 8.0 及更高版本中,您可以使用 Metricbeat 收集有关 APM Server 的数据并将其发送到监控集群。要收集和发送监控数据

配置 Elastic Agent 以发送监控数据
编辑
  1. 通过将以下设置添加到 elastic-agent.yml 配置文件来启用 Elastic Agent 的监控

    agent.monitoring:
      http:
        enabled: true 
        host: localhost 
        port: 6791 

    启用监控

    公开日志/指标的主机

    公开日志/指标的端口

  2. 注册 Elastic Agent

    编辑 elastic-agent.yml 后,必须重新注册 Elastic Agent 才能使更改生效。

    要在 Fleet 中注册 Elastic Agent

    elastic-agent enroll --url <string>
                         --enrollment-token <string>
                         [--ca-sha256 <string>]
                         [--certificate-authorities <string>]
                         [--daemon-timeout <duration>]
                         [--delay-enroll]
                         [--elastic-agent-cert <string>]
                         [--elastic-agent-cert-key <string>]
                         [--elastic-agent-cert-key-passphrase <string>]
                         [--force]
                         [--header <strings>]
                         [--help]
                         [--insecure ]
                         [--proxy-disabled]
                         [--proxy-header <strings>]
                         [--proxy-url <string>]
                         [--staging <string>]
                         [--tag <string>]
                         [global-flags]

有关注册命令的更多信息,请参阅 Elastic Agent 命令参考

安装和配置 Metricbeat 以收集监控数据
编辑
  1. 在与 Elastic Agent 相同的服务器上安装 Metricbeat。要了解如何操作,请参阅 Metricbeat 入门。如果您已安装 Metricbeat,请跳过此步骤。
  2. 在 Metricbeat 中启用 beat-xpack 模块。

    例如,要在 modules.d 目录中启用默认配置,请运行以下命令,使用适合您操作系统的正确命令语法

    metricbeat modules enable beat-xpack

    有关更多信息,请参阅 配置模块beat 模块

  3. 在 Metricbeat 中配置 beat-xpack 模块。

    完成后,您的 modules.d/beat-xpack.yml 文件应类似于以下内容

    - module: beat
      xpack.enabled: true
      period: 10s
      hosts: ["https://127.0.0.1:6791"]
      basepath: "/processes/apm-server-default"
      username: remote_monitoring_user
      password: your_password
    1. 不要更改 module 名称或 xpack.enabled 布尔值;这些对于堆栈监控是必需的。我们建议目前接受默认的 period
    2. hosts 设置为与 elastic-agent.yml 文件中配置的主机:端口匹配。在此示例中,为 https://127.0.0.1:6791

      要监控在多个 Elastic Agent 中运行的多个 APM Server 实例,请指定主机列表,例如

      hosts: ["https://127.0.0.1:5066","https://127.0.0.1:5067","https://127.0.0.1:5068"]

      如果您已将 Elastic Agent 配置为使用加密通信,则必须通过 HTTPS 访问它。例如,使用 hosts 设置,例如 https://127.0.0.1:5066

    3. APM Server 指标在 /processes/apm-server-default 中公开。将此位置添加为 basepath
    4. 根据您的环境设置 usernamepassword 设置。如果启用了 Elastic 安全功能,则必须提供用户名和密码,以便 Metricbeat 可以成功收集指标

      1. 在 Elasticsearch 集群上创建一个具有 remote_monitoring_collector 内置角色 的用户。或者,如果您的环境中可用,请使用 remote_monitoring_user 内置用户
      2. usernamepassword 设置添加到 beat 模块配置文件中。
  4. 可选:在 Metricbeat 中禁用系统模块。

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

    metricbeat modules disable system
  5. 确定发送监控数据的目标位置。

    在生产环境中,您应该将部署日志和指标发送到专用的监控部署(称为监控集群)。监控将日志和指标索引到 Elasticsearch,并且这些索引与任何其他索引一样消耗存储、内存和 CPU 周期。通过使用单独的监控部署,您可以避免影响其他生产部署,并且即使在生产部署不可用时也可以查看日志和指标。

    例如,在 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"
      #api_key:  "id:api_key" 
      #username: "elastic"
      #password: "changeme"

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

    指定 api_keyusername/password 之一。

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

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

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

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

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

  6. 启动 Metricbeat 以开始收集 APM 监控数据。
  7. 在 Kibana 中查看监控数据.