2019년 4월에 출시 된 와탭 URL 모니터링은 2022년 5월 1일 무료화 이후 많은 고객 분들이 애용해주시는 걸로 알고 있습니다. 이번 콘텐츠에서는 URL모니터링 서비스를 직접 구축해보고, 와탭 URL 모니터링과 비교해보도록 하겠습니다.
URL 모니터링은 최종 사용자 입장에서의 웹 사이트 접속 정상 여부를 판단하기 위한 용도의 모니터링 서비스입니다. 즉 모니터링 에이전트가 사이트에 대한 접속을 수행하고, 접속 결과를 수집하여 저장 및 알림을 전송을 하는 서비스라고 말할 수 있습니다.
회사에 URL 모니터링 서비스가 있고, 그 외에도 다양한 URL 모니터링 서비스, 오픈소스가 있음에도 직접 URL 모니터링 서비스를 구현한 이유는 크게 3가지가 있습니다.
엔지니어라는 직업은 끝없이 궁금해 하는 직업이라고 생각합니다. 데이터를 수집하는 방식을 머리로 알고 있었지만, 실제로 구현을 하였을 때 정상적으로 데이터를 수집할지 궁금하였습니다.
와탭 URL 모니터링과의 비교자사에서 제공하는 서비스를 사용했을 때, 직접 구축해서 사용하는 것에 비해 어떠한 장점이 있는지 알고 싶었습니다.
다양한 방식의 알람와탭 URL 모니터링 에서도 SMS, EMAIL, Slack, Telegram, 잔디 등 다양한 알림 모듈을 제공하지만, 입맛에 맞게 알림을 커스텀해서 사용하고 싶었습니다.
아키텍처
• 빈 값일 시 알림 전송 및 데이터 저장 X
url.json에서 url의 리스트와 최대 연결 시도 시간, 알림 조건을 가져옵니다. URL Monitoring에서는 가져온 URL에 Request를 보냅니다. Response를 받아 StatusCode와 ReponseTime을 InfluxDB에 보냅니다. 알림 조건에 맞을 시 Slack에 메시지를 전송합니다.(default Timeout 5s)
StatusCode를 획득해 Influxdb에 데이터를 넣는 GoRoutine과 알림조건을 체크해 Slack 에 보내는 Goroutine을 생성합니다.(url_agent.json에 설정이 안되어있을 시 해당 작업 무시)
url_agent.json
InfluxDB와 Slack App이 설정이 되어 있다면 해당 값들을 입력해줍니다.url.json
•name : 별칭
•url : 호출하고 싶은 Url (https://www.naver.com)
https:// or http://존재하지 않을 시 http://를 붙인 url 생성
•timeout : 최대 접속 시도 시간
max, default : 5s•alert
4xx : 400번대 에러가 있을 경우 알림 발생 5xx : 500번대 에러가 있을 경우 알림 발생 unknown : 1xx~5xx외에 에러 발생 시 알림 발생(Unknown → StatusCode 999로 표현)
Slack에서 알림 확인 가능이번 콘텐츠에서는 웹 사이트 접속 정상 여부를 판단하기 위한 용도의 모니터링 서비스인 URL 모니터링 서비스를 직접 구축하여 보았습니다. URL 모니터링 서비스를 직접 구축하는 게 간단해 보이지만, 생각보다 손이 많이 가는 작업이었고, 이러한 서비스를 무료로 오픈한 자사의 결정에 감탄하였습니다. 혹시 URL모니터링 서비스를 아직까지 오픈소스 혹은 실제로 구축해서 사용하고 계신 분들에게 와탭 URL 모니터링 서비스를 적극 추천합니다.