微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

日志未从 Google Compute Engine 到达 Cloud Logging

如何解决日志未从 Google Compute Engine 到达 Cloud Logging

我有一个在 GCE 中运行的 VM 实例(使用容器优化操作系统),其中我有一个正在运行的正在生成 json 日志的容器。当我导航到 /var/lib/docker/containers/<CONTAINER_IMAGE>/<CONTAINER_IMAGE>-json.log 时,我可以看到这些日志。

在同一个实例中,另一个 docker 容器正在使用映像 gcr.io/stackdriver-agents/stackdriver-logging-agent:1.8.4 运行。这是在我创建 VM 时自动设置的。

VM 有权访问 Cloud Logging,并且启用了 Cloud Logging API。我还按照步骤 heregoogle-logging-enabled 添加到元数据中,其值为 true

当 VM 启动时,日志代理似乎正确启动并发出日志,说它正在拖尾我想要日志的 docker 容器的日志文件,但是该文件中的日志从未出现在 Google Logging 中。下面是进入 Cloud Logging 的日志截图:

enter image description here

enter image description here

我遇到这个问题已经有一段时间了,因此非常感谢您对这个问题的任何帮助!提前致谢 (:

解决方法

Google 日志记录使用 fluentd 来捕获日志。

你可以reconfugure fluentd to include additional log files

创建一个文件 /etc/google-fluentd/config.d/my_app_name.conf 并在文件中放入一行,格式为 path /path/to/my/log。以下是 fluentd documentation 中的更多示例。

您还可以指定文件将如何成为 parsed:作为 single string 类型字段或更结构化的方式(在您查找某些内容时更方便) .再次 - 这里有一些关于 fluentd's output plugins 的更多信息。

最后继续阅读 fluentd documentation 以更好地了解如何使用此工具。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。