Docker的Google Cloud日志记录驱动程序不会收集日志

时间:2018-04-24 15:07:52

标签: python docker google-cloud-platform google-cloud-logging

我正在运行一个带有Python应用程序的Docker容器,该应用程序使用Python标准stdout lib将日志写入logging。该容器不是托管在任何Google云端产品中,而是托管在我自己的计算机上。

我按照this guide和官方driver docs的说明将docker配置为使用gcplogs驱动程序。

docker容器运行没有问题。但是,没有收集日志,因为我在Stackdriver日志记录查看器中看不到任何内容,除了每次执行docker容器时产生的一些奇怪的“ping”日志条目。

enter image description here

python记录器是通过dictConfig配置的:

'console': {
    'level': 'DEBUG',
    'class': 'logging.StreamHandler',
    'formatter': 'simple',
    'stream': 'ext://sys.stdout'
},

使用此命令运行docker容器:

docker run --env-file `pwd`/.env \
       --label app=oncrm \
       --log-driver=gcplogs \
       --log-opt gcp-meta-name= host_name\
       --log-opt gcp-project=cloud_project_id \
       --log-opt labels=app \
       --name oncrm \
       --net host \
       --rm \
       -v `pwd`/data:/code/data \
       -v `pwd`/logs:/code/logs \
docker_image sh update_subs.sh

驱动程序文档并未真正指定从何处收集日志,但确实提到驱动程序也应在Google Cloud Platform / Products之外工作。

环境:

  • Python 3.6.4(Alpine3.7的官方DockerHub图像)
  • Docker-ce 18.03.0
  • Ubuntu 17.10
  • Stackdriver Premium tier

1 个答案:

答案 0 :(得分:0)

您可能需要根据docker命令中Global的选择将日志记录资源从gcp-project切换到要登录的特定项目。 Stackdriver记录界面中的菜单中有一个Google Project选项。

相关问题