Текущая установка работает контейнеры Docker с водителем fluentd
:Как контролировать fluentd тег журнала из Докер
docker run --log-driver=fluentd my-container
Это работает довольно легко ... посылает стандартный вывод в локально работающей fluentd системы на хосте.
Я хотел бы управлять fluentd tag
с использованием некоторых меток, установленных на контейнере. Для этого примера предположим, некоторые метки (docker inspect
фрагмент кода):
"Config": {
"Labels": {
"com.amazonaws.ecs.container-name": "web",
"com.amazonaws.ecs.task-definition-version": "3"
}
}
Как я могу установить fluentd
tag
путем извлечения из одного или нескольких из Labels
?
докер документы в этом списке из поддерживаемых в настоящее время теги: https://docs.docker.com/engine/admin/logging/log_tags/
Эти документы делают к сведению ExtraAttributes
... Однако я могу понять, как использовать это, чтобы посмотреть одну или несколько меток. Чтение через код Docker это мне не ясно: https://github.com/docker/docker/blob/master/daemon/logger/context.go#L29
Это тривиально сделать с docker inspect
:
docker inspect --format '{{index .ContainerLabels "com.amazonaws.ecs.container-name"}}'
Я хотел бы Grep ту же информацию и получить его в log-opt tag=?
Красивая ... это именно то, что мне было нужно. Спасибо @Matt! – brianz
Любые идеи, почему следующее: 'tag: '{{index .ContainerLabels" io.rancher.stack.name "}}' 'дает мне ошибку yaml:> нашел неожиданный конец потока? (работает на 'rancher 1.6.10') – pkaramol
Это звучит как символ JSON не сбегает в TAG? – Matt