Trapper 아이템
개요
Trapper 아이템은 데이터를 조회하는 대신 들어오는 데이터를 수신합니다. Zabbix로 보내려는 모든 데이터에 유용합니다.
설정
Trapper 아이템을 설정하려면:
- Data collection → Hosts로 이동합니다.
- 해당 호스트 행에서 Items를 클릭합니다.
- Create item을 클릭합니다.
- 설정 폼에 아이템 파라미터를 입력합니다.

모든 필수 입력 필드는 빨간 별표로 표시됩니다.
Trapper 아이템에 특정 정보가 필요한 필드는 다음과 같습니다:
| Type | "Zabbix trapper"를 선택합니다. |
| Key | Zabbix 서버로 데이터를 보낼 때 아이템을 식별하는 데 사용할 키를 입력합니다. |
| Type of information | 전송될 데이터 형식에 맞는 정보 유형을 선택합니다. |
| Allowed hosts | 쉼표로 구분된 IP 주소(선택적으로 CIDR 표기법) 또는 DNS 이름 목록입니다. 지정하면 여기에 나열된 호스트에서 오는 연결만 허용됩니다. IPv6 지원이 활성화된 경우 '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1'은 동일하게 취급되며, '::/0'은 모든 IPv4 또는 IPv6 주소를 허용합니다. '0.0.0.0/0'은 모든 IPv4 주소를 허용하는 데 사용할 수 있습니다. "IPv4 호환 IPv6 주소"(0000::/96 접두사)는 지원되지만 RFC4291에서 더 이상 권장되지 않습니다. 예시: 127.0.0.1, 192.168.1.0/24, 192.168.3.1-255, 192.168.1-10.1-255, ::1,2001:db8::/32, mysqlserver1, zabbix.example.com, {HOST.HOST} 공백, 사용자 매크로, 호스트 매크로 {HOST.HOST}, {HOST.NAME}, {HOST.IP}, {HOST.DNS}, {HOST.CONN}이 지원됩니다. |
값을 보내기 전에, 아이템을 저장한 뒤 Zabbix 서버가 설정 캐시 갱신을 통해 변경 사항을 반영할 때까지 최대 60초를 기다려야 할 수 있습니다.
데이터 전송
Zabbix 서버 또는 프록시로 데이터를 보내는 것은 Zabbix sender 유틸리티나 Zabbix sender 프로토콜을 사용해 가능합니다.
Zabbix 서버로 데이터를 보내는 것은 history.push API 메서드를 사용해서도 가능합니다.
Zabbix sender
Zabbix sender 유틸리티를 사용해 Zabbix 서버 또는 프록시로 데이터를 보내려면, 다음 명령을 실행해 "test value"를 전송할 수 있습니다:
zabbix_sender -z <server IP address> -p 10051 -s "New host" -k trap -o "test value"
"test value"를 전송하는 데 다음 명령 옵션이 사용됩니다:
-z는 Zabbix 서버 IP 주소를 지정-p는 Zabbix 서버 포트 번호를 지정(기본값 10051)-s는 호스트를 지정(표시 이름이 아닌 기술적 호스트 이름을 사용해야 함)-k는 trapper 아이템에 설정된 아이템의 키를 지정-o는 전송할 값을 지정
Zabbix trapper 프로세스는 대상 호스트에 해당 아이템 키가 존재하는지 확인할 때 아이템 키에 사용된 매크로를 확장하지 않습니다.
Zabbix sender와 Zabbix 서버 또는 프록시 간 통신에 대한 자세한 내용은 Zabbix sender 프로토콜을 참조하세요.
history.push
history.push API 메서드를 사용해 Zabbix 서버로 데이터를 보내려면, 다음과 같이 테스트 값이 담긴 HTTP POST 요청을 보낼 수 있습니다:
curl --request POST \
--url 'https://example.com/zabbix/api_jsonrpc.php' \
--header 'Authorization: Bearer 0424bd59b807674191e7d77572075f33' \
--header 'Content-Type: application/json-rpc' \
--data '{"jsonrpc":"2.0","method":"history.push","params":[{"itemid":10600,"value":"test value 1"},{"itemid":10601,"value":"test value 2"},{"itemid":99999,"value":"test value 3"}],"id":1}'
요청이 올바르면 API가 반환하는 응답은 다음과 같은 형태일 수 있습니다:
{
"jsonrpc": "2.0",
"result": {
"response": "success",
"data": [
{
"itemid": "10600"
},
{
"itemid": "10601",
"error": "Item is disabled."
},
{
"error": "No permissions to referred object or it does not exist."
}
]
},
"id": 1
}
응답 데이터의 오류는 특정 아이템에 대한 데이터 전송이 Zabbix 서버의 검증을 통과하지 못했음을 나타냅니다. 다음과 같은 이유로 발생할 수 있습니다:
- 데이터를 보내는 사용자가 해당 아이템의 호스트에 대한 읽기 권한이 없는 경우;
- 호스트가 비활성화되었거나 데이터 수집 없는 유지보수 상태인 경우;
- 아이템이 존재하지 않거나 아직 서버 설정 캐시에 포함되지 않은 경우;
- 아이템이 비활성화되었거나 유형이 Zabbix trapper 또는 HTTP agent(trapping 활성화됨)가 아닌 경우;
- 사용자의 IP 또는 DNS가 아이템의 Allowed hosts 목록에 설정되지 않은 경우;
- 다른 아이템이 나노초 단위로 중복된 타임스탬프의 값을 가진 경우.
오류가 없다는 것은 전송된 값이 처리 대상으로 수락되었음을 나타내며, 여기에는 전처리(있는 경우), 트리거 처리, 데이터베이스 저장이 포함됩니다. 수락된 값의 처리도 실패할 수 있으며(예: 전처리 중), 이 경우 값이 폐기됩니다.
Zabbix API 사용 방법에 대한 자세한 내용은 API를 참조하세요.
데이터 표시
데이터가 전송되면 Monitoring → Latest data로 이동해 결과를 확인할 수 있습니다:

단일 숫자 값이 전송되면 데이터 그래프는 해당 값의 시점 좌우로 수평선을 표시합니다.