使用 Metricbeat 收集 Logstash 监控数据

编辑

使用 Metricbeat 收集 Logstash 监控数据

编辑

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

此步骤需要具有 Metricbeat 监控设置的 Elasticsearch

要收集和发送监控数据

想要改用 Elastic Agent?请参考收集堆栈监控的监控数据

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

编辑

在 logstash.yml 中将 monitoring.enabled 设置为 false 以禁用默认监控。

monitoring.enabled: false

确定目标 Elasticsearch 集群

编辑

您需要在 Stack Monitoring UI 中确定 Logstash 将绑定指标的 Elasticsearch 集群,方法是指定 cluster_uuid。当管道包含Elasticsearch 输出插件 时,cluster_uuid 会自动计算,并且指标应该无需任何其他设置即可绑定。

要覆盖自动值,或者如果您的管道不包含任何Elasticsearch 输出插件,您可以通过在配置文件 (logstash.yml) 中定义目标集群来将 Logstash 的指标绑定到特定集群,方法是定义 monitoring.cluster_uuid 设置。

monitoring.cluster_uuid: PRODUCTION_ES_CLUSTER_UUID

请参考Elasticsearch 集群统计页面,了解如何获取您的集群 cluster_uuid

安装和配置 Metricbeat

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

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

    deb 或 rpm

    metricbeat modules enable logstash-xpack

    Linux 或 macOS

    ./metricbeat modules enable logstash-xpack

    Windows

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

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

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

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

      如果您使用索引生命周期管理,则远程监控用户需要其他权限才能创建和读取索引。有关更多信息,请参见 <<feature-roles>>

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

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

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

您的监控设置已完成。