我的主要目的是将日志发送到Kiabana
,我得到了Logstash
的host
和port
(我老板给我的(
从这个网站:https://pypi.org/project/python-logstash/
我有一个这样的示例代码:
import logging
import logstash
import sys
host = '182.2....'
test_logger = logging.getLogger('python-logstash-logger')
test_logger.setLevel(logging.INFO)
test_logger.addHandler(logstash.LogstashHandler(host, 5959, version=1))
# test_logger.addHandler(logstash.TCPLogstashHandler(host, 5959, version=1))
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)
我跑了,但在Kibana上什么也没看到。(我被告知要选择index
(,但在示例代码中没有设置index
。
然后经过研究,我听说我需要设置一个名为logstash.conf
配置的文件,它应该看起来像这个
input {
udp {
port => 5959
codec => json
}
}
output {
stdout {
codec => rubydebug
}
}
但是我不知道该把文件放在哪里,
它应该和我的.py
代码文件在同一目录中吗。
我看不到我的.py
代码文件和logstash.conf
文件之间有任何连接
请帮忙!
您正在使用的python logstash库是一个帮助您将数据发送到logstash的库,它与您粘贴的logstash.conf
无关。
你共享的logstash.conf
是一个Logstash配置,它应该在Logstash的config目录中,但这个配置不会向Elasticsearch发送任何内容,你在Kibana中也看不到任何内容,所以你需要一个输出到Elasticsearch的配置,类似这样。
input {
udp {
port => 5959
codec => json
}
}
output {
elasticsearch {
hosts => ["your-elasticsearch-host:port"]
index => "your-index-name"
}
}
你或你公司的某个人需要在Logstash中创建一个管道,以接收该端口中的数据并将其发送到Elasticsearch,这样你就可以使用Kibana来可视化数据。
您的python脚本只需要logstash的端口和主机来发送数据,除此之外,您的python脚本和logstash配置之间没有任何连接。