如何解决日志未从 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。我还按照步骤 here 将 google-logging-enabled
添加到元数据中,其值为 true
。
当 VM 启动时,日志代理似乎正确启动并发出日志,说它正在拖尾我想要日志的 docker 容器的日志文件,但是该文件中的日志从未出现在 Google Logging 中。下面是进入 Cloud Logging 的日志截图:
我遇到这个问题已经有一段时间了,因此非常感谢您对这个问题的任何帮助!提前致谢 (:
解决方法
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 举报,一经查实,本站将立刻删除。