문서
원본 보기12 정규 표현식
개요
Perl Compatible Regular Expressions (PCRE, PCRE2)가 Zabbix에서 지원됩니다.
Zabbix에서 정규 표현식을 사용하는 두 가지 방법이 있습니다:
- 정규 표현식을 수동으로 입력하기
- Zabbix에서 생성된 전역 정규 표현식 사용하기
정규 표현식
지원되는 위치에서 정규 표현식을 수동으로 입력할 수 있습니다. @ 기호는 Zabbix에서 전역 정규 표현식을 참조하는 데 사용되므로 표현식이 @로 시작할 수 없다는 점에 유의하세요.
정규 표현식을 사용할 때 스택 메모리가 부족해질 수 있습니다. 자세한 정보는 PCRE PERFORMANCE를 참조하세요.
여러 줄 매칭에서 ^와 $ 앵커는 전체 문자열의 시작/끝이 아닌 각 줄의 시작/끝에서 매치된다는 점에 유의하세요.
다양한 상황에서의 올바른 이스케이핑 예제도 참조하세요.
글로벌 정규 표현식
Zabbix 프론트엔드에는 복잡한 정규 표현식을 생성하고 테스트하는 고급 편집기가 있습니다.
이런 방식으로 정규 표현식을 생성하면, @를 접두사로 하는 이름으로 참조하여 프론트엔드의 여러 곳에서 사용할 수 있습니다. 예를 들어, \@mycustomregexp와 같이 사용합니다.
글로벌 정규 표현식을 생성하려면:
- 다음으로 이동: Administration > General
- 드롭다운에서 Regular expressions 선택
- New regular expression 클릭
Expressions 탭에서는 정규 표현식 이름을 설정하고 하위 표현식을 추가할 수 있습니다.

모든 필수 입력 필드는 빨간 별표로 표시됩니다.
| 매개변수 | 설명 | |
|---|---|---|
| Name | 정규 표현식 이름을 설정합니다. 모든 Unicode 문자가 허용됩니다. | |
| Expressions | Expressions 블록에서 Add를 클릭하여 새 하위 표현식을 추가합니다. | |
| Expression type | 표현식 유형을 선택합니다: Character string included - 부분 문자열과 일치 Any character string included - 구분된 목록의 임의 부분 문자열과 일치. 구분된 목록에는 쉼표(,), 점(.) 또는 슬래시(/)가 포함됩니다. Character string not included - 부분 문자열을 제외한 임의 문자열과 일치 Result is TRUE - 정규 표현식과 일치 Result is FALSE - 정규 표현식과 일치하지 않음 |
|
| Expression | 부분 문자열/정규 표현식을 입력합니다. | |
| Delimiter | 정규 표현식에서 텍스트 문자열을 구분하는 쉼표(,), 점(.) 또는 슬래시(/). 이 매개변수는 "Any character string included" 표현식 유형이 선택된 경우에만 활성화됩니다. | |
| Case sensitive | 정규 표현식이 문자의 대소문자를 구분하는지 여부를 지정하는 체크박스입니다. | |
표현식의 슬래시(/)는 구분자가 아닌 문자 그대로 처리됩니다. 이렇게 하면 오류 없이 슬래시를 포함하는 표현식을 저장할 수 있습니다.
Zabbix의 사용자 정의 정규 표현식 이름에는 쉼표, 공백 등이 포함될 수 있습니다.
참조할 때 오해를 일으킬 수 있는 경우(예: 아이템 키의 매개변수에 있는 쉼표) 전체 참조를 다음과 같이 따옴표로 묶을 수 있습니다: "\@My custom regexp for purpose1, purpose2".
정규 표현식 이름은 다른 위치(예: LLD 규칙 속성)에서는 따옴표로 묶으면 안 됩니다.
Test 탭에서는 테스트 문자열을 제공하여 정규 표현식과 하위 표현식을 테스트할 수 있습니다.

결과는 각 하위 표현식의 상태와 전체 사용자 정의 표현식 상태를 보여줍니다.
전체 사용자 정의 표현식 상태는 Combined result로 정의됩니다. 여러 하위 표현식이 정의된 경우 Zabbix는 AND 논리 연산자를 사용하여 Combined result를 계산합니다. 이는 최소 하나의 결과가 False이면 Combined result도 False 상태가 됨을 의미합니다.
기본 전역 정규식
Zabbix는 기본 데이터셋에 여러 전역 정규식을 포함하고 있습니다.
| 이름 | 표현식 | 일치 |
|---|---|---|
| 검색을 위한 파일 시스템 | ^(btrfs|ext2|ext3|ext4|jfs|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|refs|apfs|ntfs|fat32|zfs)$ |
"btrfs" 또는 "ext2" 또는 "ext3" 또는 "ext4" 또는 "jfs" 또는 "reiser" 또는 "xfs" 또는 "ffs" 또는 "ufs" 또는 "jfs" 또는 "jfs2" 또는 "vxfs" 또는 "hfs" 또는 "refs" 또는 "apfs" 또는 "ntfs" 또는 "fat32" 또는 "zfs" |
| 검색을 위한 네트워크 인터페이스 | ^Software Loopback Interface |
"Software Loopback Interface"로 시작하는 문자열. |
^lo$ |
"lo" | |
^(In)?[Ll]oop[Bb]ack[0-9._]*$ |
선택적으로 "In"으로 시작한 다음 "L" 또는 "l", 그다음 "oop", 그다음 "B" 또는 "b", 그다음 "ack"이 있는 문자열로, 그 뒤에 숫자, 점 또는 밑줄이 임의의 개수만큼 올 수 있습니다. | |
^NULL[0-9.]*$ |
"NULL"로 시작하고 선택적으로 숫자나 점이 임의의 개수만큼 뒤따르는 문자열. | |
^[Ll]o[0-9.]*$ |
"Lo" 또는 "lo"로 시작하고 선택적으로 숫자나 점이 임의의 개수만큼 뒤따르는 문자열. | |
^[Ss]ystem$ |
"System" 또는 "system" | |
^Nu[0-9.]*$ |
"Nu"로 시작하고 선택적으로 숫자나 점이 임의의 개수만큼 뒤따르는 문자열. | |
| SNMP 검색을 위한 저장 장치 | ^(Physical memory|Virtual memory|Memory buffers|Cached memory|Swap space)$ |
"Physical memory" 또는 "Virtual memory" 또는 "Memory buffers" 또는 "Cached memory" 또는 "Swap space" |
| 검색을 위한 Windows 서비스 이름 | ^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$ |
"MMCSS" 또는 "gupdate" 또는 "SysmonLog" 또는 점 대신 개행문자를 제외한 임의의 문자를 넣을 수 있는 "clr_optimization_v2.0.50727_32" 및 "clr_optimization_v4.0.30319_32"와 같은 문자열. |
| 검색을 위한 Windows 서비스 시작 상태 | ^(automatic|automatic delayed)$ |
"automatic" 또는 "automatic delayed" |
예제
예제 1
특정 이름을 가진 데이터베이스를 제외한 데이터베이스를 발견하기 위해 저수준 발견에서 다음 표현식을 사용:
^TESTDATABASE$

선택된 Expression type: "Result is FALSE". "TESTDATABASE" 문자열을 포함하는 이름과 일치하지 않습니다.
인라인 정규식 수정자를 사용한 예제
다음 정규식에서 인라인 수정자 (?i)를 사용하여 "error" 문자를 매칭합니다:
(?i)error

선택된 표현식 유형: "Result is TRUE". "error" 문자가 매칭됩니다.
인라인 정규식 수정자를 사용한 다른 예제
특정 라인 뒤의 문자들을 매치하기 위해 여러 인라인 수정자를 포함한 다음 정규식을 사용합니다:
(?<=match (?i)everything(?-i) after this line\n)(?sx).*# we add s modifier to allow . match newline characters

선택된 표현식 유형: "Result is TRUE". 특정 라인 뒤의 문자들이 매치됩니다.
g 수정자는 인라인으로 지정할 수 없습니다. 사용 가능한 수정자 목록은 pcresyntax man page에서 찾을 수 있습니다. PCRE 구문에 대한 자세한 정보는 PCRE HTML documentation을 참조하세요.
위치별 정규 표현식 지원
| 위치 | 정규 표현식 | 전역 정규 표현식 | 다중행 매칭 | 주석 | |
|---|---|---|---|---|---|
| 에이전트 항목 | |||||
| eventlog[] | 예 | 예 | 예 | regexp, severity, source, eventid 매개변수 |
|
| eventlog.count[] | regexp, severity, source, eventid 매개변수 |
||||
| log[] | regexp 매개변수 |
||||
| log.count[] | |||||
| logrt[] | 예/아니오 | regexp 매개변수는 둘 다 지원, file_regexp 매개변수는 비전역 표현식만 지원 |
|||
| logrt.count[] | |||||
| proc.cpu.util[] | 아니오 | 아니오 | cmdline 매개변수 |
||
| proc.get[] | |||||
| proc.mem[] | |||||
| proc.num[] | |||||
| sensor[] | Linux 2.4의 device 및 sensor 매개변수 |
||||
| system.hw.macaddr[] | interface 매개변수 |
||||
| system.sw.packages[] | regexp 매개변수 |
||||
| system.sw.packages.get[] | regexp 매개변수 |
||||
| vfs.dir.count[] | regex_incl, regex_excl, regex_excl_dir 매개변수 |
||||
| vfs.dir.get[] | regex_incl, regex_excl, regex_excl_dir 매개변수 |
||||
| vfs.dir.size[] | regex_incl, regex_excl, regex_excl_dir 매개변수 |
||||
| vfs.file.regexp[] | 예 | regexp 매개변수 |
|||
| vfs.file.regmatch[] | |||||
| web.page.regexp[] | |||||
| SNMP 트랩 | |||||
| snmptrap[] | 예 | 예 | 아니오 | regexp 매개변수 |
|
| 항목 값 전처리 | 예 | 아니오 | 아니오 | pattern 매개변수 |
|
| 트리거/계산 항목용 함수 | |||||
| count() | 예 | 예 | 예 | operator 매개변수가 regexp 또는 iregexp인 경우 pattern 매개변수 |
|
| countunique() | 예 | 예 | |||
| find() | 예 | 예 | |||
| logeventid() | 예 | 예 | 아니오 | pattern 매개변수 |
|
| logsource() | |||||
| 저수준 디스커버리 | |||||
| 필터 | 예 | 예 | 아니오 | 정규 표현식 필드 | |
| 오버라이드 | 예 | 아니오 | 작업 조건에서 일치, 일치하지 않음 옵션 | ||
| 액션 조건 | 예 | 아니오 | 아니오 | 호스트 이름 및 호스트 메타데이터 자동 등록 조건에서 일치, 일치하지 않음 옵션 | |
| 스크립트 | 예 | 예 | 아니오 | 입력 유효성 검사 규칙 필드 | |
| 웹 모니터링 | 예 | 아니오 | 예 | regex: 접두사가 있는 변수 필수 문자열 필드 |
|
| 사용자 매크로 컨텍스트 | 예 | 아니오 | 아니오 | regex: 접두사가 있는 매크로 컨텍스트에서 | |
| 매크로 함수 | |||||
| regsub() | 예 | 아니오 | 아니오 | pattern 매개변수 |
|
| iregsub() | |||||
| 아이콘 매핑 | 예 | 예 | 아니오 | 표현식 필드 | |
| 값 매핑 | 예 | 아니오 | 아니오 | 매핑 유형이 regexp인 경우 값 필드 |
|