在 Cloud Foundry 上运行 Metricbeat

编辑

在 Cloud Foundry 上运行 Metricbeat

编辑

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

创建 Cloud Foundry 凭据

编辑

要连接到 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 部署清单

编辑

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

Cloud Foundry 要求在一个目录中存在 3 个文件,以允许推送 Metricbeat。以下命令提供了启动和运行的基本步骤。

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

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

加载 Kibana 仪表板

编辑

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

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

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

部署 Metricbeat

编辑

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

cf push

要检查状态,请运行

$ cf apps

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

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

缩放 Metricbeat

编辑

单个 Metricbeat 实例每分钟可以发送超过 10 万个事件。如果您的 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 份额取决于配置的内存限制。您可能需要在之后检查其他建议。