18개의 스크립트 항목
원본 보기이 페이지에서
18 스크립트 아이템
개요
스크립트 아이템은 HTTP/HTTPS를 통해 데이터를 검색할 수 있는 기능과 함께 사용자 정의 JavaScript 코드를 실행하여 데이터를 수집하는 데 사용할 수 있습니다. 스크립트 외에도 선택적으로 파라미터 목록(이름과 값의 쌍)과 타임아웃을 지정할 수 있습니다.
이 아이템 유형은 여러 단계나 복잡한 로직이 필요한 데이터 수집 시나리오에서 유용할 수 있습니다. 예를 들어, 스크립트 아이템은 HTTP 호출을 수행한 다음 첫 번째 단계에서 받은 데이터를 어떤 방식으로든 처리하고, 변환된 값을 두 번째 HTTP 호출에 전달하도록 구성할 수 있습니다.
스크립트 아이템은 Zabbix 서버 또는 프록시 폴러에 의해 처리됩니다.
구성
아이템 구성 폼의 유형 필드에서 스크립트를 선택한 다음 필요한 필드를 입력하세요.

모든 필수 입력 필드는 빨간색 별표로 표시됩니다.
스크립트 아이템에 대한 특정 정보가 필요한 필드는 다음과 같습니다:
| 필드 | 설명 |
|---|---|
| 키 | 아이템을 식별하는 데 사용될 고유한 키를 입력하세요. |
| 파라미터 | 속성과 값 쌍으로 스크립트에 전달될 변수를 지정하세요. 사용자 매크로가 지원됩니다. 지원되는 내장 매크로를 확인하려면 지원되는 매크로 표에서 "스크립트 유형 아이템"을 검색하세요. |
| 스크립트 | 파라미터 필드를 클릭하거나 옆의 연필 아이콘을 클릭하면 열리는 모달 편집기에 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.com과 https://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;
편집 제안
편집 제안이 편집자에게 전송되었습니다. Zabbix 문서 개선에 도움을 주셔서 감사합니다.
오류가 발생했습니다. 다음에 다시 시도해 주세요.