Aktuelle Setup läuft Docker-Container mit dem fluentd
Fahrer kontrollieren:Wie fluentd Protokoll Tag von Docker
docker run --log-driver=fluentd my-container
Die ganz einfach funktioniert ... sendet stdout an das lokal fluentd System auf dem Host ausgeführt.
Ich möchte die fluentd tag
mit einigen der Etiketten, die auf dem Container festgelegt sind, steuern. Für dieses Beispiel sei angenommen, einige Etiketten (docker inspect
Snippet):
"Config": {
"Labels": {
"com.amazonaws.ecs.container-name": "web",
"com.amazonaws.ecs.task-definition-version": "3"
}
}
Wie kann ich die fluentd
tag
durch Extraktion aus einem oder mehreren der Labels
?
Die Docker docs auf dieser Liste aus den aktuell unterstützten Tags: https://docs.docker.com/engine/admin/logging/log_tags/
Diese Dokumente zur Kenntnis ExtraAttributes
machen ... aber ich kann herausfinden, wie zu bedienen, dass man nachschlagen oder mehr Etiketten. Beim Durchlesen der Docker Code ist es mir nicht klar: https://github.com/docker/docker/blob/master/daemon/logger/context.go#L29
Diese trivial ist mit docker inspect
zu tun:
docker inspect --format '{{index .ContainerLabels "com.amazonaws.ecs.container-name"}}'
Ich möchte grep, um die gleichen Informationen und bekommen es in log-opt tag=?
Schöne ... das ist genau das, was ich brauchte. Danke @Matt! – brianz
Irgendwelche Ideen, warum das Folgende: 'tag: '{{index .ContainerLabels" io.rancher.stack.name "}}' 'gibt mir einen Yaml-Fehler:> unerwartetes Ende des Streams gefunden? (Arbeiten an 'Rancher 1.6.10') – pkaramol
Das klingt wie ein JSON-Charakter wird nicht in der TAG entkommen? – Matt