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

Zabbix Nginx 상태 모니터링(2) - Zabbix User Parameter 활용

by Infralabs 2024. 3. 26.
반응형

Zabbix에서 Nginx 서버의 모니터링을 수행하기 위한 방법 중 두 번째로는 직접 스크립트를 작성하여 모니터링하는 방법이다. 

이번 게시글에서는 cURL을 활용한 스크립트를 작성하고, Zabbix 웹 인터페이스에서 모니터링 설정하는 방법을 다루고자 한다.

 

HTTP 상태 코드 모니터링 설정

1안 

Nginx by Zabbix Agent 템플릿을 이용
(https://hunnie.co.kr/56)

- 장점 : Zabbix Agent가 설치되어 있는 경우, Zabbix 웹 인터페이스에서 몇 번의 설정으로 적용이 가능하다.

- 단점 : HTTP 상태코드 체크를 진행하다 보니, HTTPS를 사용하는 경우 200 OK 가 아닌 301 Moved Permanently 가 발생한다. 

            * Zabbix 아이템 - 매크로 설정을 통해 HTTPS 로 체크해보았으나, 400 에러 발생

            * 127.0.0.1(localhost)의 80 Port에 대해 stub status 체크할 경우 200 OK 는 확인되지만 원했던 모니터링은 아니다. 

 

좋은 방법이 있으면 댓글로 연락 부탁드립니다..

 

2안 

직접 cURL을 이용하여 HTTP Status Code를 수집하는 스크립트를 작성

- 장점 : 실제 서비스하고 있는 서비스 URL에 대해 직접 상태 체크를 할 수 있다.

- 단점 : Zabbix 에서 제공하고 있는 여러 기능들을 사용하지 않음. (Zabbix를 더 공부해보고 방법이 나오면, 이 방법은 안쓰려고 한다.)

1) Nginx 상태 모니터링 스크립트 작성 

#!/bin/bash
# Nginx status script for Zabbix monitoring

URL="https://{Test Domain}"
# Get HTTP Status Code
CODE=`curl -s -I -k "$URL" | grep 'HTTP' | awk '{print $2}'`
echo $CODE

 

2) Zabbix Agent 설정 

zabbix_agentd.conf 에서 UserParameter 부분 주석을 해제한 후 아래와 같이 작성한다.

$ vi zabbix_agentd.conf
UserParameter=process.monitoring[*],/app/zabbix_agent/scripts/nginx_status.sh

 

3) Zabbix 웹 인터페이스 설정 

 

반응형