3
import logging
import graypy

my_logger = logging.getLogger('test_logger')
my_logger.setLevel(logging.DEBUG)

handler = graypy.GELFHandler('my_graylog_server', 12201)
my_logger.addHandler(handler)

my_adapter = logging.LoggerAdapter(logging.getLogger('test_logger'),
                                   { 'username': 'John' })

my_adapter.debug('Hello Graylog2 from John.')

不管用

我认为问题是应该发送到的 url,/gelf 因为当我从终端 curl 到我的 graylog 服务器时,它可以工作

 curl -XPOST http://my_graylog_server:12201/gelf -p0 -d '{"short_message":"Hello there", "host":"example1111.org", "facility":"test", "_foo":"bar"}'
4

2 回答 2

6

打开您的 Graylog Web 应用程序,单击“系统”。您将在右侧看到一个链接列表。其中一个是“输入”,点击这个。现在您可以概览所有正在运行的输入,并在不同的端口上进行监听。在页面顶部,您可以创建一个新页面。应该有一个包含输入侦听器某些模式的下拉框(我认为“GELF AMQP”是标准的)。将此更改为 GELF UDP 并在下一个对话框中单击“启动新输入”,您可以为服务指定一个端口。您还必须设置一个必须存储消息的节点。该节点与(或应该具有)与您的整个 graylog2 系统相同的 IP。

现在您应该可以接收消息了

于 2015-06-09T08:48:54.313 回答
1

我认为您已经为 Gelf TCP 而不是 UDP 设置了输入流。我设置了一个 TCP 流,它收到了 curl 消息。但是我的 python 应用程序不会发送到流。然后我创建了一个 Gelf UDP 流,瞧!不久前,我在配置 Graylog EC2 设备时遇到了同样的问题。

还要确保防火墙/安全组也不会阻止端口 12201 上的 UDP 协议。

祝你好运,我希望这是你的问题!

于 2015-03-20T19:43:55.500 回答