Il driver di registro Docker GELF consente l' env
e le labels
log-opts:
Le etichette e le opzioni env sono supportte dal driver di logging di gelf. Aggiunge una chiave aggiuntiva sui campi aggiuntivi , prefissati da un sottolineatura (_) ( ref )
Voglio usare questo nel mio nome di indice per l'output di elasticità, ma non sono riuscito a capire come posso accedere a questi valori oi campi extra
.
Supponendo di avere queste opzioni in esecuzione di un contenitore,
docker run -it \ --log-driver gelf \ --log-opt gelf-address=udp://127.0.0.1:12201 \ --log-opt tag=some-app \ --log-opt env=staging \ --log-opt labels=staging \ ubuntu:16.04 /bin/bash -c 'echo Hello World'
Vorrei utilizzare il valore env
che ho passato nella configuration logstash come tale:
input { gelf { } } output { elasticsearch { hosts => ["http://127.0.0.1:9200"] index => "logstash-%{env-value-here}-%{tag}-%{+YYYY.MM.dd}" } }
Sembra essere un'altra domanda su env / etichette con Graylog: Docker GELF driver env opzione
Dopo aver letto il PR che ha aggiunto questa opzione, ho capito che ho frainteso come whereva funzionare.
--log-opt labels=a,b,c
(same con env) definiscono le chiavi da includere nell'evento GELF. I valori sono effettivamente recuperati dalle etichette docker e dalle variables di ambiente rispettivamente.
--log-opt labels=foo --label foo=bar
include foo: bar
nell'evento.