在 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.14.3-linux-x86_64.tar.gz tar xzvf filebeat-8.14.3-linux-x86_64.tar.gz cd filebeat-8.14.3-linux-x86_64 curl -L -O https://raw.githubusercontent.com/elastic/beats/8.14/deploy/cloudfoundry/filebeat/filebeat.yml curl -L -O https://raw.githubusercontent.com/elastic/beats/8.14/deploy/cloudfoundry/filebeat/manifest.yml
您需要修改 filebeat.yml
文件以设置 api_address
、client_id
和 client_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 实例每分钟可以传送超过十万个事件。如果您的 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 共享取决于配置的内存限制。之后,您可能需要检查其他建议。