Logstash 弹性堆栈,如何发送自定义python日志
因此,我在python中有一些自定义日志记录,它来自多个进程,以如下格式记录某个崩溃Logstash 弹性堆栈,如何发送自定义python日志,logstash,elastic-stack,Logstash,Elastic Stack,因此,我在python中有一些自定义日志记录,它来自多个进程,以如下格式记录某个崩溃 {timestamp},{PID},{Cause} 现在,我希望这些事件被发送到logstash,并在ELK中使用,以便稍后在我的kibana仪表板上查看一些信息。我以前从未使用过麋鹿,所以我的问题是,什么是最好的方法 -使用python logstash并同时拥有2个记录器 -只需在记录阵列时将其发送到logstash(我想是HTTP?),然后使用dissect -当记录器记录行时,生成一个JSON并将其发
{timestamp},{PID},{Cause}
现在,我希望这些事件被发送到logstash,并在ELK中使用,以便稍后在我的kibana仪表板上查看一些信息。我以前从未使用过麋鹿,所以我的问题是,什么是最好的方法
-使用python logstash并同时拥有2个记录器
-只需在记录阵列时将其发送到logstash(我想是HTTP?),然后使用dissect
-当记录器记录行时,生成一个JSON并将其发送到logstash?如果您只想发送崩溃,那么使用单独的记录器非常方便
logger.addHandler(logstash.TCPLogstashHandler(host, 5959, version=1)
并为tcp输入配置日志存储管道
input {
tcp {
port => 5959
}
}
filter {
json {
source => "message"
}
}
output {
elasticsearch {
hosts => "elasticsearch:9200"
}
}
要发送类似json的数据,请在python中填充dict,然后使用带有额外参数的记录器发送
logger.log(level=logging.WARN,msg=“进程崩溃”,extra={'PID':PID',Cause':Cause})
结果记录看起来像
{
PID:321,
原因:“abcde”,
时间戳:“2019-12-10T13:37:51.906Z”,
消息:“进程崩溃”
}