将文件logstash.conf放在python源中的何处



我的主要目的是将日志发送到Kiabana,我得到了Logstashhostport(我老板给我的(

从这个网站: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配置之间没有任何连接。

最新更新