При использовании обработчика Sensu для Elasticsearch журналы перезаписываются.


person user7814302    schedule 23.04.2017    source источник


Ответы (1)


URI, который обработчик Sensu отправляет POST:

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

(вы можете увидеть это в строке 53 обработчика, где создается URI)

Где:

  • <elasticsearch_url> — это параметр --url.
  • <index> — это параметр --index.
  • <type> — это параметр --type.
  • <document_id> — это поле id события Sensu.

Есть две вещи, на которые следует обратить внимание, почему это происходит так, как вы описали:

  1. Событие Sensu, независимо от status события, всегда будет иметь один и тот же идентификатор.
  2. В Elasticsearch отправка документа POST перезапишет существующий документ с тем же идентификатором (поле _id в Elasticsearch).

Похоже, что вы ищете уникальный документ Elasticsearch для каждого экземпляра Sensu, и для этого нужно просто изменить обработчик Sensu, чтобы он писал URL-адрес, который имеет действительно уникальный <document_id> вместо одного уникального для событие Сенсу. Elasticsearch будет автоматически генерировать уникальные идентификаторы документов, если вы позволите. Это означает, что вы сможете довольно легко решить эту проблему, изменив строку 53 обработчика с:

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

to:

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

person vase    schedule 09.05.2017