3 저수준 디스커버리
원본 보기3 로우레벨 디스커버리
개요
저수준 검색(LLD)은 호스트의 다양한 엔터티에 대해 아이템, 트리거, 그래프를 자동으로 생성하는 방법을 제공합니다. 예를 들어, Zabbix는 각 파일 시스템이나 네트워크 인터페이스에 대해 수동으로 아이템을 생성할 필요 없이 머신의 파일 시스템이나 네트워크 인터페이스를 자동으로 모니터링을 시작할 수 있습니다. LLD는 또한 호스트를 생성할 수도 있습니다. 예를 들어, 하이퍼바이저에서 발견된 가상 머신을 채우기 위해서입니다. 또한 주기적으로 수행되는 검색의 실제 결과를 기반으로 불필요한 엔터티를 자동으로 제거하도록 Zabbix를 구성할 수 있습니다.
사용자는 특정 JSON 프로토콜을 따른다면 자신만의 검색 유형을 정의할 수 있습니다.
검색 프로세스의 일반적인 아키텍처는 다음과 같습니다.
먼저, 사용자는 데이터 수집 > 템플릿의 검색 컬럼에서 검색 규칙을 생성합니다. 검색 규칙은 (1) 필요한 엔터티(예: 파일 시스템이나 네트워크 인터페이스)를 검색하는 아이템과 (2) 해당 아이템의 값을 기반으로 생성해야 할 아이템, 트리거, 그래프의 프로토타입으로 구성됩니다.
필요한 엔터티를 검색하는 아이템은 다른 곳에서 볼 수 있는 일반적인 아이템과 같습니다: 서버가 해당 아이템의 값을 Zabbix 에이전트(또는 아이템 타입이 설정된 것)에게 요청하면, 에이전트는 텍스트 값으로 응답합니다. 차이점은 에이전트가 응답하는 값이 JSON 형식의 검색된 엔터티 목록을 포함해야 한다는 것입니다. 이 형식의 세부 사항은 커스텀 검색 확인의 구현자에게만 중요하지만, 반환된 값이 매크로 → 값 쌍의 목록을 포함한다는 것을 알아야 합니다. 예를 들어, "net.if.discovery" 아이템은 "{#IFNAME}" → "lo"와 "{#IFNAME}" → "eth0"라는 두 쌍을 반환할 수 있습니다.
이러한 매크로는 이름, 키 및 기타 프로토타입 필드에서 사용되며, 각 검색된 엔터티에 대해 실제 아이템, 트리거, 그래프 또는 호스트를 생성할 때 받은 값으로 치환됩니다. LLD 매크로 사용에 대한 전체 옵션 목록을 확인하세요.
서버가 검색 아이템에 대한 값을 받으면, 매크로 → 값 쌍을 확인하고 각 쌍에 대해 프로토타입을 기반으로 실제 아이템, 트리거, 그래프를 생성합니다. 위의 "net.if.discovery" 예제에서 서버는 루프백 인터페이스 "lo"에 대한 아이템, 트리거, 그래프 세트 하나와 인터페이스 "eth0"에 대한 또 다른 세트를 생성할 것입니다.
Zabbix 4.2부터 저수준 검색 규칙이 반환하는 JSON의 형식이 변경되었다는 점에 유의하세요. 더 이상 JSON이 "data" 객체를 포함할 것으로 예상되지 않습니다. 저수준 검색은 이제 아이템 값 전처리 및 JSON 문서의 저수준 검색 매크로 값에 대한 커스텀 경로와 같은 새로운 기능을 지원하기 위해 배열을 포함하는 일반적인 JSON을 허용합니다.
내장 검색 키는 JSON 문서의 루트에서 LLD 행의 배열을 반환하도록 업데이트되었습니다.
배열 필드가 {#MACRO} 구문을 키로 사용하는 경우 Zabbix는 자동으로 매크로와 값을 추출합니다.
새로운 네이티브 검색 확인은 "data" 요소 없이 새로운 구문을 사용합니다.
저수준 검색 값을 처리할 때 먼저 루트를 찾습니다($. 또는 $.data의 배열).
검색과 관련된 모든 네이티브 아이템에서 "data" 요소가 제거되었지만, 하위 호환성을 위해 Zabbix는 여전히 "data" 요소가 있는 JSON 표기법을 허용합니다. 단, 이러한 사용은 권장되지 않습니다.
JSON이 단일 "data" 배열 요소만 있는 객체를 포함하는 경우, JSONPath $.data를 사용하여 해당 요소의 내용을 자동으로 추출합니다.
저수준 검색은 이제 JSONPath 구문으로 지정된 커스텀 경로가 있는 사용자 정의 LLD 매크로를 선택적으로 허용합니다.
위의 변경 사항으로 인해 최신 에이전트는 더 이상 이전 Zabbix 서버와 작동할 수 없습니다.
참조: 검색된 엔터티
저수준 디스커버리 구성
파일 시스템 디스커버리 예제를 기반으로 저수준 디스커버리를 설명하겠습니다.
디스커버리를 구성하려면 다음과 같이 하세요:
- 데이터 수집 > 템플릿 또는 호스트로 이동하세요.
- 적절한 템플릿/호스트 행에서 디스커버리를 클릭하세요.

- 화면 오른쪽 상단 모서리에서 디스커버리 규칙 생성을 클릭하세요.
- 필수 세부 사항으로 디스커버리 규칙 양식을 작성하세요.
Discovery rule
디스커버리 규칙 폼은 5개의 탭으로 구성되어 있으며, 왼쪽부터 오른쪽으로 디스커버리 과정에서의 데이터 흐름을 나타냅니다:
- Discovery rule - 가장 중요한 것으로, 디스커버리 데이터를 검색할 내장 아이템 또는 커스텀 스크립트를 지정합니다.
- Preprocessing - 디스커버리된 데이터에 전처리를 적용합니다.
- LLD macros - 디스커버리된 아이템, 트리거 등에서 사용할 매크로 값을 추출할 수 있습니다.
- Filters - 디스커버리된 값을 필터링할 수 있습니다.
- Overrides - 특정 디스커버리된 객체에 적용할 때 아이템, 트리거, 그래프 또는 호스트 프로토타입을 수정할 수 있습니다.
Discovery rule 탭에는 디스커버리에 사용할 아이템 키가 포함되어 있습니다(그리고 일반적인 디스커버리 규칙 속성도 포함):

모든 필수 입력 필드는 빨간 별표로 표시됩니다.
| 매개변수 | 설명 |
|---|---|
| Name | 디스커버리 규칙의 이름입니다. |
| Type | 디스커버리를 수행할 검사 유형입니다. 이 예제에서는 Zabbix agent 아이템 유형을 사용하고 있습니다. 디스커버리 규칙은 일반 아이템에 의존하는 dependent item이 될 수도 있습니다. 다른 디스커버리 규칙에는 의존할 수 없습니다. dependent item의 경우, 해당 유형(Dependent item)을 선택하고 'Master item' 필드에 마스터 아이템을 지정합니다. 마스터 아이템이 존재해야 합니다. |
| Key | 디스커버리 아이템 키를 입력합니다(최대 2048자). 예를 들어, 내장된 "vfs.fs.discovery" 아이템 키를 사용하여 컴퓨터에 있는 파일 시스템 목록, 그 유형 및 마운트 옵션과 함께 JSON 문자열을 반환할 수 있습니다. 파일시스템 디스커버리의 또 다른 옵션은 "vfs.fs.get" 에이전트 키로 디스커버리 결과를 사용하는 것입니다(예제 참조). |
| Update interval | 이 필드는 Zabbix가 얼마나 자주 디스커버리를 수행할지를 지정합니다. 처음에 파일 시스템 디스커버리를 설정할 때는 작은 간격으로 설정하고 싶을 수 있지만, 작동하는 것을 확인한 후에는 30분 이상으로 설정할 수 있습니다. 파일 시스템은 보통 자주 변경되지 않기 때문입니다. 시간 접미사가 지원됩니다. 예: 30s, 1m, 2h, 1d. 사용자 매크로가 지원됩니다. 참고: 업데이트 간격은 0이 아닌 값을 가진 커스텀 간격이 존재하는 경우에만 '0'으로 설정할 수 있습니다. '0'으로 설정되고 0이 아닌 값을 가진 커스텀 간격(유연하거나 예약된)이 존재하는 경우, 아이템은 커스텀 간격 기간 동안 폴링됩니다. 새 디스커버리 규칙은 스케줄링이나 유연한 업데이트 간격이 있고 Update interval이 0으로 설정된 경우가 아니라면 생성 후 60초 이내에 확인됩니다. 참고 기존 디스커버리 규칙의 경우 Execute now 버튼을 눌러 즉시 디스커버리를 수행할 수 있습니다. |
| Custom intervals | 아이템 확인을 위한 커스텀 규칙을 만들 수 있습니다: Flexible - Update interval의 예외를 만듭니다(다른 주기를 가진 간격) Scheduling - 커스텀 폴링 일정을 만듭니다. 자세한 정보는 Custom intervals를 참조하세요. |
| Timeout | 디스커버리 확인 타임아웃을 설정합니다. 타임아웃 옵션을 선택하세요: Global - 프록시/글로벌 타임아웃이 사용됩니다(회색으로 표시된 Timeout 필드에 표시됨); Override - 커스텀 타임아웃이 사용됩니다(Timeout 필드에서 설정; 허용 범위: 1 - 600s). 시간 접미사(예: 30s, 1m)와 사용자 매크로가 지원됩니다. Timeouts 링크를 클릭하면 프록시 타임아웃이나 글로벌 타임아웃(프록시가 사용되지 않는 경우)을 구성할 수 있습니다. Timeouts 링크는 Administration > General 또는 Administration > Proxies 프론트엔드 섹션에 대한 권한을 가진 Super admin 유형의 사용자에게만 표시됩니다. |
| Delete lost resources | 디스커버리된 엔터티의 디스커버리 상태가 "더 이상 디스커버리되지 않음"이 된 후 얼마나 빨리 삭제될지를 지정합니다: Never - 삭제되지 않습니다; Immediately - 즉시 삭제됩니다; After - 지정된 시간 기간 후에 삭제됩니다. 값은 Disable lost resources 값보다 커야 합니다. 시간 접미사가 지원됩니다. 예: 2h, 1d. 사용자 매크로가 지원됩니다. 참고: "Immediately"를 사용하는 것은 권장되지 않습니다. 필터를 잘못 편집하면 모든 히스토리 데이터와 함께 엔터티가 삭제될 수 있기 때문입니다. 수동으로 비활성화된 리소스는 low-level discovery에 의해 삭제되지 않습니다. |
| Disable lost resources | 디스커버리된 엔터티의 디스커버리 상태가 "더 이상 디스커버리되지 않음"이 된 후 얼마나 빨리 비활성화될지를 지정합니다: Never - 비활성화되지 않습니다; Immediately - 즉시 비활성화됩니다; After - 지정된 시간 기간 후에 비활성화됩니다. 값은 디스커버리 규칙 업데이트 간격보다 커야 합니다. 자동으로 비활성화된 리소스는 low-level discovery에 의해 다시 디스커버리되면 다시 활성화됩니다. 수동으로 비활성화된 리소스는 다시 디스커버리되어도 다시 활성화되지 않습니다. 이 필드는 Delete lost resources가 "Immediately"로 설정된 경우 표시되지 않습니다. 시간 접미사가 지원됩니다. 예: 2h, 1d. 사용자 매크로가 지원됩니다. |
| Description | 설명을 입력합니다. |
| Enabled | 체크되면 규칙이 처리됩니다. |
디스커버리 규칙 히스토리는 보존되지 않습니다.
전처리
전처리 탭에서는 디스커버리 결과에 적용할 변환 규칙을 정의할 수 있습니다. 이 단계에서는 하나 또는 여러 변환이 가능합니다. 변환은 정의된 순서대로 실행됩니다. 모든 전처리는 Zabbix 서버에 의해 수행됩니다.
참고 자료:

| 유형 | ||
|---|---|---|
| 변환 | 설명 | |
| 텍스트 | ||
| 정규 표현식 | 수신된 값을 <pattern> 정규 표현식과 일치시키고 추출된 <output>으로 값을 대체합니다. 정규 표현식은 \N 시퀀스로 최대 10개의 캡처 그룹 추출을 지원합니다. 매개변수: pattern - 정규 표현식 output - 출력 형식 템플릿. \N (여기서 N=1…9) 이스케이프 시퀀스는 N번째 일치하는 그룹으로 대체됩니다. \0 이스케이프 시퀀스는 일치하는 텍스트로 대체됩니다. 실패 시 사용자 정의 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값 삭제, 지정된 값 설정 또는 지정된 오류 메시지 설정. |
|
| 바꾸기 | 검색 문자열을 찾아 다른 것(또는 아무것도)으로 바꿉니다. 검색 문자열의 모든 발생이 교체됩니다. 매개변수: 검색 문자열 - 찾아서 교체할 문자열, 대소문자 구분 (필수) 대체 - 검색 문자열을 대체할 문자열. 대체 문자열은 비어있을 수도 있으며, 이는 검색 문자열을 발견했을 때 삭제하는 효과가 있습니다. 줄 바꿈, 캐리지 리턴, 탭 및 공백을 검색하거나 교체하기 위해 이스케이프 시퀀스 "\n \r \t \s"를 사용할 수 있습니다; 백슬래시는 "\\"로, 이스케이프 시퀀스는 "\\n"으로 이스케이프할 수 있습니다. 줄 바꿈, 캐리지 리턴, 탭의 이스케이프는 저수준 디스커버리 중에 자동으로 수행됩니다. |
|
| 구조화된 데이터 | ||
| JSONPath | JSONPath 기능을 사용하여 JSON 데이터에서 값 또는 조각을 추출합니다. 실패 시 사용자 정의 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값 삭제, 지정된 값 설정 또는 지정된 오류 메시지 설정. |
|
| XML XPath | XPath 기능을 사용하여 XML 데이터에서 값 또는 조각을 추출합니다. 이 옵션이 작동하려면 Zabbix 서버가 libxml 지원으로 컴파일되어야 합니다. 예제: number(/document/item/value)는 <document><item><value>10</value></item></document>에서 10을 추출합니다number(/document/item/@attribute)는 <document><item attribute="10"></item></document>에서 10을 추출합니다/document/item은 <document><item><value>10</value></item></document>에서 <item><value>10</value></item>를 추출합니다네임스페이스는 지원되지 않습니다. 실패 시 사용자 정의 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값 삭제, 지정된 값 설정 또는 지정된 오류 메시지 설정. |
|
| CSV to JSON | CSV 파일 데이터를 JSON 형식으로 변환합니다. 자세한 정보는 다음을 참조하세요: CSV to JSON 전처리. |
|
| XML to JSON | XML 형식의 데이터를 JSON으로 변환합니다. 자세한 정보는 다음을 참조하세요: 직렬화 규칙. 실패 시 사용자 정의 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값 삭제, 지정된 값 설정 또는 지정된 오류 메시지 설정. |
|
| SNMP | ||
| SNMP walk value | 지정된 OID/MIB 이름으로 값을 추출하고 형식 옵션을 적용합니다: 변경 없음 - Hex-STRING을 이스케이프되지 않은 hex 문자열로 반환 (참고 디스플레이 힌트는 여전히 적용됨); Hex-STRING에서 UTF-8로 - Hex-STRING을 UTF-8 문자열로 변환; Hex-STRING에서 MAC으로 - Hex-STRING을 MAC 주소 문자열로 변환 ( ' '를 ':'로 교체);BITS에서 정수로 - hex 문자 시퀀스로 표현된 비트 문자열의 처음 8바이트 (예: "1A 2B 3C 4D")를 64비트 부호 없는 정수로 변환. 8바이트보다 긴 비트 문자열에서는 이후 바이트들이 무시됩니다. 실패 시 사용자 정의 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값 삭제, 지정된 값 설정 또는 지정된 오류 메시지 설정. |
|
| SNMP walk to JSON | SNMP 값을 JSON으로 변환합니다. JSON에서 필드 이름과 해당 SNMP OID 경로를 지정합니다. 필드 값은 지정된 SNMP OID 경로의 값으로 채워집니다. 이 전처리 단계는 SNMP OID 디스커버리에 사용할 수 있습니다. SNMP walk value 단계와 유사한 값 형식 옵션을 사용할 수 있습니다. 실패 시 사용자 정의 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값 삭제, 지정된 값 설정 또는 지정된 오류 메시지 설정. |
|
| SNMP get value | SNMP get 값에 형식 옵션을 적용합니다: Hex-STRING에서 UTF-8로 - Hex-STRING을 UTF-8 문자열로 변환; Hex-STRING에서 MAC으로 - Hex-STRING을 MAC 주소 문자열로 변환 ( ' '를 ':'로 교체);BITS에서 정수로 - hex 문자 시퀀스로 표현된 비트 문자열의 처음 8바이트 (예: "1A 2B 3C 4D")를 64비트 부호 없는 정수로 변환. 8바이트보다 긴 비트 문자열에서는 이후 바이트들이 무시됩니다. 실패 시 사용자 정의 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값 삭제, 지정된 값 설정 또는 지정된 오류 메시지 설정. |
|
| 사용자 정의 스크립트 | ||
| JavaScript | 매개변수 필드를 클릭하거나 옆의 연필 아이콘을 클릭할 때 열리는 모달 에디터에서 JavaScript 코드를 입력합니다. 사용 가능한 JavaScript 길이는 사용되는 데이터베이스에 따라 달라집니다. 자세한 정보는 다음을 참조하세요: JavaScript 전처리 |
|
| 유효성 검사 | ||
| 정규 표현식과 일치하지 않음 | 값이 일치하면 안 되는 정규 표현식을 지정합니다. 예: Error:(.*?)\.실패 시 사용자 정의 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값 삭제, 지정된 값 설정 또는 지정된 오류 메시지 설정. |
|
| JSON의 오류 확인 | JSONPath에 위치한 애플리케이션 수준 오류 메시지를 확인합니다. 성공하고 메시지가 비어있지 않으면 처리를 중지하고, 그렇지 않으면 이 전처리 단계 이전의 값으로 처리를 계속합니다. 이러한 외부 서비스 오류는 전처리 단계 정보를 추가하지 않고 사용자에게 그대로 보고됩니다. 예: $.errors. {"errors":"e1"}과 같은 JSON이 수신되면 다음 전처리 단계는 실행되지 않습니다.실패 시 사용자 정의 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값 삭제, 지정된 값 설정 또는 지정된 오류 메시지 설정. |
|
| XML의 오류 확인 | Xpath에 위치한 애플리케이션 수준 오류 메시지를 확인합니다. 성공하고 메시지가 비어있지 않으면 처리를 중지하고, 그렇지 않으면 이 전처리 단계 이전의 값으로 처리를 계속합니다. 이러한 외부 서비스 오류는 전처리 단계 정보를 추가하지 않고 사용자에게 그대로 보고됩니다. 잘못된 XML 파싱에 실패한 경우에는 오류가 보고되지 않습니다. 실패 시 사용자 정의 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값 삭제, 지정된 값 설정 또는 지정된 오류 메시지 설정. |
|
| 정규 표현식과 일치함 | 값이 일치해야 하는 정규 표현식을 지정합니다. 실패 시 사용자 정의 체크박스를 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값 삭제, 지정된 값 설정 또는 지정된 오류 메시지 설정. |
|
| 제한 | ||
| 하트비트로 변경되지 않은 값 삭제 | 정의된 시간 기간(초) 내에 값이 변경되지 않은 경우 값을 삭제합니다. 초를 지정하기 위해 양의 정수 값이 지원됩니다(최소 - 1초). 이 필드에서는 시간 접미사를 사용할 수 있습니다(예: 30s, 1m, 2h, 1d). 사용자 매크로와 저수준 디스커버리 매크로를 이 필드에서 사용할 수 있습니다. 디스커버리 아이템에는 하나의 제한 옵션만 지정할 수 있습니다. 예: 1m. 동일한 텍스트가 60초 내에 이 규칙에 두 번 전달되면 삭제됩니다.참고: 아이템 프로토타입 변경은 제한을 재설정하지 않습니다. 제한은 전처리 단계가 변경될 때만 재설정됩니다. |
|
| Prometheus | ||
| Prometheus to JSON | 필요한 Prometheus 메트릭을 JSON으로 변환합니다. 자세한 내용은 Prometheus 확인을 참조하세요. |
|
디스커버리 규칙이 템플릿을 통해 호스트에 적용된 경우 이 탭의 내용은 읽기 전용입니다.
사용자 정의 매크로
LLD 매크로 탭에서는 사용자 정의 저수준 디스커버리 매크로를 지정할 수 있습니다.
사용자 정의 매크로는 반환된 JSON에 필요한 매크로가 이미 정의되어 있지 않은 경우에 유용합니다. 예를 들어:
- 파일시스템 디스커버리를 위한 기본
vfs.fs.discovery키는 {#FSNAME}, {#FSTYPE}과 같은 미리 정의된 LLD 매크로가 포함된 JSON을 반환합니다. 이러한 매크로는 아이템, 트리거 프로토타입(페이지의 다음 섹션 참조)에서 직접 사용할 수 있으며, 사용자 정의 매크로를 정의할 필요가 없습니다; vfs.fs.get에이전트 아이템도 파일시스템 데이터가 포함된 JSON을 반환하지만, 미리 정의된 LLD 매크로는 없습니다. 이 경우 매크로를 직접 정의하고 JSONPath를 사용하여 JSON의 값에 매핑할 수 있습니다:

추출된 값은 발견된 아이템, 트리거 등에서 사용할 수 있습니다. 값은 디스커버리 결과와 지금까지의 전처리 단계에서 추출됩니다.
| 매개변수 | 설명 |
|---|---|
| LLD 매크로 | 다음 구문을 사용하는 저수준 디스커버리 매크로의 이름: {#MACRO}. |
| JSONPath | JSONPath 구문을 사용하여 LLD 행에서 LLD 매크로 값을 추출하는 데 사용되는 경로. 반환된 JSON에서 추출된 값은 아이템, 트리거 등의 프로토타입 필드에서 LLD 매크로를 대체하는 데 사용됩니다. JSONPath는 점 표기법 또는 대괄호 표기법을 사용하여 지정할 수 있습니다. 특수 문자와 유니코드가 있는 경우 $['unicode + special chars #1']['unicode + special chars #2']와 같이 대괄호 표기법을 사용해야 합니다.예를 들어, $.foo는 이 JSON에서 "bar"와 "baz"를 추출합니다: [{"foo":"bar"}, {"foo":"baz"}]$.foo는 이 JSON에서도 "bar"와 "baz"를 추출한다는 점에 유의하세요: {"data":[{"foo":"bar"}, {"foo":"baz"}]} 단일 "data" 객체가 자동으로 처리되기 때문입니다(Zabbix 4.2 이전 버전의 저수준 디스커버리 구현과의 하위 호환성을 위해). |
필터
필터를 사용하면 기준에 일치하는 엔터티에 대해서만 실제 아이템, 트리거, 그래프를 생성할 수 있습니다. 필터 탭에는 디스커버리 값을 필터링할 수 있는 디스커버리 규칙 필터 정의가 포함되어 있습니다:

| 매개변수 | 설명 |
|---|---|
| 계산 유형 | 필터 계산을 위해 다음 옵션을 사용할 수 있습니다: And - 모든 필터를 통과해야 함; Or - 하나의 필터만 통과하면 충분함; And/Or - 서로 다른 매크로 이름에는 And를 사용하고 동일한 매크로 이름에는 Or를 사용함; 사용자 정의 표현식 - 필터의 사용자 정의 계산을 정의할 수 있는 가능성을 제공합니다. 공식은 목록의 모든 필터를 포함해야 합니다. 255개 기호로 제한됩니다. |
| 필터 | 다음 필터 조건 연산자를 사용할 수 있습니다: 일치, 일치하지 않음, 존재, 존재하지 않음. 일치 및 일치하지 않음 연산자는 Perl Compatible Regular Expression (PCRE)를 기대합니다. 예를 들어, C:, D:, E: 파일 시스템에만 관심이 있다면 "매크로"에 {#FSNAME}을 입력하고 "정규 표현식" 텍스트 필드에 "\C|\D|\E" 정규 표현식을 입력할 수 있습니다. {#FSTYPE} 매크로를 사용한 파일 시스템 타입별 필터링(예: "\ext|\reiserfs")과 {#FSDRIVETYPE} 매크로를 사용한 드라이브 타입별 필터링(Windows 에이전트에서만 지원)(예: "fixed")도 가능합니다. "정규 표현식" 필드에는 정규 표현식을 입력하거나 전역 정규 표현식을 참조할 수 있습니다. 정규 표현식을 테스트하려면 "grep -E"를 사용할 수 있습니다. 예: ````for f in ext2 nfs reiserfs smbfs; do echo $f | grep -E 'ext|^reiserfs' || echo "SKIP: $f"; done```` 존재 및 존재하지 않음 연산자는 응답에서 지정된 LLD 매크로의 존재 또는 부재를 기반으로 엔터티를 필터링할 수 있습니다. 필터의 매크로가 응답에서 누락된 경우, 해당 매크로에 대해 "존재하지 않음" 조건이 지정되지 않는 한 발견된 엔터티는 무시됩니다. 매크로의 부재가 표현식 결과에 영향을 주는 경우 경고가 표시됩니다. 예를 들어, {#B}가 다음에서 누락된 경우: {#A} matches 1 and {#B} matches 2 - 경고가 표시됨 {#A} matches 1 or {#B} matches 2 - 경고 없음 |
LLD 규칙에서 사용되는 정규 표현식의 실수나 오타(예: 잘못된 "디스커버리를 위한 파일 시스템" 정규 표현식)는 많은 호스트에 대해 수천 개의 구성 요소, 기록 값 및 이벤트의 삭제를 야기할 수 있습니다.
대소문자만 다른 파일 시스템 이름이 올바르게 디스커버리되려면 MySQL의 Zabbix 데이터베이스는 대소문자를 구분하도록 생성되어야 합니다.
오버라이드
오버라이드 탭에서는 주어진 기준을 만족하는 발견된 객체들에 대해 아이템, 트리거, 그래프, 호스트 프로토타입의 목록이나 속성을 수정하는 규칙을 설정할 수 있습니다.

오버라이드(있는 경우)는 순서를 재정렬할 수 있는 드래그 앤 드롭 목록으로 표시되며 정의된 순서대로 실행됩니다. 새 오버라이드의 세부 사항을 구성하려면 오버라이드 블록에서
를 클릭하세요.
기존 오버라이드를 편집하려면 오버라이드 이름을 클릭하세요.
오버라이드 규칙 세부 사항을 편집할 수 있는 팝업 창이 열립니다.

모든 필수 매개변수는 빨간 별표로 표시됩니다.
| 매개변수 | 설명 |
|---|---|
| 이름 | 고유한(LLD 규칙별로) 오버라이드 이름입니다. |
| 필터가 일치하는 경우 | 필터 조건이 충족될 때 다음 오버라이드를 처리할지 정의합니다: 오버라이드 계속 - 후속 오버라이드가 처리됩니다. 처리 중지 - 이전(있는 경우) 및 현재 오버라이드의 작업이 실행되고, 일치하는 LLD 행에 대해 후속 오버라이드는 무시됩니다. |
| 필터 | 오버라이드가 적용될 발견된 엔티티를 결정합니다. 오버라이드 필터는 디스커버리 규칙 필터 이후에 처리되며 동일한 기능을 가집니다. |
| 작업 | 오버라이드 작업은 다음 세부 사항과 함께 표시됩니다: 조건 - 객체 유형과 객체 이름에 대해 충족되어야 하는 조건; 예를 들어: 트리거 프로토타입이 Disk space is low (used > 50%)와 같지 않음. 작업 - 작업 편집 및 제거를 위한 링크가 표시됩니다. |
작업 구성
새 작업의 세부 사항을 구성하려면 작업 블록에서
를 클릭하세요.
기존 작업을 편집하려면 작업 옆의
를 클릭하세요.
작업 세부 사항을 편집할 수 있는 팝업 창이 열립니다.

| 매개변수 | 설명 | ||
|---|---|---|---|
| 객체 | 네 가지 유형의 객체를 사용할 수 있습니다: 아이템 프로토타입 트리거 프로토타입 그래프 프로토타입 호스트 프로토타입 |
||
| 조건 | 작업이 적용될 엔티티를 필터링할 수 있습니다. | ||
| 연산자 | 지원되는 연산자: equals - 이 프로토타입에 적용 does not equal - 이것을 제외한 모든 프로토타입에 적용 contains - 프로토타입 이름이 이 문자열을 포함하는 경우 적용 does not contain - 프로토타입 이름이 이 문자열을 포함하지 않는 경우 적용 matches - 프로토타입 이름이 정규식과 일치하는 경우 적용 does not match - 프로토타입 이름이 정규식과 일치하지 않는 경우 적용 |
||
| 패턴 | 검색할 정규식 또는 문자열입니다. | ||
| 객체: 아이템 프로토타입 | |||
| 활성화 상태로 생성 | 체크박스를 선택하면 원본 아이템 프로토타입 설정을 오버라이드할 수 있는 버튼이 나타납니다: 예 - 아이템이 활성화된 상태로 추가됩니다. 아니오 - 아이템이 발견된 엔티티에 추가되지만 비활성화된 상태로 추가됩니다. |
||
| 발견 | 체크박스를 선택하면 원본 아이템 프로토타입 설정을 오버라이드할 수 있는 버튼이 나타납니다: 예 - 아이템이 추가됩니다. 아니오 - 아이템이 추가되지 않습니다. |
||
| 업데이트 간격 | 체크박스를 선택하면 아이템의 다른 간격을 설정할 수 있는 두 가지 옵션이 나타납니다: 지연 - 아이템 업데이트 간격입니다. 사용자 매크로와 시간 접미사(예: 30s, 1m, 2h, 1d)가 지원됩니다. 사용자 정의 간격을 사용하는 경우 0으로 설정해야 합니다. 사용자 정의 간격 - 를 클릭하여 유연한/스케줄링 간격을 지정하세요. 자세한 정보는 사용자 정의 간격을 참조하세요. |
||
| 히스토리 | 체크박스를 선택하면 아이템의 다른 히스토리 저장 기간을 설정할 수 있는 버튼이 나타납니다: 저장 안 함 - 선택하면 히스토리가 저장되지 않습니다. 저장 기간 - 선택하면 저장 기간을 지정할 수 있는 입력 필드가 오른쪽에 나타납니다. 사용자 매크로와 LLD 매크로가 지원됩니다. |
||
| 추세 | 체크박스를 선택하면 아이템의 다른 추세 저장 기간을 설정할 수 있는 버튼이 나타납니다: 저장 안 함 - 선택하면 추세가 저장되지 않습니다. 저장 기간 - 선택하면 저장 기간을 지정할 수 있는 입력 필드가 오른쪽에 나타납니다. 사용자 매크로와 LLD 매크로가 지원됩니다. |
||
| 태그 | 체크박스를 선택하면 태그-값 쌍을 지정할 수 있는 새 블록이 나타납니다. 이러한 태그는 태그 이름이 일치하더라도 아이템 프로토타입에 지정된 태그에 추가됩니다. |
||
| 객체: 트리거 프로토타입 | |||
| 활성화 상태로 생성 | 체크박스를 선택하면 원본 트리거 프로토타입 설정을 오버라이드할 수 있는 버튼이 나타납니다: 예 - 트리거가 활성화된 상태로 추가됩니다. 아니오 - 트리거가 발견된 엔티티에 추가되지만 비활성화된 상태로 추가됩니다. |
||
| 발견 | 체크박스를 선택하면 원본 트리거 프로토타입 설정을 오버라이드할 수 있는 버튼이 나타납니다: 예 - 트리거가 추가됩니다. 아니오 - 트리거가 추가되지 않습니다. |
||
| 심각도 | 체크박스를 선택하면 트리거 심각도를 수정할 수 있는 트리거 심각도 버튼이 나타납니다. | ||
| 태그 | 체크박스를 선택하면 태그-값 쌍을 지정할 수 있는 새 블록이 나타납니다. 이러한 태그는 태그 이름이 일치하더라도 트리거 프로토타입에 지정된 태그에 추가됩니다. |
||
| 객체: 그래프 프로토타입 | |||
| 발견 | 체크박스를 선택하면 원본 그래프 프로토타입 설정을 오버라이드할 수 있는 버튼이 나타납니다: 예 - 그래프가 추가됩니다. 아니오 - 그래프가 추가되지 않습니다. |
||
| 객체: 호스트 프로토타입 | |||
| 활성화 상태로 생성 | 체크박스를 선택하면 원본 호스트 프로토타입 설정을 오버라이드할 수 있는 버튼이 나타납니다: 예 - 호스트가 활성화된 상태로 생성됩니다. 아니오 - 호스트가 비활성화된 상태로 생성됩니다. |
||
| 발견 | 체크박스를 선택하면 원본 호스트 프로토타입 설정을 오버라이드할 수 있는 버튼이 나타납니다: 예 - 호스트가 발견됩니다. 아니오 - 호스트가 발견되지 않습니다. |
||
| 템플릿 연결 | 체크박스를 선택하면 템플릿을 지정할 수 있는 입력 필드가 나타납니다. 템플릿 이름을 입력하기 시작하거나 필드 옆의 선택을 클릭하여 팝업 창의 목록에서 템플릿을 선택하세요. 이 오버라이드의 템플릿은 호스트 프로토타입에 이미 연결된 모든 템플릿에 추가됩니다. |
||
| 태그 | 체크박스를 선택하면 태그-값 쌍을 지정할 수 있는 새 블록이 나타납니다. 이러한 태그는 태그 이름이 일치하더라도 호스트 프로토타입에 지정된 태그에 추가됩니다. |
||
| 호스트 인벤토리 | 체크박스를 선택하면 호스트 프로토타입의 다른 인벤토리 모드를 선택할 수 있는 버튼이 나타납니다: 비활성화 - 호스트 인벤토리를 채우지 않음 수동 - 세부 사항을 수동으로 제공 자동 - 수집된 메트릭을 기반으로 호스트 인벤토리 데이터 자동 채우기. |
||
폼 버튼
폼 하단의 버튼들을 통해 여러 작업을 수행할 수 있습니다.
![]() |
디스커버리 규칙을 추가합니다. 이 버튼은 새로운 디스커버리 규칙에만 사용할 수 있습니다. |
![]() |
디스커버리 규칙의 속성을 업데이트합니다. 이 버튼은 기존 디스커버리 규칙에만 사용할 수 있습니다. |
![]() |
현재 디스커버리 규칙의 속성을 기반으로 다른 디스커버리 규칙을 생성합니다. |
![]() |
디스커버리 규칙을 기반으로 즉시 디스커버리를 수행합니다. 디스커버리 규칙이 이미 존재해야 합니다. 자세한 내용을 참조하세요. 참고: 즉시 디스커버리를 수행할 때 구성 캐시는 업데이트되지 않으므로, 결과에 디스커버리 규칙 구성의 최근 변경 사항이 반영되지 않을 수 있습니다. |
![]() |
디스커버리 규칙 구성을 테스트합니다. 이 버튼을 사용하여 변경 사항을 영구적으로 적용하지 않고도 구성 설정(연결성 및 매개변수 정확성 등)을 확인할 수 있습니다. |
![]() |
디스커버리 규칙을 삭제합니다. |
![]() |
디스커버리 규칙 속성 편집을 취소합니다. |
발견된 엔티티
아래 스크린샷은 호스트 구성에서 발견된 아이템, 트리거, 그래프가 어떻게 보이는지를 보여줍니다. 발견된 엔티티에는 해당 엔티티가 속한 디스커버리 규칙로 연결되는 주황색 링크가 접두사로 표시됩니다.

동일한 고유성 조건을 가진 엔티티가 이미 존재하는 경우(예: 동일한 키를 가진 아이템이나 동일한 이름을 가진 그래프)에는 발견된 엔티티가 생성되지 않습니다. 이 경우 프론트엔드에서 low-level discovery 규칙이 특정 엔티티를 생성할 수 없다는 오류 메시지가 표시됩니다. 그러나 일부 엔티티를 생성할 수 없어 건너뛰어야 하는 경우에도 디스커버리 규칙 자체는 지원되지 않음 상태가 되지 않습니다. 디스커버리 규칙은 다른 엔티티들을 계속해서 생성/업데이트합니다.
발견된 엔티티(호스트, 파일 시스템, 인터페이스 등)가 더 이상 발견되지 않거나 필터를 통과하지 못하는 경우, 해당 엔티티를 기반으로 생성된 엔티티들은 자동으로 비활성화되고 최종적으로 삭제될 수 있습니다.
손실된 리소스는 Disable lost resources 매개변수 값에 따라 자동으로 비활성화될 수 있습니다. 이는 손실된 호스트, 아이템, 트리거에 영향을 줍니다.
손실된 리소스는 Delete lost resources 매개변수 값에 따라 자동으로 삭제될 수 있습니다. 이는 손실된 호스트, 호스트 그룹, 아이템, 트리거, 그래프에 영향을 줍니다.
발견된 엔티티가 '더 이상 발견되지 않음' 상태가 되면 엔티티 목록에 수명 지시자가 표시됩니다. 마우스 포인터를 그 위에 올리면 상태 세부정보를 나타내는 메시지가 표시됩니다.

엔티티가 삭제 대상으로 표시되었지만 예상된 시간에 삭제되지 않은 경우(디스커버리 규칙 비활성화 또는 아이템 호스트), 다음에 디스커버리 규칙이 처리될 때 삭제됩니다.
삭제 대상으로 표시된 다른 엔티티들을 포함하는 엔티티는 디스커버리 규칙 레벨에서 변경되어도 업데이트되지 않습니다. 예를 들어, 삭제 대상으로 표시된 아이템을 포함하는 LLD 기반 트리거는 업데이트되지 않습니다.


다른 유형의 디스커버리
기본 제공되는 다른 유형의 디스커버리에 대한 자세한 내용과 사용 방법은 다음 섹션에서 확인할 수 있습니다:
- 네트워크 인터페이스 디스커버리
- CPU 및 CPU 코어 디스커버리
- SNMP OID 디스커버리
- JMX 객체 디스커버리;
- ODBC SQL 쿼리를 사용한 디스커버리
- Windows 서비스 디스커버리
- Zabbix에서 호스트 인터페이스 디스커버리
디스커버리 항목의 JSON 형식에 대한 자세한 내용과 Perl 스크립트로 자체 파일 시스템 디스커버러를 구현하는 방법의 예제는 사용자 정의 LLD 규칙 생성을 참조하세요.






