将容器优化的OS服务日志输出发送到Stackdriver记录

时间:2017-08-31 22:59:48

标签: google-compute-engine stackdriver google-cloud-stackdriver google-container-os

如何从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的帮助,所以提前谢谢你:)

1 个答案:

答案 0 :(得分:1)

Google Cloud Logging driver for Docker适用于此案例。 Here是一个非常好的教程。

虽然日志记录驱动程序的日志记录配置功能有限。您需要控制许多日志记录配置,我认为Ubuntu / Debian上的日志代理是更好的选择。