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

时间:2014-03-18 17:28:05

标签: python json rabbitmq logstash

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

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

但是没有发生这种情况,我仍然需要将过滤器添加到我的shipper.conf文件中。实际上,日志消息将作为logstash回复中的消息字段/标记出现。

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

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

1 个答案:

答案 0 :(得分:5)

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

然而,这就是模块的重点 - 它可以防止你自己编写和维护它。

logstash_formatter package将所有内容强制转换为字符串,进行日期处理,并在源主机为空的情况下捕获错误。该模块强制并转换您的日志文件,而logstash代理则负责发送它。您可以告诉您的托运人过滤掉某些标签或仅发送一些事件。

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