본문

테크
간단하게 나만의 URL 모니터링 만들기

작성일 2023년 06월 26일
main

들어가며

2019년 4월에 출시 된 와탭 URL 모니터링은 2022년 5월 1일 무료화 이후 많은 고객 분들이 애용해주시는 걸로 알고 있습니다. 이번 콘텐츠에서는 URL모니터링 서비스를 직접 구축해보고, 와탭 URL 모니터링과 비교해보도록 하겠습니다.

URL 모니터링이란

URL 모니터링은 최종 사용자 입장에서의 웹 사이트 접속 정상 여부를 판단하기 위한 용도의 모니터링 서비스입니다. 즉 모니터링 에이전트가 사이트에 대한 접속을 수행하고, 접속 결과를 수집하여 저장 및 알림을 전송을 하는 서비스라고 말할 수 있습니다.

[와탭 URL 모니터링]

URL 모니터링을 만든 이유

회사에 URL 모니터링 서비스가 있고, 그 외에도 다양한 URL 모니터링 서비스, 오픈소스가 있음에도 직접 URL 모니터링 서비스를 구현한 이유는 크게 3가지가 있습니다.

  1. 엔지니어의 호기심

엔지니어라는 직업은 끝없이 궁금해 하는 직업이라고 생각합니다. 데이터를 수집하는 방식을 머리로 알고 있었지만, 실제로 구현을 하였을 때 정상적으로 데이터를 수집할지 궁금하였습니다.

와탭 URL 모니터링과의 비교

자사에서 제공하는 서비스를 사용했을 때, 직접 구축해서 사용하는 것에 비해 어떠한 장점이 있는지 알고 싶었습니다.

다양한 방식의 알람

와탭 URL 모니터링 에서도 SMS, EMAIL, Slack, Telegram, 잔디 등 다양한 알림 모듈을 제공하지만, 입맛에 맞게 알림을 커스텀해서 사용하고 싶었습니다.

1. URL Monitoring 구축 방법

아키텍처

main
  1. url_agent.json에서 Slack과 InfluxDB에 데이터를 보내기 위한 내용을 가져옵니다.

• 빈 값일 시 알림 전송 및 데이터 저장 X

url.json에서 url의 리스트와 최대 연결 시도 시간, 알림 조건을 가져옵니다. URL Monitoring에서는 가져온 URL에 Request를 보냅니다. Response를 받아 StatusCode와 ReponseTime을 InfluxDB에 보냅니다. 알림 조건에 맞을 시 Slack에 메시지를 전송합니다.

2. 로직

  1. url.json에서 URL리스트를 읽어와 반복문을 돌면서, URL에 Request를 보내고 알림 및 데이터 저장을하는 Goroutine생성을 합니다.
main
TimeOut설정과 함께 URL에 Request를 전송하고, 소요 시간을 체크합니다.

(default Timeout 5s)

main
StatusCode를 획득해 Influxdb에 데이터를 넣는 GoRoutine과 알림조건을 체크해 Slack 에 보내는 Goroutine을 생성합니다.

(url_agent.json에 설정이 안되어있을 시 해당 작업 무시)

main

설치 및 사용방법

Source
  • 해당 Repository로 이동합니다.

[GitHub-cjm2921401]

Download
  • build폴더로 이동 후 운영체제에 맞는 zip 파일를 다운로드 받습니다.
main
Setting
  • 다운로드 받은 zip파일을 압축 해제 후 json파일 설정합니다.

url_agent.json

main
InfluxDB와 Slack App이 설정이 되어 있다면 해당 값들을 입력해줍니다.
빈 값일 때 InfluxDB or Slack 모듈이 작동하지 않습니다.

url.json

main

•name : 별칭

•url : 호출하고 싶은 Url (https://www.naver.com)

https:// or http://존재하지 않을 시 http://를 붙인 url 생성

•timeout : 최대 접속 시도 시간

max, default : 5s

•alert

4xx : 400번대 에러가 있을 경우 알림 발생 5xx : 500번대 에러가 있을 경우 알림 발생 unknown : 1xx~5xx외에 에러 발생 시 알림 발생
Excute
  • mayf_urlagent or mayf_urlagent.exe를 실행

결과

Output
  • 1분에 한 번씩 수집해 InfluxDB에 전송
main
InfluxDB UI에서 데이터 확인 가능

(Unknown → StatusCode 999로 표현)

main
Slack에서 알림 확인 가능
main

와탭 URL 모니터링과의 비교

  • 와탭 URL 모니터링과 비교해 다음과 같은 특성을 가집니다.
main

마치며

이번 콘텐츠에서는 웹 사이트 접속 정상 여부를 판단하기 위한 용도의 모니터링 서비스인 URL 모니터링 서비스를 직접 구축하여 보았습니다. URL 모니터링 서비스를 직접 구축하는 게 간단해 보이지만, 생각보다 손이 많이 가는 작업이었고, 이러한 서비스를 무료로 오픈한 자사의 결정에 감탄하였습니다. 혹시 URL모니터링 서비스를 아직까지 오픈소스 혹은 실제로 구축해서 사용하고 계신 분들에게 와탭 URL 모니터링 서비스를 적극 추천합니다.

서비스 성능관리는 와탭 애플리케이션 모니터링으로!
와탭 무료로 시작하기
최정민[email protected]
DevOps TeamDevOps Engineer

지금 바로
와탭을 경험해 보세요.