본문 바로가기
자빅스/Case Study

Case Study- Zabbix와 Atlassian Statuspage를 활용한 웹 서버 상태 모니터링

by chloefordmove 2024. 1. 9.

안녕하세요, 디무브입니다.

기업에서 자주 사용하는 웹 서버 제품들의 경우 사용에 문제가 없도록 미리 준비하는 것이 중요합니다. Zabbix를 활용하면 특정 웹의 상태(접속 가능 여부, 응답 시간 등)를 확인하고 혹시 모를 상황들에 대비할 수 있습니다.

오늘 포스트에서는 Zabbix Server를 활용한 웹 서버 모니터링의 구조를 먼저 살펴보고, 많은 기업에서 사용 중인 Atlassian Cloud 제품을 모니터링하는 방법에 대해 알아보겠습니다. 오늘 다룰 사례의 경우, 별도의 에이전트 없이(Agentless) 모니터링이 가능합니다.

 


 

📊 웹 서버 모니터링을 위한 필수 사항

 

✔ cURL 관련 패키지

 

Zabbix Server는 웹 서버 모니터링을 위하여 Zabbix Server와 Zabbix Proxy 내부에서 cURL 명령어를 통하여 웹 서버 모니터링을 수행합니다. 따라서, 서버 내부에 반드시 cURL 관련 패키지가 설치되어 있어야 합니다.

 

📊 웹 서버 모니터링을 위한 아이템 수집 방식

해당 포스트에서 다루는 웹 서버 모니터링의 경우 Web Scenario Monitoring HTTP Agent Monitoring 두 가지 방식으로 아이템을 수집합니다. 각각 자세히 살펴보겠습니다.

 

1. Web Scenario Monitoring

Web Scenario Monitoring Overview

 

Web Scenario Monitoring 은 다음과 같은 항목을 수집합니다.

모니터링 항목 설명
Download speed 다운로드 속도 (bps)
Response time 응답 시간 (bps)
Response code 응답 코드
ex) 200 OK, 302 Redirect, 401 Unauthorized, 404 Not Found

 

아래는 Web Scenario Monitoring 방식으로 수집한 항목들을 활용하여 Atlassian Cloud 제품 중 Jira Software와 Confluence를 모니터링하고 있는 화면입니다.

 

▶ Response Time

해당 그래프를 확인해 보았을 때 최근 1시간 내의 각 제품별 응답 속도를 확인할 수 있습니다.

 

▶ Response Code

해당 그래프를 확인해 보았을 때 최근 1시간 내의 Jira sofware와 Confluence의 접속 장애가 없었음을 확인할 수 있습니다. (200 OK)

 

응답 속도가 늦어지거나, Status Code가 200(정상 접속)이 아닌 경우와 같이 Web Scenario에서 설정한 모니터링 아이템을 기반으로 장애가 발생했을 때를 위한 경고(Alert)를 생성하고 관리할 수 있습니다. 하지만 이러한 모니터링 방식만으로는 SaaS의 정확한 상태를 확인할 수 없는데요. 이때, 아틀라시안의 Statuspage를 활용하면 단점을 보완할 수 있습니다.

 

 

Statuspage는 Atlassian뿐만이 아닌 수많은 SaaS에서 활용되고 있습니다. 현재 널리 이용되고 있는 SaaS의 Statuspage의 예시는 다음과 같습니다.

 

(1) Github Statuspage - GitHub Status

 

(2) Discord Statuspage - Discord Status

 

(3) X (Twtitter) Statuspage - Twtitter Status

 

위 모니터링 방식들의 경우, 제공되는 Statuspage에서 API 관련 페이지가 제공되어야 합니다.

 

2. HTTP Agent Monitoring

HTTP Agent Monitoring Overview

 

Atlassian Cloud의 상태를 정확하게 모니터링하기 위해 status.atlassian.com의 Statuspage를 활용할 수 있습니다. Atlassian statuspage에서는 모니터링을 위한 API를 제공하고 있습니다.

 

 

Zabbix에서는 Atlassian statuspage의 Rest API들을 활용할 수 있도록 HTTP Agent를 제공하고 있습니다. HTTP Agent의 경우 별도의 Agent를 필요로 하지 않으며, cURL 명령어를 통해 웹 서버 모니터링을 수행합니다.

이렇게 호출한 값에 대한 응답을 Zabbix에서 수집합니다. API에서 지원하는 범위 내의 원하는 데이터를 수집하고 SaaS의 현재 상태를 모니터링할 수 있으며, 경고를 생성하고 관리할 수 있습니다.

 


 

생성된 장애를 기반으로 미디어(Telegram, Email, Mattermost) 등으로 알림을 전송할 수 있습니다.

 

해당 모니터링을 통하여, 최근 Atlassian Cloud의 Atlassian Developer Center에 Minor 장애가 발생했음을 확인할 수 있습니다.

 

Atlassian Statuspage 내부에서도 동일한 내용을 상세히 확인할 수 있습니다.

 

이러한 모니터링에서 멈추지 않고 더 나아가 Grafana를 통한 시각화를 진행하여 Atlassian Cloud에 대한 상태를 보다 시각적으로 확인할 수 있도록 구성할 수 있습니다.

 


 

지금까지 Zabbix와 Confluence Statuspage를 활용하여 Atlassian SaaS 웹 서버의 상태를 모니터링하는 방법에 대해 살펴보았습니다. 사용하고 계시는 SaaS 서비스의 모니터링이 필요하시거나, 구축하신 웹 서비스의 모니터링에 대하여 상세한 설정이 필요하시다면 디무브에 문의하세요. 😉