14 계산된 아이템

개요

계산된 아이템은 기존 아이템들의 값을 기반으로 계산을 생성할 수 있게 해줍니다. 예를 들어, 어떤 아이템 값의 시간당 평균을 계산하거나 아이템 그룹의 총 값을 계산하고 싶을 수 있습니다. 이것이 바로 계산된 아이템의 용도입니다.

계산에는 다음 두 가지를 모두 사용할 수 있습니다:

  • 개별 아이템의 단일 값
  • 집계를 위해 여러 아이템을 선택하는 복합 필터 (자세한 내용은 집계 계산 참조)

계산된 아이템은 가상 데이터 소스를 생성하는 방법입니다. 모든 계산은 Zabbix 서버에서만 수행됩니다. 값들은 사용된 산술 표현식을 기반으로 주기적으로 계산됩니다.

결과 데이터는 다른 모든 아이템과 마찬가지로 Zabbix 데이터베이스에 저장됩니다. 히스토리와 트렌드 값이 모두 저장되며 그래프를 생성할 수 있습니다.

계산 결과가 부동소수점 값이고 계산된 아이템의 정보 타입이 Numeric (unsigned)인 경우 정수로 잘립니다.

또한, 캐시에 최근 데이터가 없고 함수에 정의된 쿼리 기간이 없는 경우, Zabbix는 기본적으로 과거 일주일까지 거슬러 올라가 히스토리 값을 위해 데이터베이스를 쿼리합니다.

계산된 아이템은 트리거 표현식과 구문을 공유합니다. 계산된 아이템에서는 문자열 비교가 허용됩니다. 계산된 아이템은 다른 모든 아이템 타입과 마찬가지로 매크로나 다른 엔터티에 의해 참조될 수 있습니다.

계산된 아이템을 사용하려면 아이템 타입을 Calculated로 선택하세요.

구성 가능한 필드

는 고유한 아이템 식별자입니다(호스트별). 지원되는 기호를 사용하여 임의의 키 이름을 생성할 수 있습니다.

계산 정의는 Formula 필드에 입력해야 합니다. 공식과 키 사이에는 연결이 없습니다. 키 매개변수는 공식에서 어떤 방식으로도 사용되지 않습니다.

간단한 공식의 구문은 다음과 같습니다:

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]))

참고: 집계 계산 예시