스크립트 아이템

Zabbix v7.4번역일: 2026-09-09원본 보기

개요

스크립트 아이템은 사용자 정의 JavaScript 코드를 실행하여 데이터를 수집하는 데 사용할 수 있으며, HTTP/HTTPS를 통해 데이터를 가져올 수 있는 기능을 제공합니다. 스크립트 외에도 파라미터(이름과 값의 쌍) 목록과 타임아웃을 선택적으로 지정할 수 있습니다.

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

스크립트 아이템은 Zabbix server 또는 proxy poller가 처리합니다.

구성

아이템 구성 폼의 Type 필드에서 Script를 선택한 다음 필수 필드를 입력합니다.

script_item.png

모든 필수 입력 필드는 빨간색 별표로 표시되어 있습니다.

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

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

예제

간단한 데이터 수집

*https://www.example.com/release\_notes*:의 콘텐츠 수집:

  • 유형이 "Script"인 아이템을 생성합니다.
  • Script 필드에 다음을 입력합니다.
var request = new HttpRequest();
return request.get("https://www.example.com/release_notes");
파라미터를 사용한 데이터 수집

특정 페이지의 콘텐츠를 수집하고 파라미터를 활용:

  • 유형이 "Script"이고 파라미터가 두 개인 아이템을 생성합니다.
    • url : {$DOMAIN} (사용자 매크로 {$DOMAIN}은 정의되어 있어야 하며, 가급적 호스트 수준에서 정의하는 것이 좋습니다)
    • subpage : /release_notes

  • Script 필드에 다음을 입력합니다.
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.com와 *https://www.example.com/release\_notes*: 둘 다의 콘텐츠 수집:

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

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

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