如何从Cloud-Config服务获取Stackdriver Logging的输出?
我正在使用node.js API创建我的VM实例,并按照此处的示例创建我的服务:https://cloud.google.com/container-optimized-os/docs/how-to/run-container-instance#starting_a_docker_container_via_cloud-config
一切都运行成功,但我能看到日志输出的唯一方法是通过SSH连接到实例并运行sudo journalctl -ef
,但我真的想将日志流式传输到Stackdriver Logging。但COS似乎不允许我安装日志代理。
这是我的服务文件,/home/ci/run.sh
只运行一些docker容器,它运行一些测试并输出到stdout:
- path: /etc/systemd/system/ciservice.service
permissions: 0644
owner: root
content: |
[Unit]
Description=Run tests
Wants=gcr-online.target
After=gcr-online.target
[Service]
User=ci
Group=ci
Environment="HOME=/home/ci"
ExecStartPre=/usr/bin/docker-credential-gcr configure-docker
ExecStart=/bin/bash /home/ci/run.sh
我正在使用容器优化的操作系统,因为它带有Docker,GCR访问开箱即用,安全性,并且很快就可以启动。但我想我可能不得不切换回基于Ubuntu / Debian的映像,这样我就可以安装日志代理,但代价是自定义映像中的更多基本配置。
非常感谢任何使用COS的帮助,所以提前谢谢你:)
答案 0 :(得分:1)
Google Cloud Logging driver for Docker适用于此案例。 Here是一个非常好的教程。
虽然日志记录驱动程序的日志记录配置功能有限。您需要控制许多日志记录配置,我认为Ubuntu / Debian上的日志代理是更好的选择。