将python打印输出重定向到graylog2

将python打印输出重定向到graylog2

我想要实现的是使用graylog2(我目前正在使用旧版本,全部合一)将python打印从一个docker容器重定向到另一个docker容器(无需对python代码进行任何修改)。

因此,我的第一个 docker 实例包含 graylog 服务器。我使用 Ubuntu 通过 Dockerfile 创建了第二个实例,并包含了打印当前时间的简单脚本:

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

我正在尝试将我的日志发送到 GELF UDP,不确定这是否是正确的方法,因为无论我选择哪个地址/端口,都没有任何日志。目前我甚至无法从 bash 记录简单的回显,但我不确定问题本身在哪里。

我的‘输入’概述:

我的“输入”概述

答案1

所以我终于让它工作了。我的问题是我没有指定要使用哪个端口 udp 协议 - 在本例中是 12201。要解决这个问题,您需要像这样启动它:

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

相关内容