4 히스토리와 트렌드

개요

히스토리와 트렌드는 Zabbix에서 수집된 데이터를 저장하는 두 가지 방법입니다.

히스토리는 수집된 각 값을 보관하는 반면, 트렌드는 시간별 평균 정보를 보관하므로 리소스 소모가 적습니다.

히스토리 보관

히스토리를 며칠 동안 보관할지 설정할 수 있습니다:

  • 아이템 속성 에서
  • 아이템을 일괄 업데이트할 때
  • 하우스키퍼 작업을 설정할 때

더 오래된 데이터는 하우스키퍼에 의해 제거됩니다.

일반적으로 강력히 권장하는 것은 히스토리를 가능한 한 적은 일수로 보관하여 데이터베이스가 많은 과거 값으로 과부하되지 않도록 하는 것입니다.

긴 히스토리를 보관하는 대신, 트렌드의 더 긴 데이터를 보관할 수 있습니다. 예를 들어, 히스토리는 14일, 트렌드는 5년 동안 보관할 수 있습니다.

히스토리와 트렌드 데이터에 필요한 공간이 얼마나 되는지는 데이터베이스 크기 산정 페이지를 참조하면 좋은 아이디어를 얻을 수 있습니다.

더 짧은 히스토리를 보관하더라도 그래프에서는 여전히 오래된 데이터를 검토할 수 있습니다. 그래프는 오래된 데이터를 표시할 때 트렌드 값을 사용하기 때문입니다.

히스토리가 '0'으로 설정되면, 아이템은 종속 아이템과 인벤토리만 업데이트합니다. 트리거 평가는 히스토리 데이터에만 기반하므로 트리거 함수는 평가되지 않습니다.

히스토리를 보존하는 대안적인 방법으로 로드 가능한 모듈의 히스토리 내보내기 기능 사용을 고려해보세요.

트렌드는 숫자 데이터 타입에 대해 매 시간마다 최솟값, 최댓값, 평균값, 총 값의 개수를 저장하는 내장 히스토리 데이터 축소 메커니즘입니다.

트렌드를 며칠 동안 보관할지 설정할 수 있습니다:

  • 아이템 속성 에서
  • 아이템을 일괄 업데이트할 때
  • Housekeeper 작업을 설정할 때

트렌드는 일반적으로 히스토리보다 훨씬 오래 보관할 수 있습니다. 더 오래된 데이터는 하우스키퍼에 의해 제거됩니다.

Zabbix 서버는 데이터가 유입되면서 런타임에 트렌드 캐시에 트렌드 데이터를 누적합니다. 서버는 다음 상황에서 각 아이템의 이전 시간 트렌드를 데이터베이스(프론트엔드가 찾을 수 있는 곳)로 플러시합니다:

  • 서버가 해당 아이템의 첫 번째 현재 시간 값을 받을 때
  • 현재 시간의 5분 이하가 남았고 여전히 해당 아이템의 현재 시간 값이 없을 때
  • 서버가 중지될 때

그래프에서 트렌드를 보려면 적어도 다음 시간의 시작까지(아이템이 자주 업데이트되는 경우) 그리고 최대 다음 시간의 끝까지(아이템이 드물게 업데이트되는 경우) 기다려야 하며, 이는 최대 2시간입니다.

서버가 트렌드 캐시를 플러시할 때 이미 해당 시간에 대한 트렌드가 데이터베이스에 있는 경우(예를 들어, 서버가 시간 중간에 재시작된 경우), 서버는 단순한 삽입 대신 업데이트 구문을 사용해야 합니다. 따라서 대규모 설치에서 재시작이 필요한 경우 트렌드 데이터 중복을 피하기 위해 한 시간의 끝에 서버를 중지하고 다음 시간의 시작에 시작하는 것이 바람직합니다.

히스토리 테이블은 트렌드 생성에 어떤 식으로든 관여하지 않습니다.

트렌드가 '0'으로 설정되면, Zabbix 서버는 트렌드를 전혀 계산하거나 저장하지 않습니다.

트렌드는 원본 값과 동일한 데이터 타입으로 계산되고 저장됩니다. 결과적으로 부호 없는 데이터 타입 값의 평균값 계산은 반올림되며, 값 구간이 작을수록 결과의 정밀도가 떨어집니다. 예를 들어, 아이템이 0과 1의 값을 가지는 경우 평균값은 0.5가 아닌 0이 됩니다.

또한 서버를 재시작하면 현재 시간에 대한 부호 없는 데이터 타입 평균값 계산의 정밀도 손실이 발생할 수 있습니다.