2016-10-21 2 views
3

도커 GElf는 로그 드라이버는 envlabels 로그-의 opts 수 있습니다 :사용하여 고정 표시기의 GElf는 드라이버 ENV/라벨

라벨 및 ENV 옵션은 GElf는 로깅 드라이버에 의해 지원됩니다. 그것은 밑줄 (_)로 접두어가 붙은 추가 필드에 대한 추가 키를 (ref)

내가 elasticsearch 출력 내 인덱스 이름이 사용하고자하지만 난에 액세스 할 수있는 방법을 알아낼 수 없었다 추가 이 값 또는 상기 extra 필드.

, 나는 용기를 실행하는 옵션을 가지고 있다고 가정

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' 
내가 같은 내 logstash의 설정에 전달 된 env 값을 사용하려면

:

input { 
    gelf { } 
} 

output { 
    elasticsearch { 
    hosts => ["http://127.0.0.1:9200"] 
    index => "logstash-%{env-value-here}-%{tag}-%{+YYYY.MM.dd}" 
    } 
} 

에 보인다을 Graylog의 env/labels에 대한 또 다른 질문입니다. Docker GELF driver env option

답변

7

이 옵션을 추가 한 PR을 읽은 후, 그것이 일하기로되어있는 방법을 derodood.

--log-opt labels=a,b,c (env와 동일)는 GELF 이벤트에 포함 할 키를 정의합니다. 값은 실제로 docker 레이블과 환경 변수에서 검색됩니다.

--log-opt labels=foo --label foo=bar은 이벤트에 foo: bar을 포함합니다.

+0

대단히 감사합니다. 이것은 완벽하게 작동하고 여러 가지를 태그에 넣는 것보다 훨씬 더 멋지다. 도커 문서는 여기에 명확하지 않습니다 – herm

+0

enlightment 주셔서 감사합니다! Docker 설정은 꽤 오해의 소지가 있습니다! – derFunk

관련 문제