我使用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。
如果我遗漏了某些内容,或者我对此格式化程序的理解完全错误,请指导我。
答案 0 :(得分:5)
你是对的 - 你可以编写自己的脚本来获取记录并将它们转储为JSON。
然而,这就是模块的重点 - 它可以防止你自己编写和维护它。
logstash_formatter package将所有内容强制转换为字符串,进行日期处理,并在源主机为空的情况下捕获错误。该模块强制并转换您的日志文件,而logstash代理则负责发送它。您可以告诉您的托运人过滤掉某些标签或仅发送一些事件。
通过从软件包索引中下载它来查看模块本身 - 在撰写本文时,它是154行并且评论很好。