我在GitHub上找到了一个sensu处理程序,用于将数据发送到elasticsearch。这里可以看到https://github.com/m4ce/sensu-handlers-elasticsearch。我已配置此处理程序以将keepalive事件发送到Elasticsearch。生成关键事件时,日志将显示在Elasticsearch中。但是,解决此事件后,将覆盖关键日志并替换为已解析的日志。我需要跟踪关键日志和已解决日志,以便我无法覆盖任何日志。有没有人有同样的问题,或者有谁知道如何解决这个问题?
谢谢,
AM
答案 0 :(得分:0)
Sensu处理程序POST的URI是:
<elasticsearch_url>/<index>/<type>/<document_id>
(你可以在构建URI的处理程序的第53行看到这个)
其中:
<elasticsearch_url>
是--url
参数。<index>
是--index
参数。<type>
是--type
参数。<document_id>
是 Sensu事件的id
字段。有两件事需要注意,为什么会出现这种情况:
status
如何,Sensu事件将始终具有相同的ID。_id
字段)的现有文档。您似乎正在寻找一个独特的Elasticsearch文档 per Sensu occurrence ,这只是修改Sensu处理程序以写入具有真正唯一的URL { {1}}而不是Sensu事件的唯一一个。如果您允许,Elasticsearch将自动生成唯一的文档ID。这意味着你应该能够通过修改处理程序的第53行来轻松解决这个问题:
<document_id>
为:
uri = URI("#{config[:url]}/#{index}/#{config[:type]}/#{@event['id']}")