문서
원본 보기2 아이템 값 전처리
개요
전처리를 통해 수신된 아이템 값을 데이터베이스에 저장하기 전에 변환을 적용할 수 있습니다. 이러한 변환/전처리 단계는 Zabbix server 또는 proxy(아이템이 proxy에 의해 모니터링되는 경우)에 의해 수행됩니다.
이 기능은 다음과 같은 다양한 사용 사례를 지원합니다:
- 바이트를 비트로 변환(예: 네트워크 트래픽 값에 "8"을 곱하기);
- 점진적으로 증가하는 값에 대한 초당 통계 계산;
- 정규식을 적용하여 값을 추출하거나 수정;
- 값에 대한 사용자 정의 스크립트 실행;
- 변경되지 않은 값을 삭제하여 데이터베이스 저장소 최적화.
아이템에 하나 이상의 전처리 단계를 구성할 수 있습니다. 이러한 단계는 구성된 순서대로 실행됩니다.
전처리 단계가 실패하면 아이템이 지원되지 않음 상태가 됩니다.
이는 실패 시 사용자 정의 오류 처리(대부분의 변환에서 사용 가능)를 통해 피할 수 있으며, 값을 삭제하거나 사용자 정의 값을 설정할 수 있습니다.
로그 아이템의 경우, 로그 메타데이터(값 없음)가 항상 아이템의 지원되지 않음 상태를 재설정하여 다시 지원되는 상태로 만듭니다.
이는 에이전트로부터 로그 값을 받은 후 초기 오류가 발생한 경우에도 발생합니다.
전처리로 전달되는 모든 값은 초기에 문자열로 처리됩니다. 원하는 값 유형(아이템 구성에서 정의된 대로)으로의 변환은 전처리 파이프라인의 끝에서 수행됩니다. 하지만 특정 전처리 단계에서는 필요한 경우 더 빠른 변환을 트리거할 수 있습니다. 자세한 기술 정보는 전처리 세부사항을 참조하세요.
전처리 구성이 예상대로 작동하는지 확인하려면 테스트할 수 있습니다.
참고: 전처리 예제
설정
전처리 단계는 아이템 설정 폼의 전처리 탭에서 정의됩니다.

