16 스크립트 아이템

개요

스크립트 아이템은 HTTP/HTTPS를 통해 데이터를 가져오는 기능과 함께 사용자 정의 JavaScript 코드를 실행하여 데이터를 수집하는 데 사용할 수 있습니다. 스크립트 외에 선택적으로 매개변수 목록(이름과 값의 쌍)과 타임아웃을 지정할 수 있습니다.

이 아이템 유형은 여러 단계나 복잡한 논리가 필요한 데이터 수집 시나리오에서 유용할 수 있습니다. 예를 들어, 스크립트 아이템은 HTTP 호출을 만들고, 첫 번째 단계에서 받은 데이터를 어떤 방식으로든 처리한 후, 변환된 값을 두 번째 HTTP 호출에 전달하도록 구성할 수 있습니다.

스크립트 아이템은 Zabbix 서버 또는 프록시 폴러에 의해 처리됩니다.

구성

아이템 구성 양식유형 필드에서 스크립트를 선택한 후 필수 필드를 채웁니다.

script\_item.png

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

스크립트 아이템에 대한 특정 정보가 필요한 필드는 다음과 같습니다:

필드 설명
아이템을 식별하는 데 사용할 고유 키를 입력합니다.
매개변수 속성과 값 쌍으로 스크립트에 전달할 변수를 지정합니다.
사용자 매크로가 지원됩니다. 어떤 내장 매크로가 지원되는지 확인하려면 지원되는 매크로 테이블에서 "Script-type item"을 검색하세요.
스크립트 매개변수 필드를 클릭하거나 옆의 연필 아이콘을 클릭할 때 열리는 모달 에디터에 JavaScript 코드를 입력합니다. 이 코드는 메트릭 값을 반환하는 로직을 제공해야 합니다.
코드는 모든 매개변수와 Zabbix에서 추가한 모든 추가 JavaScript 객체에 액세스할 수 있습니다.
참조: JavaScript Guide.
타임아웃 JavaScript 실행 타임아웃(1-600초; 초과하면 오류를 반환합니다).
스크립트에 따라 타임아웃이 트리거되는 데 더 오래 걸릴 수 있습니다.
타임아웃 매개변수에 대한 자세한 정보는 일반 아이템 속성을 참조하세요.

예시

간단한 데이터 수집

https://www.example.com/release\_notes의 내용 수집:

  • "스크립트" 유형의 아이템을 생성합니다.
  • 스크립트 필드에 다음을 입력합니다:
var request = new HttpRequest();
return request.get("https://www.example.com/release_notes");
매개변수를 사용한 데이터 수집

특정 페이지의 내용을 수집하고 매개변수를 활용:

  • "스크립트" 유형의 아이템을 두 개의 매개변수와 함께 생성합니다:
    • url : {$DOMAIN} (사용자 매크로 {$DOMAIN}은 정의되어야 하며, 가급적 호스트 레벨에서 정의)
    • subpage : /release_notes

  • 스크립트 필드에 다음을 입력합니다:
var obj = JSON.parse(value);
var url = obj.url;
var subpage = obj.subpage;
var request = new HttpRequest();
return request.get(url + subpage);
다중 HTTP 요청

https://www.example.comhttps://www.example.com/release\_notes 모두의 내용 수집:

  • "스크립트" 유형의 아이템을 생성합니다.
  • 스크립트 필드에 다음을 입력합니다:
var request = new HttpRequest();
return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
로깅

Zabbix 서버 로그에 "Log test" 항목을 추가하고 아이템 값 "1"을 반환받기:

  • "스크립트" 유형의 아이템을 생성합니다.
  • 스크립트 필드에 다음을 입력합니다:
Zabbix.log(3, 'Log test');
return 1;