Sensu 모니터링에서 전화 일시 알림 및 대응 내역 관리
Sensu에서 메일뿐만 아니라 자체 장애 대응 관리 도구 "Reactio"라는 서비스를 이용하여 전화로 일제히 알림과 채팅에서 대응하는 방법을 공유합니다.
개요
Sensu 설정
Sensu란? ( htps : // / 센스 아 p. rg/ )
Ruby의 감시 소프트웨어. AWS등의 클라우드 환경에 강하고, API를 이용한 외부 제휴가 자랑.
초기 설정
초기설정과 각종 레퍼런스는 이 기사를 참고로 (할애)
h tp : 작은 m/s 페스 노바/있어 MS/f9 아 8c9661861 C453 에어 d
hadlers 등록
참고) htps : // / 센스 아 p. 오 rg / 드 cs / ㅁ st / 껌
/etc/sensu/conf.d/reactio_handler.json
{
"reactio": {
"api_key": "<APIキー>",
"organization": "demo"
},
"handlers": {
"reactio": {
"type": "pipe",
"command": "/etc/sensu/handlers/reactio_handler.rb",
"serverities": ["critical"]
}
}
}
Reactio 설정
Reactio란? ( h tps://레아 c치오. jp )
감시 시스템으로 검지한 장해 대응을 신속하게 실시해 대응이 그대로 기록되어 관리할 수 있는 툴.
프로젝트 API 키 등록
본가의 블로그를 참고(할애)
htp : // bg. Rea c Chio. jp/엔트리/2015/05/26/161408
인시던트 작성 프로그램 작성
reactio의 Ruby 버전 API 클라이언트를 사용하여 프로그램 만들기
참고) htp : // bg. Rea c Chio. jp/엔트리/2015/05/13/172036
reactio_handler.rb#!/usr/bin/env ruby
#
# Sensu Reactio Handler
# ===
require 'rubygems' if RUBY_VERSION < '1.9.0'
require 'sensu-handler'
require 'reactio'
require 'timeout'
require 'json'
class ReactioHandler < Sensu::Handler
def event_name
"#{@event['client']['name']}/#{@event['check']['name']}"
end
def handle
return unless @event['action'].eql?('create')
return unless @event['check']['status'].eql?(2)
begin
timeout(10) do
create_reactio_incident
puts "reactio -- incident #{event_name} created."
end
rescue Timeout::Error
puts "reactio -- timed out while attempting to #{@event['action']} a incident -- #{event_name}"
end
end
private
def create_reactio_incident
reactio.create_incident(
"#{event_name} #{@event['check']['output']}",
detection: 'internal',
notification_text: '対応をお願いします',
notification_call: false
)
end
def reactio
Reactio::Service.new(
api_key: settings['reactio']['api_key'],
organization: settings['reactio']['organization']
)
end
end
이상으로 설정 완료입니다.
요약
실제로 장애가 일어났을 때의 흐름
#!/usr/bin/env ruby
#
# Sensu Reactio Handler
# ===
require 'rubygems' if RUBY_VERSION < '1.9.0'
require 'sensu-handler'
require 'reactio'
require 'timeout'
require 'json'
class ReactioHandler < Sensu::Handler
def event_name
"#{@event['client']['name']}/#{@event['check']['name']}"
end
def handle
return unless @event['action'].eql?('create')
return unless @event['check']['status'].eql?(2)
begin
timeout(10) do
create_reactio_incident
puts "reactio -- incident #{event_name} created."
end
rescue Timeout::Error
puts "reactio -- timed out while attempting to #{@event['action']} a incident -- #{event_name}"
end
end
private
def create_reactio_incident
reactio.create_incident(
"#{event_name} #{@event['check']['output']}",
detection: 'internal',
notification_text: '対応をお願いします',
notification_call: false
)
end
def reactio
Reactio::Service.new(
api_key: settings['reactio']['api_key'],
organization: settings['reactio']['organization']
)
end
end
실제로 장애가 일어났을 때의 흐름
Reference
이 문제에 관하여(Sensu 모니터링에서 전화 일시 알림 및 대응 내역 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/norinux/items/3c30f4a148cf4a5d933b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)