실수로 URL을 모니터링하는 'zatsu_monitor'

5106 단어 5감시
복잡한 URL 모니터링 도구입니다.
htps : // 기주 b. 코 m / 스에 445 / 자츠 _ 모토와 r

만든 경위



사내외에서 공개하고 있는 개인 앱을 URL 감시하고 싶었을 뿐입니다. (Mackerel이라고 사내 앱1이 감시할 수 없기 때문에 사용할 수 없었다)

설치 방법



htps : // 기주 b. 코 m / 스에 445 / 자츠 _ 모토와 r / 레 에세 s에서 바이너리를 다운로드하여 어딘가에 두십시오.

사용법



실수로 yaml을 쓰고

config.yml
# zatsu_monitor.yml
google:
  type: slack
  check_url: "https://www.google.com/"
  api_token: "AAAAAAAA"
  channel: "#general"
  user_name: "zatsu_monitor"
github:
  type: chatwork
  check_url: "https://github.com/"
  api_token: "AAAAAAAA"
  room_id: "111111"

실수로 실행
/path/to/zatsu_monitor -config /path/to/zatsu_monitor.yml -data /path/to/data_dir
  • -config : 설정 파일의 위치
  • -data : 이전 http 상태를 저장하는 캐시 디렉토리

  • 상태가 변경되었을 때만 게시





    사양


  • golang 제이므로 바이너리를 다운로드하고 잡히면 어디서나 움직입니다.
  • htps : // 기주 b. 코 m / 스에 445 / 자츠 _ 모토와 r / 레 에세 s
  • 불필요한 중간 불필요
  • crontab 또는 Jenkins에서 정기적으로 실행할 가정

  • URL을 HTTP GET하여 상태 코드가 변경된 경우에만 채팅에 알림 (예 : 200 -> 500)
  • Slack 및 ChatWork 지원
  • 다른 것을 원한다면 PR 카몬


  • 특징



    yaml이므로 값을 상속 할 수있는 것이 기쁘다.



    토큰 등을 한 곳에 정의하여 모니터링하려는 사이트에서 상속할 수 있습니다.

    config.yml
    slack: &common
      type: slack
      channel: "#general"
      api_token: "xoxp-0000000000-0000000000-0000000000-000000"
    
    github:
      # inherit common values
      <<: *common
    
      # override common values
      check_url: "https://github.com/"
      chennel: "#github"
    
    google:
      <<: *common
      check_url: "https://www.google.com/"
      chennel: "#google"
    

    상태 코드의 100 정도의 변화만 확인하고 싶습니다.



    v0.2.0의 새로운 기능입니다.

    회사에서 사용하고 있는 서비스가 에러시 상태 코드 502, 503, 504를 무작위로 반환한다는 현상이 자주 발생하며, 그 때마다 채팅에 통지가 가는 것이 까다롭기 때문에 상태 코드의 100 정도만 확인하는 기능을 만들었습니다.

    사용하려면 config.ymlcheck_only_top_of_status_code: true로 설정하십시오.

    config.yml
    some:
      check_only_top_of_status_code: true
    

    추억



    ISUCON 예선 당시 팀의 앱을 모니터링하는 데 유용했습니다.



    사내 인트라에서만 액세스할 수 있는 앱 

    좋은 웹페이지 즐겨찾기