在 Cloud Foundry 上运行 Metricbeatedit

您可以在 Cloud Foundry 上使用 Metricbeat 来检索和发送指标。

创建 Cloud Foundry 凭据edit

要连接到 loggregator 并接收日志,Metricbeat 需要使用 UAA 创建的凭据。 uaac 命令创建连接到 loggregator 所需的凭据。

uaac client add metricbeat --name metricbeat --secret changeme --authorized_grant_types client_credentials,refresh_token --authorities doppler.firehose,cloud_controller.admin_read_only

使用唯一的密钥: 此处显示的 uaac 命令只是一个示例。 请记住将 changeme 替换为您的密钥,并将 metricbeat.yml 文件更新为使用您选择的密钥。

下载 Cloud Foundry 部署清单edit

您将 Metricbeat 部署为没有路由的应用程序。

Cloud Foundry 要求在目录中存在 3 个文件,才能将 Metricbeat 推送到 Cloud Foundry 中。 以下命令提供了使其启动并运行的基本步骤。

curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-8.14.3-linux-x86_64.tar.gz
tar xzvf metricbeat-8.14.3-linux-x86_64.tar.gz
cd metricbeat-8.14.3-linux-x86_64
curl -L -O https://raw.githubusercontent.com/elastic/beats/8.14/deploy/cloudfoundry/metricbeat/metricbeat.yml
curl -L -O https://raw.githubusercontent.com/elastic/beats/8.14/deploy/cloudfoundry/metricbeat/manifest.yml

您需要修改 metricbeat.yml 文件以设置 api_addressclient_idclient_secret

加载 Kibana 仪表板edit

Metricbeat 附带各种预构建的 Kibana 仪表板,您可以使用它们在 Kibana 中可视化数据。

如果这些仪表板尚未加载到 Kibana 中,则必须运行 Metricbeat setup 命令。 要了解如何操作,请参阅 加载 Kibana 仪表板

如果您使用的是除 Elasticsearch 之外的其他输出,例如 Logstash,则需要 手动加载索引模板加载 Kibana 仪表板

部署 Metricbeatedit

要将 Metricbeat 部署到 Cloud Foundry,请运行

cf push

要检查状态,请运行

$ cf apps

name       requested state   instances   memory   disk   urls
metricbeat   started           1/1         512M     1G

指标事件应开始流向 Elasticsearch。 事件将使用 add_cloudfoundry_metadata 处理器添加的元数据进行注释。

缩放 Metricbeatedit

单个 Metricbeat 实例每分钟可以发送超过十万个事件。 如果您的 Cloud Foundry 部署生成的事件超过了 Metricbeat 可以收集和发送的事件数量,Firehose 将开始丢弃事件,并将 Metricbeat 标记为缓慢的使用者。 如果问题持续存在,Metricbeat 可能与 Firehose 断开连接。 在这种情况下,您需要缩放 Metricbeat 以避免丢失事件。

您需要考虑的主要设置是

  • cloudfoundry 模块 中指定的 shard_id。 Firehose 会将事件分配给具有相同设置值的各个 Metricbeat 实例。 所有具有相同 shard_id 的实例都应具有相同的配置。
  • Metricbeat 实例的数量。 当 Metricbeat 作为 Cloud Foundry 应用程序部署时,它可以像任何其他应用程序一样进行扩展,可以使用 cf scale 或在清单中指定实例数进行扩展。
  • 输出配置。 在某些情况下,您可以微调输出配置以提高事件吞吐量。 某些输出支持多个工作程序。 可以更改工作程序数量,以便更好地利用可用资源。

当 Metricbeat 无法收集所有事件时,一些调整这些设置的基本建议

  • 如果 Metricbeat 达到其 CPU 限制,您需要增加使用相同 shard_id 部署的 Metricbeat 实例的数量。
  • 如果 Metricbeat 有一些备用 CPU,那么输出可能会有一些背压。 尝试增加输出中的工作程序数量。 如果这没有帮助,那么瓶颈可能在网络或接收 Metricbeat 发送的事件的服务中。
  • 如果您需要修改 Metricbeat 的内存限制,请记住,分配给 Cloud Foundry 应用程序的 CPU 份额取决于配置的内存限制。 您可能需要在之后检查其他建议。