为什么我们在Python中使用logstash_formatter包?

Bhu*_*ant 4 python json rabbitmq logstash

我使用logstash_formatterpython模块将格式化日志发送到logstash.在logstash_formatter我的字典传递转换成JSON字符串.我的应用程序然后将此JSON消息写入该audit_log文件.logstash agent正在读取此日志文件并将JSON数据发送到RabbitMQ.

logstash_formatterhttps://pypi.python.org/pypi/logstash_formatter安装软件包之前,我预计由于此格式化程序将JSON消息传递给RabbitMQ索引器,因此我不必shipper.conf为运行在其上的logstash代理向我的文件添加过滤器我的机器.所有JSON字段将自动添加为标记或字段以进行logstash,并且与Kibana中的过滤器相同.

但事情并非如此,我仍然需要将过滤器添加到我的shipper.conf文件中.实际上,日志消息将作为logstash回复中的消息字段/标记出现.

现在我觉得没有必要使用这个包.我会自己创建一个dict并使用json模块将其转换为JSON .

如果我遗漏了某些内容,或者我对这个格式化程序的理解完全错误,请指导我.

小智 5

你是对的 - 你可以编写自己的脚本来获取记录并将它们转储为JSON.

但是,这就是模块的重点 - 它可以防止您自己编写和维护它.

logstash_formatter包胁迫一切为字符串,做一些日期处理,并在源主机是空的情况下捕获了一个错误.该模块强制并转换您的日志文件,而logstash代理则负责发送它.您可以告诉您的托运人过滤掉某些标签或仅发送一些事件.

通过从包索引下载它来查看模块本身 - 在撰写本文时,它是154行并且评论很好.