본문 바로가기

Monitoring Tools

Monitoring Tools - Zabbix UserParameter를 이용한 금액 모니터링

728x90

UserParameter는 Zabbix 에이전트에서 사용자 정의 스크립트를 실행하여 그 결과를 Zabbix 서버에 전송하는 방법입니다.

curl과 jq를 사용하여 API로부터 JSON 데이터를 가져와 Zabbix 트리거로 사용할 수 있도록 하는 예제를 설명합니다.

[OS/Linux] - Linux - jq 명령어란? (JSON 데이터 처리기)

 

설정 과정

1. Zabbix UserParameter 설정
Zabbix 에이전트 설정 파일(/etc/zabbix/zabbix_agentd.d/userparameter.conf)에 사용자 정의 파라미터를 추가합니다. 이 파라미터는 Zabbix 서버가 해당 키로 요청을 보냈을 때 실행할 스크립트를 지정합니다.

UserParameter=check_bizm_balnace,"/etc/zabbix/checkBizM_Balance.sh"

Zabbix 서버는 check_bizm_balance라는 키를 통해 특정 API의 데이터를 가져올 수 있습니다.

 

2. 사용자 정의 스크립트(UserParameter) 작성

해당 스크립트는 API 호출을 하고, jq로 원하는 값을 추출하여 Zabbix에 전달하는 역할을 합니다.

checkBizM_Balance.sh

#!/bin/bash
curl -s -H "userid:[user]" -H "userkey:[userkey]" -X GET 'https://alimtalk-api.bizmsg.kr/v1/user/balance' | jq '.data.balance'

 

  • curl: API를 호출하여 JSON 데이터를 가져옵니다.
  • jq '.data.balance': JSON 데이터에서 .data.balance 필드만 추출하여 출력합니다.
{"code":"success","data":{"balance":348547.0},"message":""} // 파싱 전 JSON 데이터

 

 

3. Zabbix 트리거 설정

Zabbix 서버에서 UserParameter로 설정한 키를 기반으로 트리거를 생성하여 모니터링 할 수 있습니다.

아이템에 트리거를 설정해, 잔액이 20만원 이하일 때 경고 알림을 받을 수 있습니다

  1. Configuration > Hosts로 이동해 해당 호스트 선택.
  2. Triggers 탭에서 Create trigger 클릭.
  3. Trigger information 입력:
    • Name: BIZM_잔액_20만원이하
    • Expression: last(/[Zabbix_Host]/check_bizm_balance.last()}<200000
    • Severity: 원하는 심각도 선택

 

728x90
반응형