代码之家  ›  专栏  ›  技术社区  ›  Ohad Perry

python-graypy根本不发送

  •  3
  • Ohad Perry  · 技术社区  · 10 年前
    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 -XPOST http://my_graylog_server:12201/gelf -p0 -d '{"short_message":"Hello there", "host":"example1111.org", "facility":"test", "_foo":"bar"}'
    
    2 回复  |  直到 10 年前
        1
  •  7
  •   Alexander Schäfer    10 年前

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

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

        2
  •  1
  •   Justin Fortier    10 年前

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

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

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