7개의 계산된 항목
원본 보기7 계산 항목
개요
계산 항목은 기존 항목들의 값을 기반으로 계산을 만들 수 있도록 합니다. 예를 들어, 어떤 항목 값의 시간당 평균을 계산하거나 항목 그룹의 총합 값을 계산하고 싶을 수 있습니다. 이것이 계산 항목이 사용되는 목적입니다.
계산은 다음 두 가지를 모두 사용할 수 있습니다:
- 개별 항목의 단일 값
- 집계를 위해 여러 항목을 선택하는 복합 필터 (자세한 내용은 집계 계산 참조)
계산 항목은 가상 데이터 소스를 생성하는 방법입니다. 모든 계산은 Zabbix 서버에서만 수행됩니다. 값들은 사용된 산술 표현식을 기반으로 주기적으로 계산됩니다.
계산 결과 데이터는 다른 항목과 마찬가지로 Zabbix 데이터베이스에 저장됩니다. 히스토리와 트렌드 값이 모두 저장되며 그래프를 생성할 수 있습니다.
계산 결과가 부동소수점 값일 경우, 계산 항목의 정보 유형이 숫자(부호 없는)라면 정수로 잘림됩니다.
또한 캐시에 최근 데이터가 없고 함수에 정의된 조회 기간이 없다면, Zabbix는 기본적으로 과거 일주일까지 거슬러 올라가 데이터베이스에서 히스토리 값을 조회합니다.
계산 항목은 트리거 표현식과 문법을 공유합니다. 계산 항목에서는 문자열과의 비교가 허용됩니다. 계산 항목은 다른 항목 유형과 마찬가지로 매크로나 다른 엔터티에서 참조될 수 있습니다.
계산 항목을 사용하려면 항목 유형을 Calculated로 선택하세요.
설정 가능한 필드
키는 고유한 항목 식별자(호스트별)입니다. 지원되는 기호를 사용하여 원하는 키 이름을 만들 수 있습니다.
계산 정의는 공식 필드에 입력해야 합니다. 공식과 키 사이에는 연결이 없습니다. 키 매개변수는 공식에서 어떤 방식으로도 사용되지 않습니다.
간단한 공식의 문법은 다음과 같습니다:
function(/host/key,<parameter1>,<parameter2>,...)
여기서:
| function | 지원되는 함수 중 하나: last, min, max, avg, count 등 |
| host | 계산에 사용되는 항목의 호스트. 현재 호스트는 생략할 수 있습니다 (즉, function(//key,parameter,...)와 같이). |
| key | 계산에 사용되는 항목의 키. 바이너리 데이터 유형으로 값을 반환하는 항목은 지원되지 않습니다. |
| parameter(s) | 필요한 경우 함수의 매개변수. 시간 접미사 및 메모리 크기 접미사가 지원됩니다. |
공식의 사용자 매크로는 함수 매개변수, 항목 필터 매개변수 또는 상수를 참조하는 데 사용되는 경우 확장됩니다. 사용자 매크로는 함수, 호스트 이름, 항목 키, 항목 키 매개변수 또는 연산자를 참조하는 경우 확장되지 않습니다.
더 복합적인 공식은 함수, 연산자 및 괄호의 조합을 사용할 수 있습니다. 트리거 표현식에서 지원되는 모든 함수와 연산자를 사용할 수 있습니다. 논리와 연산자 우선순위는 정확히 동일합니다.
트리거 표현식과 달리 Zabbix는 새 값을 수신할 때가 아니라 항목 업데이트 간격에 따라 계산 항목을 처리합니다.
계산 항목 공식에서 히스토리 함수로 참조되는 모든 항목은 존재해야 하고 데이터를 수집해야 합니다. 또한 참조된 항목의 항목 키를 변경하면 해당 키를 사용하는 모든 공식을 수동으로 업데이트해야 합니다.
계산 항목은 여러 경우에 지원되지 않을 수 있습니다:
- 참조된 항목이
- 찾을 수 없음
- 비활성화됨
- 비활성화된 호스트에 속함
- 지원되지 않음 (nodata() 함수 및 알 수 없는 값을 가진 연산자 제외)
- 함수를 계산할 데이터가 없음
- 0으로 나누기
- 잘못된 문법 사용
사용 예제
예제 1
'/'에서 사용 가능한 디스크 공간의 퍼센트 계산.
last 함수 사용:
100*last(//vfs.fs.size[/,free])/last(//vfs.fs.size[/,total])
Zabbix는 사용 가능한 디스크 공간과 전체 디스크 공간의 최신 값을 가져와서 주어진 공식에 따라 퍼센트를 계산합니다.
예제 2
Zabbix에서 처리된 값의 수에 대한 10분 평균 계산.
avg 함수 사용:
avg(/Zabbix Server/zabbix[wcache,values],10m)
긴 시간 기간을 가진 계산 항목을 광범위하게 사용하면 Zabbix 서버의 성능에 영향을 줄 수 있음을 참고하세요.
예제 3
eth0에서의 총 대역폭 계산.
두 함수의 합:
last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes])
예제 4
수신 트래픽의 퍼센트 계산.
더 복잡한 표현식:
100*last(//net.if.in[eth0,bytes])/(last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes]))
참조: 집계 계산 예제