4

如何从我的 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 容器,这些容器运行一些测试并输出到标准输出:

- 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

我使用的是 Container-Optimized OS,因为它带有 Docker、开箱即用的 GCR 访问、安全性,并且可以快速启动。但我认为我可能必须切换回基于 Ubuntu/Debian 的映像,因为这将允许我安装日志代理,但代价是自定义映像中的更多基本配置。

对此使用 COS 的任何帮助将不胜感激,因此在此先感谢您 :)

4

1 回答 1

5

适用于 Docker 的 Google Cloud Logging 驱动程序可用于这种情况。是一个非常好的教程。

尽管日志驱动程序具有有限的日志配置功能。你需要控制很多日志配置,我认为 Ubuntu/Debian 上的日志代理是更好的选择。

于 2017-09-20T11:14:54.933 回答