2017-04-23 8 views
0

elasticsearch에 데이터를 전송하기 위해 GitHub에서 sensu 처리기를 발견했습니다. 여기에 볼 수 있습니다 https://github.com/m4ce/sensu-handlers-elasticsearch. Keepalive 이벤트를 Elasticsearch에 보내도록이 핸들러를 구성했습니다. 치명적인 이벤트가 생성되면 로그가 Elasticsearch에 나타납니다. 그러나이 이벤트가 해결되면 중요한 로그를 덮어 쓰고 해결 된 로그로 바꿉니다. 중요 로그와 확인 된 로그를 모두 추적해야 모든 로그를 덮어 쓸 필요가 없습니다. 누구나 같은 문제가 있었나요? 아니면 누구든지이 문제를 해결하는 방법을 알고 있습니까?Sensut Handler for Elastic Search를 사용하는 경우 로그를 덮어 씁니다.

감사합니다,

오전

답변

0

URI입니다 Sensu 핸들러는에 게시됩니다 : URI가 어디

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

(당신은 핸들러의 라인 (53)에이를 볼 수 있습니다 내장형)

  • <elasticsearch_url>--url 매개 변수입니다.
  • <index>--index 매개 변수입니다.
  • <type>--type 매개 변수입니다.
  • <document_id>Sensu 이벤트id 필드입니다. 항상 같은 ID가됩니다에 관계없이 이벤트의 status

    1. Sensu 이벤트 :

이 당신이 설명하는 방식으로 일어나고있는 이유에 대해 주목해야 할 두 가지가 있습니다.

  • Elasticsearch에서 문서를 게시하면 동일한 ID (탄성 검색에서 _id 필드)로 기존 문서를 덮어 씁니다. 그냥 정말 <document_id> 독특한 대신 하나의 고유이있는 URL로 쓸 Sensu 핸들러를 수정하는 문제가 될 것 Sensu 발생마다 고유 Elasticsearch 문서 을 찾고있는 것처럼
  • 보인다 Sensu 이벤트. Elasticsearch는 고유 한 문서 ID 생성을 자동으로 처리합니다.

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

    에 :

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

    즉,에서 핸들러의 라인 (53)을 수정하여, 비교적 쉽게이 문제를 해결 할 수 있어야 의미