【问题标题】:Fluentd agent setup on GCP VM is not pushing logs to Logs ExplorerGCP VM 上的 Fluentd 代理设置未将日志推送到日志资源管理器
【发布时间】:2021-10-26 10:40:14
【问题描述】:

我们在 GCP 虚拟机上设置了一个 fluentd 代理,以将日志从 syslog 服务器(虚拟机)推送到 GCP 的 Google Cloud Logging。当前设置运行良好,每小时向 Stackdriver (Google Cloud Logging) 推送超过 30 万条日志条目。

由于流量增加,我们计划增加负载平衡器后面使用的虚拟机数量。但是,带有 fluentd 代理的新虚拟机无法将日志推送到 Stackdriver。第一次激活 VM 后,它确实会向 Stackdriver 发送一些条目,之后就无法正常工作了。

我尝试了以下选项来设置 fluentd 代理并解决问题:

  1. 从头开始创建一个新的 VM 并使用此 Google Cloud documentation 安装 fluentd 日志记录代理。
  2. 通过创建 Images 复制已经工作的 VM(带有日志记录代理)
  3. 重启虚拟机
  4. 重新安装日志代理

我做过的调试:

  1. google fluentd 代理的所有配置。一切都是正确的,并且与当前工作的 VM 实例完全相同。
  2. 我检查了“/var/log/google-fluentd/google-fluentd.log”是否有任何日志记录错误。但是没有。
  3. 检查是否启用了日志记录 API。由于每天已经有几百万条日志,我认为我们在这方面没问题。
  4. 检查了 CPU 和内存消耗。它接近于 0。
  5. 我能在 Google 上找到的所有解决方案(数量不多)

如果有人可以帮助我确定我到底哪里出错了,那就太好了。我已多次检查配置/设置文件,它们看起来都很好。

【问题讨论】:

  • 您能否检查您的新虚拟机是否与正在运行的旧虚拟机具有相同的权限/VPC/防火墙
  • 尝试使用 ssh 进入虚拟机并使用 sudo /etc/init.d/google-fluentd restart 重启 fluentd,同时使用 sudo 重启 google fluentd 服务service google-fluentd restart 并检查日志是否正在发布。
  • 是的,新虚拟机与旧虚拟机具有相同的防火墙权限。我确实尝试重新启动服务。没用。
  • 您是否尝试使用 sudo /etc/init.d/google-fluentd restart 命令重新启动 fluentd?
  • 是的,我做到了。日志记录现在仍在工作。

标签: google-cloud-platform google-compute-engine fluentd google-cloud-logging


【解决方案1】:

解决问题的故障排除步骤:

  1. 检查您是否使用最新版本的 fluentd 代理。如果没有,请尝试升级 fluentd 代理。有关信息,请参阅upgrade the agent
  2. 如果您正在运行非常旧的 Compute Engine 实例或在没有默认凭据的情况下创建的 Compute Engine 实例,您必须完成 Authorizing the agent 过程。
  3. 另一个重点是,您如何配置 HTTP 代理。如果您使用 HTTP 代理来代理对 Logging 和 Monitoring API 的请求,请检查元数据服务器是否可访问。配置 HTTP 代理时,元数据服务器必须是可访问的(并且可以直接访问;无需代理)。
  4. 检查您是否配置了阻止日志到达的任何日志排除项。有关信息,请参阅 Exclusion filters
  5. 尝试卸载 Fluentd 代理并尝试使用 Ops 代理(注意 syslog 日志由它收集而无需设置)并检查您是否能够看到日志。 Ops Agent 将日志记录和指标组合到一个代理中,使用 Fluent Bit 记录日志,支持高吞吐量记录,OpenTelemetry Collector 用于指标。更多信息请参考Ops agent

【讨论】:

    猜你喜欢
    • 2022-11-10
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-01
    • 2019-06-09
    • 1970-01-01
    相关资源
    最近更新 更多