추가를 클릭하여 지원되는 변환을 선택하세요.
정보 유형 필드는 하나 이상의 전처리 단계가 정의될 때 탭 하단에 표시됩니다. 필요한 경우 전처리 탭을 떠나지 않고도 정보 유형을 변경할 수 있습니다. 자세한 매개변수 설명은 아이템 생성을 참조하세요.
지원되는 변환
지원되는 모든 변환이 아래에 나열되어 있습니다. 변환 이름을 클릭하면 해당 변환에 대한 전체 세부 정보를 확인할 수 있습니다.
| 이름 | 설명 | 유형 |
|---|---|---|
| Regular expression | 값을 정규 표현식과 일치시키고 필요한 출력으로 교체합니다. | 텍스트 |
| Replace | 검색 문자열을 찾아서 다른 문자열(또는 아무것도 없음)로 교체합니다. | |
| Trim | 값의 시작과 끝에서 지정된 문자를 제거합니다. | |
| Right trim | 값의 끝에서 지정된 문자를 제거합니다. | |
| Left trim | 값의 시작에서 지정된 문자를 제거합니다. | |
| XML XPath | XPath 기능을 사용하여 XML 데이터에서 값이나 조각을 추출합니다. | 구조화된 데이터 |
| JSON Path | JSONPath 기능을 사용하여 JSON 데이터에서 값이나 조각을 추출합니다. | |
| CSV to JSON | CSV 파일 데이터를 JSON 형식으로 변환합니다. | |
| XML to JSON | XML 형식의 데이터를 JSON으로 변환합니다. | |
| SNMP walk value | 지정된 OID/MIB 이름으로 값을 추출하고 형식화 옵션을 적용합니다. | SNMP |
| SNMP walk to JSON | SNMP 값을 JSON으로 변환합니다. | |
| SNMP get value | SNMP get 값에 형식화 옵션을 적용합니다. | |
| Custom multiplier | 값에 지정된 정수 또는 부동 소수점 값을 곱합니다. | 산술 |
| Simple change | 현재 값과 이전 값의 차이를 계산합니다. | 변경 |
| Change per second | 값 변경(현재 값과 이전 값의 차이) 속도를 초당 기준으로 계산합니다. | |
| Boolean to decimal | 값을 불린 형식에서 10진수로 변환합니다. | 수 체계 |
| Octal to decimal | 값을 8진수 형식에서 10진수로 변환합니다. | |
| Hexadecimal to decimal | 값을 16진수 형식에서 10진수로 변환합니다. | |
| JavaScript | JavaScript 코드를 입력합니다. | 사용자 정의 스크립트 |
| In range | 값이 속해야 하는 범위를 정의합니다. | 유효성 검사 |
| Matches regular expression | 값이 일치해야 하는 정규 표현식을 지정합니다. | |
| Does not match regular expression | 값이 일치하지 않아야 하는 정규 표현식을 지정합니다. | |
| Check for error in JSON | JSONPath에 위치한 애플리케이션 수준 오류 메시지를 확인합니다. | |
| Check for error in XML | XPath에 위치한 애플리케이션 수준 오류 메시지를 확인합니다. | |
| Check for error using a regular expression | 정규 표현식을 사용하여 애플리케이션 수준 오류 메시지를 확인합니다. | |
| Check for not supported value | 아이템 값을 검색할 수 없는지 확인합니다. | |
| Discard unchanged | 값이 변경되지 않은 경우 해당 값을 폐기합니다. | 스로틀링 |
| Discard unchanged with heartbeat | 정의된 시간 기간 내에서 값이 변경되지 않은 경우 해당 값을 폐기합니다. | |
| Prometheus pattern | 다음 쿼리를 사용하여 Prometheus 메트릭에서 필요한 데이터를 추출합니다. | Prometheus |
| Prometheus to JSON | 필요한 Prometheus 메트릭을 JSON으로 변환합니다. |
변경 및 스로틀링 전처리 단계의 경우, Zabbix는 필요에 따라 새 값을 계산/비교하기 위해 마지막 값을 기억해야 합니다. 이러한 이전 값들은 전처리 매니저에 의해 처리됩니다. Zabbix 서버나 프록시가 재시작되거나 전처리 단계에 변경 사항이 있는 경우, 해당 아이템의 마지막 값이 재설정되어 다음과 같은 결과가 나타납니다:
- Simple change, Change per second 단계의 경우 - 변경을 계산할 이전 값이 없기 때문에 다음 값은 무시됩니다;
- Discard unchanged, Discard unchanged with heartbeat 단계의 경우 - 폐기 규칙에 따라 폐기되어야 했더라도 다음 값은 절대 폐기되지 않습니다.
정규표현식
값을 정규표현식과 매칭하고 필요한 출력으로 바꿉니다.
매개변수:
- pattern - 정규표현식;
- output - 출력 형식 템플릿. \N (N=1…9) 이스케이프 시퀀스는 N번째 매칭된 그룹으로 대체됩니다. \0 이스케이프 시퀀스는 매칭된 텍스트로 대체됩니다.
주석:
- 입력 값과 매칭에 실패하면 아이템이 지원되지 않게 됩니다;
- 정규표현식은 \N 시퀀스로 최대 10개의 캡처된 그룹 추출을 지원합니다;
- Custom on fail 체크박스를 체크하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 버리거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다.
전처리 단계가 실패한 경우, 값을 버리거나 지정된 값을 설정하는 옵션을 선택하면 아이템이 지원되지 않는 상태가 되지 않습니다.
- 기존 예시들은 정규표현식 섹션을 참조하세요.
Replace
검색 문자열을 찾아서 다른 문자열로 교체합니다(또는 아무것도 없게 만듭니다).
매개변수:
- search string - 찾아서 교체할 문자열, 대소문자 구분 (필수);
- replacement - 검색 문자열을 교체할 문자열. 교체 문자열은 비워둘 수도 있으며, 이 경우 검색 문자열을 찾았을 때 삭제하는 효과가 있습니다.
주석:
- 검색 문자열의 모든 출현을 교체합니다;
- 줄 바꿈, 캐리지 리턴, 탭, 공백을 검색하거나 교체하기 위해 이스케이프 시퀀스 "\n \r \t \s"를 사용할 수 있습니다; 백슬래시는 "\\"로 이스케이프할 수 있고 이스케이프 시퀀스는 "\\n"로 이스케이프할 수 있습니다;
- 줄 바꿈, 캐리지 리턴, 탭의 이스케이프는 저수준 검색 중에 자동으로 수행됩니다.
Trim
값의 시작과 끝에서 지정된 문자를 제거합니다.
Right trim
값의 끝에서 지정된 문자를 제거합니다.
왼쪽 자르기
값의 시작 부분에서 지정된 문자를 제거합니다.
XML XPath
XPath 기능을 사용하여 XML 데이터에서 값이나 조각을 추출합니다.
주의사항:
- 이 옵션이 작동하려면 Zabbix 서버(또는 Zabbix 프록시)가 libxml 지원으로 컴파일되어야 합니다;
- 네임스페이스는 지원되지 않습니다;
- 실패 시 사용자 정의 확인란을 체크하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 폐기하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우, 값을 폐기하거나 지정된 값을 설정하는 옵션이 선택되면 아이템은 지원되지 않음 상태가 되지 않습니다.
예시:
number(/document/item/value) #will extract '10' from <document><item><value>10</value></item></document>
number(/document/item/@attribute) #will extract '10' from <document><item attribute="10"></item></document>
/document/item #will extract '<item><value>10</value></item>' from <document><item><value>10</value></item></document>
JSON Path
JSONPath 기능을 사용하여 JSON 데이터에서 값이나 조각을 추출합니다.
실패 시 사용자 정의 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 삭제하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우, 값을 삭제하거나 지정된 값을 설정하는 옵션을 선택하면 아이템이 지원되지 않는 상태가 되지 않습니다.
CSV to JSON
CSV 파일 데이터를 JSON 형식으로 변환합니다.
자세한 정보는 다음을 참조하세요: CSV to JSON 전처리.
XML to JSON
XML 형식의 데이터를 JSON으로 변환합니다.
자세한 정보는 다음을 참조하세요: 직렬화 규칙.
Custom on fail 체크박스를 표시하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 폐기하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우, 값을 폐기하거나 지정된 값을 설정하는 옵션을 선택하면 아이템이 지원되지 않는 상태가 되지 않습니다.
SNMP walk value
지정된 OID/MIB 이름으로 값을 추출하고 포맷팅 옵션을 적용:
- 변경 안함 - hex-string을 이스케이프되지 않은 hex 문자열로 반환 (디스플레이 힌트는 여전히 적용됨에 주의);
- hex-STRING에서 UTF-8로 - hex-string을 UTF-8 문자열로 변환;
- hex-STRING에서 MAC으로 - hex-string을 MAC 주소로 검증하고 적절한 MAC 주소 문자열을 반환 (
' '를':'로 대체); - BITS에서 정수로 - hex 문자 시퀀스로 표현된 비트 문자열의 첫 8바이트 (예: "1A 2B 3C 4D")를 64비트 부호 없는 정수로 변환. 8바이트보다 긴 비트 문자열에서는 후속 바이트들이 무시됩니다.
실패 시 사용자 정의 체크박스를 체크하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 폐기하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우, 값을 폐기하거나 지정된 값을 설정하는 옵션을 선택하면 항목이 지원되지 않는 상태가 되지 않습니다.
SNMP walk to JSON
SNMP 값을 JSON으로 변환합니다.
JSON의 필드 이름과 해당하는 SNMP OID 경로를 지정합니다. 필드 값은 지정된 SNMP OID 경로의 값으로 채워집니다.
주의사항:
- SNMP walk value 단계와 유사한 값 형식 지정 옵션을 사용할 수 있습니다;
- 이 전처리 단계를 SNMP OID 디스커버리에 사용할 수 있습니다;
- Custom on fail 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 삭제하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우 값을 삭제하거나 지정된 값을 설정하는 옵션을 선택하면 아이템이 지원되지 않는 상태가 되지 않습니다.
SNMP get value
SNMP get value에 서식 옵션을 적용하세요:
- UTF-8 from Hex-STRING - hex-string을 UTF-8 문자열로 변환;
- MAC from Hex-STRING - hex-string을 MAC 주소로 검증하고 적절한 MAC 주소 문자열을 반환(
' '를':'로 대체); - Integer from BITS - 16진수 문자 시퀀스로 표현된 비트 문자열의 첫 8바이트(예: "1A 2B 3C 4D")를 64비트 부호 없는 정수로 변환. 8바이트보다 긴 비트 문자열에서는 이후 바이트들이 무시됩니다.
Custom on fail 체크박스를 체크하면, 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 무시하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우, 값을 무시하거나 지정된 값을 설정하는 옵션을 선택하면 아이템이 지원되지 않는 상태가 되지 않습니다.
사용자 정의 승수
값에 지정된 정수 또는 부동 소수점 값을 곱합니다.
주석:
- KB, MBps 등으로 수신된 값을 B, Bps로 변환하려면 이 옵션을 사용하세요.
그렇지 않으면 Zabbix가 접두사 (K, M, G 등)를 올바르게 설정할 수 없습니다.
- 정보의 항목 유형이 숫자 (부호 없음)인 경우, 소수 부분이 있는 입력 값은 사용자 정의 승수가 적용되기 전에 잘립니다 (예: '0.9'는 '0'이 됩니다).
- 정보 유형이 숫자 (부호 없음)으로 설정된 항목에 대해 사용자 정의 승수를 사용하거나 값을 초당 변화량으로 저장하고 결과적으로 계산된 값이 실제로 부동 소수점 숫자인 경우, 계산된 값은 소수 부분을 잘라내고 정수로 값을 저장하여 여전히 올바른 값으로 받아들여집니다.
- 지원되는 형식: 과학 표기법(예:
1e+70), 사용자 매크로 및 LLD 매크로, 매크로를 포함하는 문자열(예:{#MACRO}e+10,{$MACRO1}e+{$MACRO2}). 매크로는 정수 또는 부동 소수점 숫자로 해석되어야 합니다. - 실패 시 사용자 정의 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 폐기하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우, 값을 폐기하거나 지정된 값을 설정하는 옵션이 선택되면 항목이 지원되지 않음 상태가 되지 않습니다.
Simple change
현재 값과 이전 값의 차이를 계산합니다.
주석:
- 이 단계는 지속적으로 증가하는 값을 측정하는 데 유용할 수 있습니다;
- value-prev_value로 평가됩니다. 여기서 value는 현재 값이고, prev_value는 이전에 받은 값입니다;
- 아이템당 하나의 변경 작업만 허용됩니다("Simple change" 또는 "Change per second");
- 현재 값이 이전 값보다 작으면, Zabbix는 해당 차이를 버리고(아무것도 저장하지 않음) 다른 값을 기다립니다;
- Custom on fail 체크박스를 체크하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 버리거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우, 값을 버리거나 지정된 값을 설정하는 옵션이 선택되면 아이템은 지원되지 않음 상태가 되지 않습니다.
초당 변화량
초당 값 변화량(현재 값과 이전 값의 차이) 속도를 계산합니다.
주석:
- 이 단계는 지속적으로 증가하는 값의 초당 속도를 계산하는 데 유용합니다;
- 이 계산은 부동소수점 숫자를 생성할 수 있으므로, 들어오는 원시 값이 정수라 하더라도 '정보 유형'을 Numeric (float)로 설정하는 것이 권장됩니다.
이는 소수 부분이 중요한 작은 숫자에 특히 관련이 있습니다.
부동소수점 값이 크고 'float' 필드 길이를 초과할 수 있는 경우 전체 값이 손실될 수 있으므로, 실제로 Numeric (unsigned)를 사용하여 소수 부분만 자르는 것이 권장됩니다.
- (value-prev_value)/(time-prev_time)로 평가되며, 여기서 value - 현재 값; prev_value - 이전에 받은 값; time - 현재 타임스탬프; prev_time - 이전 값의 타임스탬프;
- 아이템당 하나의 변화 작업만 허용됩니다("단순 변화" 또는 "초당 변화량");
- 현재 값이 이전 값보다 작으면, Zabbix는 해당 차이를 삭제하고(아무것도 저장하지 않음) 다른 값을 기다립니다.
이는 예를 들어 32비트 SNMP 카운터의 래핑(오버플로)에서 올바르게 작동하는 데 도움이 됩니다.
- Custom on fail 체크박스를 표시하면 사용자 지정 오류 처리 옵션을 지정할 수 있습니다: 값을 삭제하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우, 값을 삭제하거나 지정된 값을 설정하는 옵션을 선택하면 아이템이 지원되지 않음 상태가 되지 않습니다.
Boolean을 십진수로
값을 boolean 형식에서 십진수로 변환합니다.
설명:
- 텍스트 표현은 0 또는 1로 변환됩니다.
따라서 'TRUE'는 1로 저장되고 'FALSE'는 0으로 저장됩니다.
모든 값은 대소문자를 구분하지 않는 방식으로 일치됩니다.
현재 인식되는 값은 TRUE의 경우 - true, t, yes, y, on, up, running, enabled, available, ok, master이고, FALSE의 경우 - false, f, no, n, off, down, unused, disabled, unavailable, err, slave입니다.
또한 0이 아닌 모든 숫자 값은 TRUE로 간주되고 0은 FALSE로 간주됩니다.
- Custom on fail 체크박스를 체크하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 삭제하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우, 값을 삭제하거나 지정된 값을 설정하는 옵션을 선택하면 아이템이 지원되지 않음 상태가 되지 않습니다.
8진법을 10진법으로
8진법 형식의 값을 10진법으로 변환합니다.
실패 시 사용자 정의 확인란을 체크하면, 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 폐기하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우, 값을 폐기하거나 지정된 값을 설정하는 옵션을 선택하면 아이템이 지원되지 않는 상태가 되지 않습니다.
16진수를 10진수로
16진수 형식의 값을 10진수로 변환합니다.
실패 시 사용자 정의 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 버리거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패할 경우, 값을 버리거나 지정된 값을 설정하는 옵션이 선택되었다면 해당 아이템은 지원되지 않는 상태가 되지 않습니다.
JavaScript
매개변수 필드를 클릭하거나 옆의 연필 아이콘을 클릭하면 열리는 모달 편집기에서 JavaScript 코드를 입력하세요.
전처리 JavaScript에서는 선언되지 않은 할당을 사용하지 마세요.
지역 변수를 선언하려면 var을 사용하세요.
참고사항:
- 사용 가능한 JavaScript 길이는 사용하는 데이터베이스에 따라 달라집니다;
- 자세한 정보는 다음을 참조하세요: Javascript 전처리.
범위 내
최솟값/최댓값(포함)을 지정하여 값이 있어야 하는 범위를 정의합니다.
주석:
- 숫자 값이 허용됩니다(자릿수, 선택적 소수 부분 및 선택적 지수 부분, 음수 값 포함);
- 최솟값은 최댓값보다 작아야 합니다;
- 최소 하나의 값이 존재해야 합니다;
- 사용자 매크로 및 저수준 검색 매크로를 사용할 수 있습니다;
- 실패 시 사용자 정의 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값 버리기, 지정된 값 설정, 또는 지정된 오류 메시지 설정. 전처리 단계가 실패한 경우, 값 버리기 또는 지정된 값 설정 옵션을 선택하면 항목이 지원되지 않음 상태가 되지 않습니다.
정규 표현식 일치
값이 일치해야 하는 정규 표현식을 지정합니다.
Custom on fail 체크박스를 선택하면, 커스텀 오류 처리 옵션을 지정할 수 있습니다: 값을 폐기하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우, 값을 폐기하거나 지정된 값을 설정하는 옵션을 선택하면 아이템이 지원되지 않는 상태가 되지 않습니다.
정규표현식과 일치하지 않음
값이 일치하지 않아야 하는 정규표현식을 지정합니다.
Custom on fail 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 폐기하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우, 값을 폐기하거나 지정된 값을 설정하는 옵션을 선택하면 항목이 지원되지 않는 상태가 되지 않습니다.
JSON에서 오류 확인
JSONPath에 위치한 애플리케이션 수준 오류 메시지를 확인합니다. 성공하고 메시지가 비어있지 않으면 처리를 중단합니다. 그렇지 않으면 이 전처리 단계 이전의 값으로 처리를 계속합니다.
코멘트:
- 이러한 외부 서비스 오류는 전처리 단계 정보를 추가하지 않고 그대로 사용자에게 보고됩니다;
- 유효하지 않은 JSON을 파싱하지 못한 경우에는 오류가 보고되지 않습니다;
- 실패 시 사용자 정의 확인란을 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 폐기하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우, 값을 폐기하거나 지정된 값을 설정하는 옵션이 선택되면 항목이 지원되지 않는 상태가 되지 않습니다.
XML에서 오류 확인
XPath에 위치한 애플리케이션 수준 오류 메시지를 확인합니다. 성공하고 메시지가 비어있지 않으면 처리를 중단하고, 그렇지 않으면 이 전처리 단계 이전의 값으로 처리를 계속합니다.
코멘트:
- 이러한 외부 서비스 오류는 전처리 단계 정보를 추가하지 않고 사용자에게 그대로 보고됩니다;
- 잘못된 XML을 파싱하지 못한 경우에는 오류가 보고되지 않습니다;
- Custom on fail 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 폐기하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우, 값을 폐기하거나 지정된 값을 설정하는 옵션이 선택되면 아이템은 지원되지 않는 상태가 되지 않습니다.
정규 표현식을 사용한 오류 확인
정규 표현식을 사용하여 애플리케이션 수준의 오류 메시지를 확인합니다. 성공하고 메시지가 비어있지 않으면 처리를 중단하고, 그렇지 않으면 이 전처리 단계 이전의 값으로 처리를 계속합니다.
매개변수:
- pattern - 정규 표현식;
- output - 출력 형식 템플릿. \N (N=1…9) 이스케이프 시퀀스는 N번째 일치하는 그룹으로 대체됩니다. \0 이스케이프 시퀀스는 일치하는 텍스트로 대체됩니다.
주석:
- 이러한 외부 서비스 오류는 전처리 단계 정보를 추가하지 않고 그대로 사용자에게 보고됩니다;
- 실패 시 사용자 정의 확인란을 선택하면, 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 삭제하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우, 값을 삭제하거나 지정된 값을 설정하는 옵션을 선택하면 아이템은 지원되지 않음 상태가 되지 않습니다.
지원되지 않는 값 확인
아이템 값을 검색할 수 없는지 확인합니다. 반환된 오류 메시지를 검사하여 실패를 어떻게 처리할지 지정합니다.
매개변수:
- scope - 오류 처리 범위를 선택합니다:
any error - 모든 오류;
error matches - pattern에서 지정된 정규 표현식과 일치하는 오류만;
error does not match - pattern에서 지정된 정규 표현식과 일치하지 않는 오류만 - pattern - 오류와 일치시킬 정규 표현식입니다.
scope 매개변수에서 any error가 선택되면 이 필드는 표시되지 않습니다.
표시되면 이 필드는 필수입니다.
코멘트:
- 일반적으로 값의 부재/검색 실패는 아이템이 지원되지 않게 됩니다. 이 전처리 단계를 통해 이러한 동작을 수정할 수 있습니다. Custom on fail 체크박스를 표시하면(이 전처리 단계에서는 항상 표시되고 회색으로 표시됨), 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 삭제하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정할 수 있습니다. 전처리 단계가 실패한 경우, 값을 삭제하거나 지정된 값을 설정하는 옵션이 선택되면 아이템은 지원되지 않게 되지 않습니다.
- 이 전처리 단계는 아이템 값을 검색할 수 없는지만 확인합니다. 예를 들어, 검색된 값의 유형(예: 문자열)이 아이템의 정보 유형(예: 숫자)과 일치하는지는 확인하지 않습니다. 자세한 내용은 전처리 예제를 참조하세요. 유형 불일치가 있는 경우, 모든 전처리 단계가 실행된 후에도 아이템은 여전히 지원되지 않을 수 있습니다. 유형 불일치를 확인하려면 예를 들어 Custom multiplier 전처리 단계를 사용할 수 있습니다. 전처리 예제를 참조하세요.
- 정규 표현식 그룹 캡처는 Set value to 또는 Set error to 필드에서 지원됩니다. \N(여기서 N=1…9)을 사용하여 N번째 일치하는 그룹을 검색합니다. \0을 사용하여 일치하는 텍스트를 검색합니다;
- 이러한 단계는 항상 첫 번째 전처리 단계로 실행되며 아이템에 대한 변경 사항을 저장한 후 다른 모든 단계 위에 배치됩니다;
- 여러 개의 Check for not supported value 단계가 지정된 순서대로 지원됩니다. any error에 대한 단계는 이 그룹의 마지막 단계로 자동 배치됩니다.
변경되지 않은 값 삭제
값이 변경되지 않은 경우 해당 값을 삭제합니다.
참고사항:
- 값이 삭제되면 데이터베이스에 저장되지 않으며 Zabbix 서버는 해당 값이 수신되었다는 사실을 알 수 없습니다.
트리거 표현식이 평가되지 않으므로 관련 트리거에 대한 문제가 생성/해결되지 않습니다.
함수는 실제로 데이터베이스에 저장된 데이터를 기반으로만 작동합니다.
트렌드는 데이터베이스의 데이터를 기반으로 구축되므로 한 시간 동안 저장된 값이 없으면 해당 시간에 대한 트렌드 데이터도 없게 됩니다.
- 아이템당 하나의 스로틀링 옵션만 지정할 수 있습니다.
하트비트로 미변경 시 삭제
정의된 시간 주기(초) 내에서 값이 변경되지 않은 경우 해당 값을 삭제합니다.
참고사항:
- 초 단위를 지정하기 위해 양의 정수 값이 지원됩니다(최소 - 1초);
- 시간 접미사를 사용할 수 있습니다(예: 30s, 1m, 2h, 1d);
- 사용자 매크로 및 low-level discovery 매크로를 사용할 수 있습니다;
- 값이 삭제되면 데이터베이스에 저장되지 않으며 Zabbix 서버는 이 값을 받았다는 것을 알지 못합니다.
트리거 표현식이 평가되지 않으므로 관련 트리거에 대한 문제가 생성/해결되지 않습니다.
함수는 실제로 데이터베이스에 저장된 데이터를 기반으로만 작동합니다.
트렌드는 데이터베이스의 데이터를 기반으로 구축되므로, 한 시간 동안 저장된 값이 없으면 해당 시간에 대한 트렌드 데이터도 없습니다.
- 아이템당 하나의 스로틀링 옵션만 지정할 수 있습니다.
Prometheus 패턴
Prometheus 메트릭에서 필요한 데이터를 추출하려면 다음 쿼리를 사용하세요.
자세한 내용은 Prometheus 검사를 참조하세요.
Prometheus to JSON
필요한 Prometheus 메트릭을 JSON으로 변환합니다.
자세한 내용은 Prometheus 체크를 참조하세요.
매크로 지원
사용자 매크로 및 컨텍스트가 있는 사용자 매크로가 다음 항목에서 지원됩니다:
- JavaScript 코드를 포함한 전처리 단계 매개변수
- 사용자 정의 오류 처리 매개변수 (값을 다음으로 설정 및 오류를 다음으로 설정 필드).
매크로가 해당 값으로 대체될 때 매크로 컨텍스트는 무시됩니다. 매크로 값은 그대로 코드에 삽입되며, JavaScript 코드에 값을 배치하기 전에 추가 이스케이프를 추가할 수 없습니다. 이로 인해 경우에 따라 JavaScript 오류가 발생할 수 있다는 점을 유의하시기 바랍니다.
테스팅
전처리 테스팅을 참조하세요.