본문 바로가기

리눅스

Zabbix에서 UserParameter를 사용하여 웹 모니터링을 하는 방법

반응형

Zabbix에서 UserParameter를 사용하여 웹 모니터링을 하는 방법

UserParameter를 사용하면 curl 명령어 등을 이용해 HTTP 응답 코드를 가져와 Zabbix에 등록합니다.

Zabbix Agent2 설정 파일 수정

cat <<'EOF' > /etc/zabbix/zabbix_agent2.d/webmonitor.conf
# UserParameter 설정
# 사용법: web.monitor[도메인, 로컬 IP, 포트, 프로토콜, 경로]
# 예: web.monitor[example.com,127.0.0.1,443,https,/]

UserParameter=web.monitor[*],curl -s -o /var/log/zabbix/webmonitor_error.log -w "%{http_code}" --resolve "$1:$3:$2" "$4://$1$5"
EOF
  • $1 : 웹 도메인
  • $2 : 로컬 IP (요청을 특정 IP로 보낼 때 사용)
  • $3 : 포트 (80, 443 등)
  • $4 : 프로토콜 (http 또는 https)
  • $5 : 요청할 경로 (/api/status 같은 특정 경로)

Zabbix Agent2 재시작

/usr/sbin/zabbix_agent2 -T /etc/zabbix/zabbix_agent2.conf
systemctl restart zabbix-agent2

테스트 실행(Zabbix Agent)

  • 정상적으로 200 같은 HTTP 코드를 확인합니다.
zabbix_agent2 -t "web.monitor[example.com,127.0.0.1,443,https,/]"
web.monitor[example.com,127.0.0.1,443,https,/][s|200]

테스트 실행(Zabbix Server)

zabbix_get -s zabbix_agent_ip -p 10050 -k "web.monitor[example.com,127.0.0.1,443,https,/]"
200

Zabbix 웹 UI에서 설정하기

Zabbix에서 템플릿을 구성하여 여러 웹사이트를 모니터링할 수 있도록 합니다.

템플릿 생성

Zabbix UI → 데이터 수집 → 템플릿 → 템플릿 생성

  • 템플릿 이름 : Web Monitor Template
  • 템플릿 그룹 :

zabbix

매크로 생성

템플릿에 매크로를 설정하여 값을 쉽게 변경할 수 있도록 합니다.

  • {$WEB_DOMAIN} → 모니터링할 도메인 (예: example.com)
  • {$WEB_LOCAL_IP} → 로컬 IP (예: 127.0.0.1)
  • {$WEB_PORT} → 443
  • {$WEB_PROTOCOL} → https
  • {$WEB_PATH} → /path

zabbix

아이템 생성

Zabbix UI → 데이터 수집 → 템플릿(Web Monitor by anti1346) → 아이템 → 아이템 생성

  • 이름 : Web Monitor HTTP Code
  • 종류 : Zabbix agent
  • 데이터형 : Numeric (unsigned)
  • 갱신 간격 : 30s
  • Triggers 생성 시 사용하기 위해 History storage period는 7d 이상 유지
web.monitor[{$WEB_DOMAIN},{$WEB_LOCAL_IP},{$WEB_PORT},{$WEB_PROTOCOL},{$WEB_PATH}]

zabbix

트리거 생성

Zabbix UI → 데이터 수집 → 템플릿(Web Monitor by anti1346) → 트리거 → 트리거 생성

특정 도메인에 대해 HTTP 상태 코드가 200이 아닐 경우 알람이 발생합니다.

  • 이름 : Website Down - {$WEB_DOMAIN}
  • 심각도 : 중증 장애
  • 조건식
last(/Web Monitor by anti1346/web.monitor[{$WEB_DOMAIN},{$WEB_LOCAL_IP},{$WEB_PORT},{$WEB_PROTOCOL},{$WEB_PATH}])<>200

zabbix

그래프 생성

Zabbix UI → 데이터 수집 → 템플릿(Web Monitor by anti1346) → 그래프 → 그래프 생성

  • 이름 : Web Monitoring Graph
  • 그래프 유형 : 라인 그래프
  • 아이템(추가) : Web Monitor HTTP Code

zabbix
zabbix

최종 요약

UserParameter로 curl을 사용하여 HTTP 응답 코드 모니터링

Zabbix Agent2 설정 파일 수정 후 재시작

Zabbix 웹 UI에서 아이템을 등록하고 그래프 추가 가능

응답 코드 기반으로 트리거 설정 가능 (200이 아닐 경우 알람)

 

728x90
반응형