python graypy根本就不发送

时间:2015-03-08 10:34:55

标签: python udp udpclient graylog2

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.')

无效

我认为问题是应发送给/gelf的网址 因为当我从终端卷曲到我的graylog服务器时,它可以正常工作

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

2 个答案:

答案 0 :(得分:5)

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

现在你应该能够收到消息了

答案 1 :(得分:1)

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

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

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