簡體   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