在 Cloud Foundry 上运行 Filebeat

编辑

在 Cloud Foundry 上运行 Filebeat

编辑

您可以在 Cloud Foundry 上使用 Filebeat 来检索和发送日志。

创建 Cloud Foundry 凭据

编辑

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

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

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

下载 Cloud Foundry 部署清单

编辑

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

Cloud Foundry 要求目录中存在 3 个文件,以便可以将 Filebeat 推送。以下命令提供了启动并运行它的基本步骤。

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

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

加载 Kibana 仪表板

编辑

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

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

setup 命令不会加载用于解析日志行的摄取管道。默认情况下,首次运行 Filebeat 并连接到 Elasticsearch 时,会自动设置摄取管道。

如果您使用的是除 Elasticsearch 之外的其他输出(例如 Logstash),则需要

部署 Filebeat

编辑

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

cf push

要检查状态,请运行

$ cf apps

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

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

缩放 Filebeat

编辑

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

您需要考虑的主要设置是

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

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

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