【发布时间】:2017-07-03 08:20:31
【问题描述】:
我在从 python 登录到 logstash 时遇到了一些问题。
我正在使用来自 sebp/elk (http://elk-docker.readthedocs.io) 和 python-logstash (https://pypi.python.org/pypi/python-logstash) 的 docker 映像作为日志处理程序
docker 映像为 Beats 接口 (http://elk-docker.readthedocs.io/#usage) 公开端口 5044。每当我尝试登录到此端口时,什么都没有发生...我应该使用其他端口吗?
我已经通过这样做验证了 logstash 的工作原理:
/opt/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["localhost"] } }' --path.data /root/data
Python 代码(来自 python-logstash 的官方示例):
import logging
from logging import StreamHandler
import logstash
import sys
host = 'localhost'
test_logger = logging.getLogger('python-logstash-logger')
test_logger.setLevel(logging.INFO)
test_logger.addHandler(logstash.TCPLogstashHandler(host, 5044, version=1))
test_logger.addHandler(StreamHandler())
try:
test_logger.error('python-logstash: test logstash error message.')
test_logger.info('python-logstash: test logstash info message.')
test_logger.warning('python-logstash: test logstash warning message.')
# add extra field to logstash message
extra = {
'test_string': 'python version: ' + repr(sys.version_info),
'test_boolean': True,
'test_dict': {'a': 1, 'b': 'c'},
'test_float': 1.23,
'test_integer': 123,
'test_list': [1, 2, '3'],
}
test_logger.info('python-logstash: test extra fields', extra=extra)
except:
print("Error")
我不知道为什么这不起作用。会不会和 Beats 有关系?
【问题讨论】:
-
它确实与节拍有关,请改用这个 docker:github.com/deviantony/docker-elk,一切都像魅力一样工作
-
我正在使用 docker-elk,但您的解决方案面对的是