我对logstash有一个相当具体的架构问题。
我们有硬件设备生成的日志文件非常神秘。在将JSON发送到elasticsearch之前,必须进行某种转换和增强。例如,我得到的数字数组应该转换成可读的东西。某种枚举值转换。
在进行这些转换时,事情会变得更加复杂。例如,每个设备都有一个配置文件,必须考虑进行转换。
现在IMO有3个意见来实现这个目标:
你有这方面的经验吗?你更喜欢什么?为什么?
BW休伯特答案 0 :(得分:0)
首先,我同意你的看法。您将使用某些内容操作数据(logstash过滤器,节拍,...)并转发到某个位置(elasticsearch或其他logstash)。
在我看来,logstash对于生产服务器而言太重了。我们之前使用它并且它使用了太多资源。 Elasticsearch有Beats来处理这个问题。 (我知道这不仅仅是这种情况。)您可以使用beats从文件中收集日志。在您的情况下,使用已存在的问题存在极端问题。日志是神秘的或其他什么。如果您已经能够加密数据,则可以将自定义节拍写入更小的解决方案。我认为这可能比编写logstash插件更容易,但还有另一个挑战是Golang。我不知道logstash插件,但我之前写过beat。您可以查看优秀的beats documentation来创建一个。
为系统创建节拍后,您可以将日志转发到logstash。有一份关于this的文件。此外,您可以在this repo中查看文件配置以获取真实示例。