使用 Metricbeat 收集 Logstash 监控数据

编辑

使用 Metricbeat 收集 Logstash 监控数据

编辑

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

此步骤需要配置了 Metricbeat 监控的 Elasticsearch

要收集和发送监控数据

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

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

编辑

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

monitoring.enabled: false

确定目标 Elasticsearch 集群

编辑

您需要通过指定 cluster_uuid 来确定 Logstash 将在堆栈监控 UI 中绑定指标到哪个 Elasticsearch 集群。当管道包含 Elasticsearch 输出插件时,将自动计算 cluster_uuid,并且指标应在没有任何其他设置的情况下绑定。

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

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

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

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

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

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

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

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

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

您的监控设置已完成。