Utilizzo di env / label del driver GELF docker in logstash

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.