통합 모니터링 시스템을 구축하면서 웹 서비스 상태 모니터링을 위해서는 어떤 것들을 할 수 있을까? 라는 생각을 하다보니 결론적으로는 HTTP 상태코드를 통해 해당 서비스의 상태를 체크하는 것이 필수라고 생각했다. 이번 글에서는 Zabbix를 통해 어떻게 Nginx 서비스를 모니터링할지, HTTP 상태코드를 어떻게 체크할지 검토해보려고 한다.
참고. 웹 서비스 상태 모니터링 방법
1. Ping 테스트
웹 서비스가 정상적으로 응답하는지 확인을 하기 위해 ICMP 패킷을 사용하여 핑 테스트를 진행한다.
2. HTTP 상태 코드
웹 서버가 반환하는 HTTP 상태코드를 모니터링하여 서비스의 상태를 확인한다.
200 OK는 정상적인 상태를 나타내고, 500 Internal Server Error, 404 Not Found 등 오류 상태를 알 수 있다.
3. 응답시간 모니터링
웹 서버의 응답 시간을 측정하여 서비스의 성능을 모니터링한다.
4. 트랜잭션 모니터링
특정 작업이나 기능의 완료 상태를 모니터링한다. 로그인, 결제 등 트랜잭션의 성공 유무를 확인한다.
(트랜잭션의 모니터링에 대해서는 추후, Tomcat 서버에 대한 모니터링을 고려할 때 생각하려고 한다.)
5. 로그 모니터링
웹 서버의 로그를 실시간으로 모니터링하여 오류나 비정상적인 활동을 감지한다.
Zabbix를 통한 HTTP 상태 코드 모니터링
1. 모니터링 통신 경로 고려
Zabbix 서버 → Nginx 서버 모니터링을 할 때, 통신 경로에 대한 고민
이러한 고민까지 필요할까라는 의문도 있지만, 나 같은 경우엔 현재 운영 현황을 보며 모니터링 통신 경로에 대한 고민을 하였다.
- Zabbix 서버 : 관리망 대역
- Nginx 웹 서버 : 외부 통신이 가능한 DMZ 대역
1안
Zabbix 서버 → 관리망 → 내부망 → DMZ 망 → Nginx 서버
- 장점 : Ping 또는 프로세스 체크, HTTP 응답코드 체크가 모두 같은 경로로 구성되어 있어 복잡하지 않음
- 단점 : 사용자가 웹 서비스에 접근하는 방향과는 다름
2안
① HTTP 응답코드 : Zabbix 서버 → DMZ 망 → Nginx 서버
② Ping, 프로세스 체크 : Zabbix 서버 → 관리망 → DMZ 망 → Nginx 서버
- 장점 : 사용자가 웹 서비스에 접근하는 방향과 동일함
- 단점 : 웹 서비스 상태코드 모니터링 하나를 위해 외부에서 들어오는 방식이 과연 맞을까?
- 추가적으로, 하나의 서버를 향해 두 갈래 길을 갈 순 없고 웹 서비스 모니터링을 위한 전용 서버를 두어야 할까?
'Opensource 모니터링 구축 > Zabbix' 카테고리의 다른 글
리눅스 Zabbix 설치(3) - Zabbix Agent (0) | 2024.04.09 |
---|---|
Zabbix Nginx 상태 모니터링(2) - Zabbix User Parameter 활용 (0) | 2024.03.26 |
Zabbix Nginx 상태 모니터링(1) - Template Nginx by Zabbix Agent (0) | 2024.03.25 |
리눅스 Zabbix 설치(2) - Zabbix Frontend (0) | 2024.03.25 |
리눅스 Zabbix 설치(1) - Zabbix Server (1) | 2024.03.22 |