Драйвер ведения журналов Google Cloud для докеров не собирает журналы

Я запускаю контейнер Docker с приложением Python, которое записывает журналы в stdout с помощью стандартной библиотеки Python logging. Контейнер размещен не в каком-либо продукте Google Cloud, а находится на моем собственном компьютере.

Я настроил докер для использования драйвера gcplogs, как описано в этом руководстве и официальные документы по драйверам.

Контейнер докера работает без проблем. Однако журналы не собираются, потому что я не вижу ничего в средстве просмотра журналов Stackdriver, кроме некоторых странных записей журнала «ping», которые создаются при каждом запуске контейнера докеров.

введите здесь описание изображения

Регистратор python настраивается через dictConfig:

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

Контейнер докера запускается с помощью этой команды:

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 (официальный образ DockerHub для Alpine3.7)
  • Докер-ce 18.03.0
  • Ubuntu 17.10
  • Уровень Stackdriver Premium

person Layo    schedule 24.04.2018    source источник
comment
На вашем компьютере установлен gcloud? Вы вошли?   -  person Alexandre    schedule 25.04.2018
comment
@Alexandre У меня он был, и он авторизован. Однако это не имеет значения, поскольку учетные данные для входа в систему получаются через GOOGLE_APPLICATION_CREDENTIALS, который является единственным методом аутентификации, поддерживаемым драйвером. Перед установкой этого env var у меня были сообщения об ошибках аутентификации, но это уже не так.   -  person Layo    schedule 26.04.2018
comment
Включен ли API ведения журналов Stackdriver? console.cloud.google.com/apis/api/logging. googleapis.com/ Есть ли у ваших учетных данных область ведения журнала Stackdriver?   -  person Alexandre    schedule 27.04.2018
comment
Да, я тоже это проверил.   -  person Layo    schedule 28.04.2018


Ответы (1)


Вероятно, вам потребуется переключить ресурс ведения журнала с Global на конкретный проект, в который вы ведете журнал, согласно вашей gcp-project опции в команде docker. В этом меню в пользовательском интерфейсе ведения журнала Stackdriver есть параметр Google Project.

person ty.    schedule 01.08.2019