GCP VM上的Fluentd代理设置未将日志推送到日志资源管理器



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

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

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

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

调试我做了:

  1. google fluentd代理的所有配置。一切都是正确的,也完全类似于当前工作的VM实例。
  2. 我检查了"/var/log/google-fluentd/google-fluentd.log"任何日志错误。
  3. 检查日志API是否启用。由于每天已经有几百万条日志,我认为我们在这方面很好。
  4. 检查CPU和内存消耗情况。
  5. 我能在谷歌上找到的所有解决方案(没有很多)

如果有人能帮我找出我到底哪里错了,那就太好了。我已经多次检查配置/安装文件,它们看起来很好。

故障排除步骤:

  1. 检查是否使用最新版本的fluentd代理。如果没有,请尝试升级fluentagent。有关信息,请参考升级代理。
  2. 如果您正在运行非常旧的计算引擎实例或在没有默认凭据的情况下创建的计算引擎实例,则必须完成授权代理过程。
  3. 另一个重点是,如何配置HTTP代理。如果使用HTTP代理将请求代理到Logging and Monitoring api,请检查元数据服务器是否可达。元数据服务器必须是可访问的(并且要直接访问;
  4. 检查是否配置了任何阻止日志到达的日志排除。参考排除过滤器获取信息。
  5. 尝试卸载Fluentd代理,并尝试使用Ops代理(请注意,syslog日志是在没有设置的情况下由它收集的),并检查您是否能够看到日志。Ops agent将日志记录和指标整合到一个代理中,使用Fluent Bit进行日志记录,它支持高吞吐量的日志记录,使用OpenTelemetry Collector进行指标记录。更多信息请参考Ops代理。