tldr:
- я пишу журналы из приложения python, которое работает за пределами Google Cloud
- я использую gcplogs для импорта журналов в Stackdriver
- журналы импортированыдолжно быть в неправильном формате, потому что они не отображаются, как они должны в журнале Stackdriver
Мне трудно разобраться, как настроить драйвер журналов gcplogs Docker, чтобы журналы отображались так, как они должны в Stackdriverпротоколирование.Вот как в настоящее время выглядят журналы:
Похоже, что драйвер стека не правильно анализирует эти журналы.Однако, если образ докера запускается в GKE, журналы выглядят корректно:
Здесь Stackdriver распознал, что эти журналы были сообщениями отладки.
Поскольку эти два приложения используют один и тот же регистратор, я думаю, что сообщение, которое регистрируется в приложении, имеет правильный формат, и это должна быть неправильная конфигурация gcplogs или что-то пропущено.(Смотрите в этом репозитории, как выглядит код Python: https://github.com/cognitedata/python-logs-export-docker-gcplogs-test)
Вот содержимое /etc/docker/daemon.json
на компьютере, на котором работает образ Docker:
{
"log-driver": "gcplogs",
"log-opts": {
"gcp-project": "removed",
"env": "host"
}
}
Вывод docker info | grep 'Logging Driver'
is Logging Driver: gcplogs
.
Вывод docker version
:
Client:
Version: 18.03.0-ce
API version: 1.37
Go version: go1.9.2
Git commit: 0520e24
Built: Wed Mar 21 23:05:52 2018
OS/Arch: linux/amd64
Experimental: false
Orchestrator: swarm
Server:
Engine:
Version: 18.03.0-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.4
Git commit: 0520e24
Built: Wed Mar 21 23:14:54 2018
OS/Arch: linux/amd64
Experimental: false
Любые советы о том, как настроить это так, чтобы журналы в конечном итоге выглядели так, как должны в Stackdriver,очень цениться.