我使用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索引器,我不必为我的logstash代理在我的机器上运行的shipper.conf
文件添加过滤器。所有JSON字段将自动作为标签或字段添加到logstash中,并将在Kibana中显示为过滤器。
但是没有这样的事情发生,我仍然需要添加过滤器到我的shipper.conf
文件。实际上,日志消息是作为logstash回复中的消息字段/标记来的。
现在我觉得没有必要使用这个包。我会自己创建一个字典,并使用json
模块将其转换为JSON。
如果我错过了什么,或者我对这个格式化程序的理解是完全错误的,请指导我。
您是对的——您可以编写自己的脚本来获取记录并将其转储为JSON。
然而,这就是该模块的意义所在——它使您不必自己编写和维护它。
logstash_formatter包将所有内容强制转换为字符串,进行一些日期处理,并在源主机为空的情况下捕获错误。该模块强制并转换日志文件,而logstash代理负责发送日志文件。您可以告诉您的托运人过滤掉一些标签或只发送一些事件。
通过从Package Index下载来查看模块本身——在撰写本文时,它有154行,并且有很好的注释。