Redireciona a saída de impressão em python para graylog2

2

O que estou tentando alcançar é redirecionar a impressão python de um contêiner docker para o outro (sem nenhuma modificação dentro do código python), com graylog2 (atualmente estou usando uma versão mais antiga, tudo em um).

Portanto, minha primeira instância do docker contém o servidor graylog. Eu criei segunda instância com o Dockerfile, usando o Ubuntu e incluí um script simples que imprime a hora atual:

from datetime import datetime
import time

date = datetime.now()
print(str(date.day) + '/' + str(date.month) + '/' + str(date.year))
while True:
   date = datetime.now()
   print(str(date.hour) + ':' + str(date.minute) + ':' + str(date.second))
   time.sleep(1)

Estou usando o comando abaixo para iniciar o graylog

docker run -t -p 9000:9000 -p 12201:12201 graylog2/allinone

e para iniciar o segundo contêiner e executar meu script:

docker run --log-driver=gelf --log-opt gelf-address=udp://0.0.0.0:12201 test python -i ../test.py

Estou tentando enviar meus logs para o GELF UDP, não tenho certeza se é o caminho certo, porque não há registros, seja qual for o endereço / porta que eu escolher. Por enquanto não consigo nem mesmo fazer um eco simples do bash, mas não tenho certeza de onde está o problema em si.

Visão geral de minha "entrada":

    
por PotatoBox 14.08.2016 / 22:24

1 resposta

1

Então eu consegui fazer isso funcionar finalmente. Meu problema é que eu não especifiquei qual protocolo UDP usará - neste caso, 12201. Para corrigir isso, você precisa começar assim:

docker run -t -p 9000:9000 -p 12201:12201/udp graylog2/allinone
    
por PotatoBox 17.08.2016 / 17:59