使用 Metricbeat 收集 Logstash 监控数据

编辑

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

您可以使用 Metricbeat 收集有关 Logstash 的数据并将其发送到监控集群。Metricbeat 收集的优势在于,即使 Logstash 实例未运行,监控代理也能保持活动状态。

要收集和发送监控数据,请执行以下操作:

想改用 Elastic Agent?请参阅为堆栈监控收集监控数据

禁用默认的 Logstash 监控指标收集编辑

monitoring 设置位于 Logstash 配置文件 (logstash.yml) 中,但已注释掉

monitoring.enabled: false

删除该行开头的 # 以启用该设置。

定义 cluster_uuid(可选)编辑

要将 Logstash 的指标绑定到特定集群,请在配置文件 (logstash.yml) 中选择性地定义 monitoring.cluster_uuid

monitoring.cluster_uuid: PRODUCTION_ES_CLUSTER_UUID

安装和配置 Metricbeat编辑

  1. 在与 Logstash 相同的服务器上安装 Metricbeat
  2. 在 Metricbeat 中启用 logstash-xpack 模块。

    要在 Metricbeat modules.d 目录中启用默认配置,请运行

    deb 或 rpm

    metricbeat modules enable logstash-xpack

    linux 或 mac

    ./metricbeat modules enable logstash-xpack

    win

    PS > .\metricbeat.exe modules enable logstash-xpack

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

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

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

      - module: logstash
        metricsets:
          - node
          - node_stats
        period: 10s
        hosts: ["localhost:9600"]
        #username: "user"
        #password: "secret"
        xpack.enabled: true

    设置 hostsusernamepassword 以使用 Logstash 进行身份验证。对于其他模块设置,建议您接受默认值。

    默认情况下,该模块从 localhost:9600 收集 Logstash 监控数据。

    要监控多个 Logstash 实例,请指定主机列表,例如

    hosts: ["https://127.0.0.1:9601","https://127.0.0.1:9602","https://127.0.0.1:9603"]

    Elastic 安全。 Elastic 安全功能默认启用。您必须提供用户 ID 和密码,以便 Metricbeat 能够成功收集指标

    1. 在生产集群上创建一个具有 remote_monitoring_collector 内置角色的用户。
    2. usernamepassword 设置添加到模块配置文件 (logstash-xpack.yml) 中。
  4. 可选:在 Metricbeat 中禁用系统模块。

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

    metricbeat modules disable system
  5. 确定要将监控数据发送到何处。

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

    例如,在 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 访问它。例如,使用 hosts 设置,如 https://es-mon-1:9200

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

    Elastic 安全。 Elastic 安全功能默认启用。您必须提供用户 ID 和密码,以便 Metricbeat 能够成功发送指标

    1. 在监控集群上创建一个具有 remote_monitoring_agent 内置角色的用户。或者,使用 remote_monitoring_user 内置用户

      如果您正在使用索引生命周期管理,则远程监控用户需要额外的权限来创建和读取索引。有关更多信息,请参阅 <<feature-roles>>

    2. usernamepassword 设置添加到 Metricbeat 配置文件中的 Elasticsearch 输出信息中。

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

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

您的监控设置已完成。