12 트래퍼 아이템

원본 보기

12 Trapper 아이템

개요

Trapper 아이템은 데이터를 조회하는 대신 들어오는 데이터를 수신합니다. 이는 Zabbix로 전송하려는 모든 데이터에 유용합니다.

구성

trapper 아이템을 구성하려면:

  1. 데이터 수집호스트로 이동합니다.
  2. 호스트 행에서 아이템을 클릭합니다.
  3. 아이템 생성을 클릭합니다.
  4. 구성 양식에서 아이템 매개변수를 입력합니다.

모든 필수 입력 필드는 빨간 별표로 표시됩니다.

trapper 아이템에 특정 정보가 필요한 필드는 다음과 같습니다:

유형 "Zabbix trapper"를 선택합니다.
Zabbix 서버로 데이터를 전송할 때 아이템을 식별하는 데 사용할 키를 입력합니다.
정보 유형 전송될 데이터 형식과 일치할 정보 유형을 선택합니다.
허용된 호스트 쉼표로 구분된 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가 아이템의 허용된 호스트 목록에 설정되지 않음;
  • 다른 아이템이 나노초 수준에서 중복된 타임스탬프를 가진 값을 가지고 있음.

오류가 없다는 것은 전송된 값이 전처리(있는 경우), 트리거 처리, 데이터베이스 저장을 포함한 처리를 위해 수락되었음을 나타냅니다. 수락된 값의 처리도 실패할 수 있으며(예: 전처리 중), 이 경우 값이 폐기됩니다.

Zabbix API 사용법에 대한 자세한 정보는 API를 참조하세요.

데이터 표시

데이터가 전송되면, 모니터링최신 데이터로 이동하여 결과를 확인할 수 있습니다:

단일 숫자 값이 전송된 경우, 데이터 그래프는 값의 시점에서 왼쪽과 오른쪽으로 수평선을 표시합니다.

다음은 무엇인가요?