将Python日志文件写入Logstash

6

我目前正在使用由Docker提供的ELK堆栈:

https://github.com/deviantony/docker-elk

为了登录我的Python程序,我正在使用python-logstash库:

https://github.com/vklochan/python-logstash

我正在尝试使用 python-logstash GitHub 页面上的示例将日志写入 logstash(并在 Kibana 中查看随后的数据):

LOGGER = logging.getLogger('python-logstash-logger')
LOGGER.setLevel(logging.INFO)
LOGGER.addHandler(logstash.LogstashHandler(127.0.0.1, 5000, version=1))
LOGGER.error('python-logstash: test logstash error message.')

然而,通过以下验证可知,这并没有将任何数据写入ElasticSearch:
http://127.0.0.1:9200/_search?pretty=true

使用 python-logstash 库时,没有返回任何错误或调试信息。

有人可以指出我做错了什么吗?

我的 logstash.conf 包含以下内容:

input {
tcp {
        port => 5000
        codec => json
    }
}

output {
    elasticsearch {
        hosts => "elasticsearch:9200"
        codec => rubydebug
    }
}

你能在输出部分添加 stdout{} 吗?你能看到日志吗?如果不能,你可以运行 tcpdump port 5000 并检查是否能看到 Python 日志飞过。 - Val
我遇到了完全相同的问题。您找到了任何解决方案吗? - Avihoo Mamka
我有同样的问题 :( 添加一些信息:所有容器都是可达的,如果我手动从源头发布到logstash,它可以工作。 - Christian Sauer
1个回答

1
使用

标签。

LOGGER.addHandler(logstash.TCPLogstashHandler(127.0.0.1, 5000, version=1))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接