Ich habe einige Probleme beim Loggen von Python Logstash.Protokollierung von Python auf Logstash
Ich bin mit einem Docker Bild von SEBP/elk (http://elk-docker.readthedocs.io) und Python-logstash (https://pypi.python.org/pypi/python-logstash) als Protokollhandler
Das Docker Bild macht Port 5044 für die Beats-Schnittstelle (http://elk-docker.readthedocs.io/#usage). Wann immer ich versuche, an diesem Port zu loggen nichts passiert passiert ... Gibt es einen anderen Port, den ich verwenden sollte?
Ich habe festgestellt, dass logstash Werke dies zu tun:
/opt/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["localhost"] } }' --path.data /root/data
Python-Code (offizielles Beispiel aus 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")
ich keine Ahnung, warum dies nicht funktioniert. Hat es vielleicht etwas mit Beats zu tun?
Es macht etwas mit Beats zu tun haben, verwenden Sie diese Docker statt: https://github.com/deviantony/docker-elk und alles funktionierte wie ein Zauber – user3594184