문서
원본 보기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 서버와 작동할 수 없습니다.
참조: 검색된 엔터티
로우레벨 디스커버리 구성
파일 시스템 디스커버리 예제를 기반으로 로우레벨 디스커버리를 설명하겠습니다.
디스커버리를 구성하려면 다음을 수행하세요:
- Data collection > Templates 또는 Hosts로 이동하세요.
- 적절한 템플릿/호스트 행에서 Discovery를 클릭하세요.

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

모든 필수 입력 필드는 빨간색 별표로 표시됩니다.
| 매개변수 | 설명 |
|---|---|
| Name | 탐지 규칙의 이름. |
| Type | 탐지를 수행할 검사 유형. 이 예제에서는 Zabbix agent 아이템 유형을 사용하고 있습니다. 탐지 규칙은 일반 아이템에 의존하는 의존 아이템이 될 수도 있습니다. 다른 탐지 규칙에 의존할 수는 없습니다. 의존 아이템의 경우 해당 유형(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 - 사용자 정의 폴링 일정 생성. 자세한 정보는 사용자 정의 간격을 참조하세요. |
| Timeout | 탐지 확인 타임아웃을 설정합니다. 타임아웃 옵션을 선택하세요: Global - 프록시/글로벌 타임아웃 사용(회색으로 표시된 Timeout 필드에 표시); Override - 사용자 정의 타임아웃 사용(Timeout 필드에서 설정; 허용 범위: 1 - 600초). 시간 접미사(예: 30s, 1m)와 사용자 매크로가 지원됩니다. Timeouts 링크를 클릭하면 프록시 타임아웃이나 글로벌 타임아웃(프록시를 사용하지 않는 경우)을 구성할 수 있습니다. Timeouts 링크는 Administration > General 또는 Administration > Proxies 프론트엔드 섹션에 대한 권한을 가진 Super admin 유형의 사용자에게만 표시됩니다. |
| Delete lost resources | 탐지 상태가 "더 이상 탐지되지 않음"이 된 후 탐지된 엔터티가 삭제되는 시기를 지정합니다: Never - 삭제되지 않음; Immediately - 즉시 삭제; After - 지정된 시간 후에 삭제됩니다. 값은 Disable lost resources 값보다 커야 합니다. 시간 접미사가 지원됩니다(예: 2h, 1d). 사용자 매크로가 지원됩니다. 참고: "즉시"를 사용하는 것은 권장되지 않습니다. 필터를 잘못 편집하면 모든 기록 데이터와 함께 엔터티가 삭제될 수 있기 때문입니다. 수동으로 비활성화된 리소스는 저수준 탐지에 의해 삭제되지 않습니다. |
| Disable lost resources | 탐지 상태가 "더 이상 탐지되지 않음"이 된 후 탐지된 엔터티가 비활성화되는 시기를 지정합니다: Never - 비활성화되지 않음; Immediately - 즉시 비활성화; After - 지정된 시간 후에 비활성화됩니다. 값은 탐지 규칙 업데이트 간격보다 커야 합니다. 자동으로 비활성화된 리소스는 저수준 탐지에 의해 재탐지되면 다시 활성화됩니다. 수동으로 비활성화된 리소스는 재탐지되어도 다시 활성화되지 않습니다. 이 필드는 Delete lost resources가 "즉시"로 설정된 경우 표시되지 않습니다. 시간 접미사가 지원됩니다(예: 2h, 1d). 사용자 매크로가 지원됩니다. |
| Description | 설명을 입력합니다. |
| Enabled | 체크하면 규칙이 처리됩니다. |
탐지 규칙 기록은 보존되지 않습니다.
전처리
전처리 탭에서는 디스커버리 결과에 적용할 변환 규칙을 정의할 수 있습니다. 이 단계에서 하나 또는 여러 개의 변환이 가능합니다. 변환은 정의된 순서대로 실행됩니다. 모든 전처리는 Zabbix 서버에서 수행됩니다.
참고:

| 유형 | ||
|---|---|---|
| 변환 | 설명 | |
| 텍스트 | ||
| 정규 표현식 | 수신된 값을 <pattern> 정규 표현식과 일치시키고 추출된 <output>으로 값을 교체합니다. 정규 표현식은 \N 시퀀스를 사용하여 최대 10개의 캡처된 그룹 추출을 지원합니다. 매개변수: pattern - 정규 표현식 output - 출력 형식 템플릿. \N (N=1…9) 이스케이프 시퀀스는 N번째 일치된 그룹으로 대체됩니다. \0 이스케이프 시퀀스는 일치된 텍스트로 대체됩니다. 실패 시 사용자 정의 확인란을 선택하면 사용자 정의 오류 처리 옵션을 지정할 수 있습니다: 값을 폐기하거나, 지정된 값을 설정하거나, 지정된 오류 메시지를 설정합니다. |
|
| 교체 | 검색 문자열을 찾아 다른 문자열(또는 아무것도 없음)로 교체합니다. 검색 문자열의 모든 발생을 교체합니다. 매개변수: search string - 찾고 교체할 문자열, 대소문자 구분 (필수) replacement - 검색 문자열을 교체할 문자열. 교체 문자열은 비어있을 수도 있으며, 이는 검색 문자열이 발견될 때 효과적으로 삭제할 수 있습니다. 줄바꿈, 캐리지 리턴, 탭 및 공백을 검색하거나 교체하기 위해 이스케이프 시퀀스 "\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을 이스케이프되지 않은 16진 문자열로 반환 (참고: 디스플레이 힌트는 여전히 적용됨); Hex-STRING에서 UTF-8 - Hex-STRING을 UTF-8 문자열로 변환; Hex-STRING에서 MAC - Hex-STRING을 MAC 주소 문자열로 변환 ( ' '이 ':'로 대체됨);BITS에서 정수 - 16진 문자 시퀀스로 표현된 비트 문자열의 첫 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에서 정수 - 16진 문자 시퀀스로 표현된 비트 문자열의 첫 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가 있는 경우 대괄호 표기법을 사용해야 합니다. 예: $['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 버전 이전의 저수준 검색 구현과의 하위 호환성을 위해). |
Filter
필터는 조건에 맞는 엔터티에 대해서만 실제 아이템, 트리거, 그래프를 생성하는 데 사용할 수 있습니다. Filters 탭에는 디스커버리 값을 필터링할 수 있는 디스커버리 규칙 필터 정의가 포함되어 있습니다:

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

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

모든 필수 매개변수는 빨간 별표로 표시됩니다.
| 매개변수 | 설명 |
|---|---|
| Name | (LLD 규칙별로) 고유한 override 이름입니다. |
| If filter matches | 필터 조건이 충족될 때 다음 override를 처리할지 정의합니다: Continue overrides - 후속 override가 처리됩니다. Stop processing - 이전(있는 경우) 및 현재 override의 작업이 실행되고, 일치하는 LLD 행에 대해 후속 override는 무시됩니다. |
| Filters | override가 적용되어야 하는 발견된 엔티티를 결정합니다. Override 필터는 발견 규칙 필터 이후에 처리되며 동일한 기능을 가집니다. |
| Operations | Override 작업은 다음 세부 사항과 함께 표시됩니다: Condition - 객체 유형 및 객체 이름에 대해 충족되어야 하는 조건. 예: Trigger prototype does not equal Disk space is low (used > 50%). Action - 작업 편집 및 제거 링크가 표시됩니다. |
작업 구성
새 작업의 세부 사항을 구성하려면 Operations 블록에서
를 클릭하세요.
기존 작업을 편집하려면 작업 옆의
를 클릭하세요.
작업 세부 사항을 편집할 수 있는 팝업 창이 열립니다.

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

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

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


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






