我在GitHub上找到了一个sensu处理程序,用于将数据发送到elasticsearch。可以在这里看到https://github.com/m4ce/sensu-handlers-elasticsearch。我已经将此处理程序配置为向Elasticsearch发送keepalive事件。当生成关键事件时,日志会出现在Elasticsearch中。但是,在解决此事件时,关键日志将被覆盖,并替换为已解决的日志。.I需要同时跟踪关键日志和已解决的日志,因此不能覆盖任何日志。有没有人遇到过同样的问题,或者有谁知道如何解决这个问题?
谢谢,
上午
发布于 2017-05-09 20:32:53
Sensu处理程序被POSTing到的URI是:
<elasticsearch_url>/<index>/<type>/<document_id>
(您可以在构建URI的处理程序的第53行看到这一点)
其中:
<elasticsearch_url>是Sensu事件的parameter.<index> is --index --type是Sensu事件的id字段。关于为什么会以您所描述的方式发生,有两点需要注意:
status是什么,都将始终具有相同的ID。_id字段看起来您要为每个Sensu事件寻找一个唯一的Elasticsearch文档,这只需要修改Sensu处理程序以写入具有真正唯一的<document_id>的URL,而不是Sensu事件唯一的URL。Elasticsearch将自动生成唯一的文档ID,如果您允许的话。这意味着您应该能够相当容易地解决这个问题,只需修改处理程序的第53行:
uri = URI("#{config[:url]}/#{index}/#{config[:type]}/#{@event['id']}")
至:
uri = URI("#{config[:url]}/#{index}/#{config[:type]}")
https://stackoverflow.com/questions/43576625
复制相似问题