将 python 打印输出重定向到 graylog2

Redirect python print output to graylog2

我想要实现的是使用 graylog2(我'我目前使用旧版本,合二为一)。

所以我的第一个 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,不确定它是否正确,因为无论我选择哪个 address/port,都没有任何日志。现在我什至无法记录来自 bash 的简单回显,但我不确定问题本身在哪里。

您必须为 graylog2 容器绑定 udp 端口​​。

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