繁体   English   中英

将Sensu处理程序用于Elasticsearch时,日志将被覆盖

[英]When using the Sensu Handler for Elasticsearch, the logs are overwritten

我在GitHub上找到了一个sensu处理程序,用于将数据传送到elasticsearch。 可以在这里https://github.com/m4ce/sensu-handlers-elasticsearch看到。 我已配置此处理程序以将keepalive事件发送到Elasticsearch。 生成严重事件时,日志显示在Elasticsearch中。 但是,解决此事件后,关键日志将被覆盖并替换为已解决的日志。我需要同时跟踪关键和已解决的日志,因此我无法覆盖任何日志。 是否有人遇到过同样的问题,或者有人知道如何解决此问题?

谢谢,

上午

Sensu处理程序要发布到的URI是:

<elasticsearch_url>/<index>/<type>/<document_id>

(您可以在构建URI的处理程序的第53行上看到这一点)

哪里:

  • <elasticsearch_url>--url参数。
  • <index>--index参数。
  • <type>--type参数。
  • <document_id>Sensu事件id字段。

关于这为什么以您描述的方式发生有两点需要注意:

  1. 不论事件的status如何,Sensu事件将始终具有相同的ID。
  2. 在Elasticsearch中,发布文档将覆盖具有相同ID(Elasticsearch中的_id字段)的现有文档。

似乎您每次Sensu都在寻找唯一的Elasticsearch文档,这仅仅是修改Sensu处理程序以写入具有真正唯一<document_id>而不是Sensu事件唯一的URL的问题。 如果您允许,Elasticsearch将自动处理生成唯一的文档ID。 这意味着您应该能够通过以下方式修改处理程序的第53行来轻松解决此问题:

uri = URI("#{config[:url]}/#{index}/#{config[:type]}/#{@event['id']}")

至:

uri = URI("#{config[:url]}/#{index}/#{config[:type]}")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM