규칙 구성

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

개요

Zabbix가 호스트와 서비스를 발견하는 데 사용하는 네트워크 디스커버리 규칙을 구성하려면:

  • Data collection → Discovery로 이동
  • Create discovery rule을 클릭 (또는 기존 규칙을 수정하려면 규칙 이름을 클릭)
  • 디스커버리 규칙 속성을 편집

규칙 속성

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

매개변수 설명
Name 규칙의 고유한 이름입니다. 예: "Local network".
Discovery by 디스커버리를 수행하는 주체:
Server - Zabbix 서버가 수행
Proxy - Zabbix 프록시가 수행 (프록시 이름 필드에서 선택)
IP range 디스커버리 대상 IP 주소 범위입니다. 다음과 같은 형식을 사용할 수 있습니다:
단일 IP: 192.168.1.33
IP 주소 범위: 192.168.1-10.1-255. 이 범위는 포함되는 전체 주소 수(64K 미만)로 제한됩니다.
IP 마스크: 192.168.4.0/24
지원되는 IP 마스크:
/16 - /30 (IPv4 주소)
/112 - /128 (IPv6 주소)
목록: 192.168.1.1-255, 192.168.2.1-100, 192.168.2.200, 192.168.4.0/24
이 필드는 공백, 탭, 여러 줄을 지원합니다.
Update interval 이 매개변수는 Zabbix가 규칙을 실행하는 주기를 정의합니다.
이 간격은 이전 디스커버리 실행이 끝난 후부터 측정되므로 중복 실행되지 않습니다.
시간 접미사가 지원됩니다. 예: 30s, 1m, 2h, 1d.
사용자 매크로가 지원됩니다.
참고: 사용자 매크로를 사용 중이고 그 값이 변경되면 (예: 1w → 1h), 다음 검사는 이전 값에 따라 실행됩니다 (위 예시 값 기준으로는 먼 미래에 실행됨).
Maximum concurrent checks per type 디스커버리 검사를 병렬 처리하기 위해 서비스 검사 종류별 최대 디스커버리 스레드(워커) 수를 설정합니다:
One - 스레드 1개
Unlimited - 스레드 수 무제한 (단, StartDiscoverers 매개변수 값을 초과하지 않음)
Custom - 사용자 지정 스레드 수 설정 (0-999).
SNMPv1 및 SNMPv2 비동기 서비스 검사는 사용 가능한 워커들이 동시에 처리합니다. SNMPv3 비동기 서비스 검사를 사용하는 모든 디스커버리 규칙은 libsnmp 구현의 특성상 워커 1개가 처리합니다. 따라서 워커 수를 늘려도 디스커버리 속도는 증가하지 않습니다.
Checks Zabbix는 이 검사 목록을 디스커버리에 사용합니다. 를 클릭하면 팝업 창에서 새 검사를 구성할 수 있습니다.
지원되는 검사: SSH, LDAP, SMTP, FTP, HTTP, HTTPS, POP, NNTP, IMAP, TCP, Telnet, Zabbix agent, SNMPv1 agent, SNMPv2 agent, SNMPv3 agent, ICMP ping.
프로토콜 기반 디스커버리는 각 호스트를 테스트하기 위해 net.tcp.service[] 기능을 사용하며, SNMP는 예외적으로 SNMP OID를 쿼리합니다. Zabbix agent는 암호화되지 않은 모드로 아이템을 쿼리하여 테스트됩니다. 자세한 내용은 에이전트 아이템을 참고하세요.
'Ports' 매개변수는 다음 중 하나일 수 있습니다:
단일 포트: 22
포트 범위: 22-45
목록: 22-45,55,60-70
Zabbix 7.0부터 LDAP 검사를 제외한 모든 서비스 검사는 비동기로 수행됩니다.
Zabbix 7.0부터 HTTP/HTTPs 검사는 libcurl을 통해 수행됩니다. Zabbix 서버/프록시가 libcurl 없이 컴파일된 경우, HTTP 검사는 이전 버전과 동일하게 (즉, TCP 검사처럼) 동작하지만 HTTPS 검사는 동작하지 않습니다.
Device uniqueness criteria 고유성 기준은 다음 중 하나일 수 있습니다:
IP address - 단일 IP를 가진 여러 장치를 중복 처리하지 않습니다. 동일한 IP를 가진 장치가 이미 존재하면 이미 발견된 것으로 간주하여 새 호스트를 추가하지 않습니다.
<discovery check> - Zabbix agent 또는 SNMP agent 검사 중 하나.
참고로 디스커버리 중 사용되는 고유성 기준은 작업(action)을 수행할 때 시스템에서의 호스트 식별 방식과 다릅니다. 디스커버리 중의 고유성 기준은 둘 이상의 발견된 장치가 같은지(또는 다른지) 정의하는 반면, Zabbix에서 호스트 식별의 기준은 오직 IP 주소뿐입니다 (호스트 생성 참고).
Host name 생성되는 호스트의 기술적 호스트 이름을 다음 중 하나를 사용해 설정합니다:
DNS name - DNS 이름 (기본값)
IP address - IP 주소
<discovery check> - 디스커버리 검사에서 수신한 문자열 값 (예: Zabbix agent, SNMP agent 검사)
함께 참고: 호스트 이름 지정.
Visible name 생성되는 호스트의 표시 이름을 다음 중 하나를 사용해 설정합니다:
Host name - 기술적 호스트 이름 (기본값)
DNS name - DNS 이름
IP address - IP 주소
<discovery check> - 디스커버리 검사에서 수신한 문자열 값 (예: Zabbix agent, SNMP agent 검사)
함께 참고: 호스트 이름 지정.
Enabled 체크박스가 선택되어 있으면 규칙이 활성 상태이며 Zabbix 서버에 의해 실행됩니다.
선택 해제되어 있으면 규칙이 비활성 상태이며 실행되지 않습니다.
파일 디스크립터 한도 초과

동시 검사 수가 많을 경우, discovery manager의 파일 디스크립터 한도를 소진할 수 있습니다.

감지에 필요한 파일 디스크립터 수는 디스커버리 워커 수 * 1000과 같습니다. 기본적으로 디스커버리 워커는 5개이며, 시스템의 소프트 한도는 약 1024입니다.

이 한도에 근접하면 Zabbix는 워커별 종류별 최대 동시 검사 수의 기본값을 줄이고 로그 파일에 경고를 기록합니다. 하지만 사용자가 Zabbix가 계산한 값보다 더 높은 Maximum concurrent checks per type 값을 설정한 경우, Zabbix는 워커 1개에 대해 사용자가 정의한 값을 사용합니다.

실제 시나리오

이 예제에서는 IP 범위가 192.168.1.1-192.168.1.254인 로컬 네트워크에 대해 네트워크 디스커버리를 설정하려고 합니다.

이 시나리오에서 우리가 원하는 것은:

  • Zabbix agent가 실행 중인 호스트를 발견
  • 디스커버리를 10분마다 실행
  • 호스트 가동 시간이 1시간을 초과하면 모니터링 대상에 호스트를 추가
  • 호스트 다운타임이 24시간을 초과하면 호스트를 제거
  • Linux 호스트를 "Linux servers" 그룹에 추가
  • Windows 호스트를 "Windows servers" 그룹에 추가
  • Linux 호스트에는 Linux 템플릿을 사용
  • Windows 호스트에는 Windows 템플릿을 사용
단계 1

대상 IP 범위에 대한 네트워크 디스커버리 규칙을 정의합니다.

Zabbix는 Zabbix agent에 연결하여 system.uname 키의 값을 가져오는 방식으로 192.168.1.1-192.168.1.254 IP 범위에서 호스트를 발견하려 시도합니다. 에이전트에서 받은 값은 호스트 이름을 지정하는 데 사용할 수 있으며, 운영체제별로 서로 다른 작업(action)을 적용하는 데도 사용할 수 있습니다. 예를 들어 Windows 서버는 Windows 템플릿에, Linux 서버는 Linux 템플릿에 연결할 수 있습니다.

이 규칙은 10분마다 실행됩니다.

이 규칙이 추가되면 Zabbix는 자동으로 디스커버리를 시작하고 이후 처리를 위한 디스커버리 기반 이벤트를 생성합니다.

단계 2

발견된 Linux 서버를 해당 그룹/템플릿에 추가하기 위한 디스커버리 작업(action)을 정의합니다.

다음 조건을 만족하면 작업이 실행됩니다:

  • "Zabbix agent" 서비스가 "up" 상태
  • system.uname 값 (규칙 정의에서 사용한 Zabbix agent 키)에 "Linux"가 포함됨
  • 가동 시간(Uptime)이 1시간(3600초) 이상

이 작업은 다음 연산을 실행합니다:

  • 발견된 호스트를 "Linux servers" 그룹에 추가 (이전에 추가되지 않았다면 호스트도 함께 추가)
  • 호스트를 Linux 템플릿에 연결. Zabbix는 자동으로 "Linux" 템플릿의 아이템과 트리거를 사용해 호스트 모니터링을 시작합니다.
단계 3

발견된 Windows 서버를 해당 그룹/템플릿에 추가하기 위한 디스커버리 작업을 정의합니다.

단계 4

유실된 서버를 제거하기 위한 디스커버리 작업을 정의합니다.

"Zabbix agent" 서비스가 24시간(86400초) 넘게 'down' 상태이면 서버가 제거됩니다.