То, чего я пытаюсь достигнуть, должно перенаправить печать Python от одного контейнера докера до другого (без любой модификации в коде Python) с graylog2 (я в настоящее время использую более старую версию, все в одном).
Таким образом, мой первый экземпляр докера содержит graylog сервер. Я создал второй экземпляр с Dockerfile, с помощью Ubuntu и включал простой сценарий, который печатает текущее время:
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)
Я использую команду ниже для запуска graylog
docker run -t -p 9000:9000 -p 12201:12201 graylog2/allinone
и запустить второй контейнер и запустить мой скрипт:
docker run --log-driver=gelf --log-opt gelf-address=udp://0.0.0.0:12201 test python -i ../test.py
Я пытаюсь отправить свои журналы в UDP GELF, не уверенный, если это - правильный путь, потому что нет никаких журналов вообще, неважно, которые обращаются/портируют, я выбираю. На данный момент я не могу даже зарегистрировать простое эхо от удара, но я не уверен, где проблема сама.
Мой 'входной' обзор:
Таким образом, мне удалось заставить его работать наконец. Моя проблема состояла в том, что я не указывал, который порт udp протокол будет использовать - в этом случае 12201. Для фиксации этого необходимо запустить его как это:
docker run -t -p 9000:9000 -p 12201:12201/udp graylog2/allinone