본문 바로가기
Opensource 모니터링 구축/Zabbix

Zabbix로 Nginx 서비스 모니터링 방법 검토

by Infralabs 2024. 3. 26.
반응형

통합 모니터링 시스템을 구축하면서 웹 서비스 상태 모니터링을 위해서는 어떤 것들을 할 수 있을까? 라는 생각을 하다보니 결론적으로는 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 서버 

- 장점 : 사용자가 웹 서비스에 접근하는 방향과 동일함 

- 단점 : 웹 서비스 상태코드 모니터링 하나를 위해 외부에서 들어오는 방식이 과연 맞을까? 

- 추가적으로, 하나의 서버를 향해 두 갈래 길을 갈 순 없고 웹 서비스 모니터링을 위한 전용 서버를 두어야 할까? 

반응형