태깅
개요
태그는 태그 이름과 태그 값으로 구성됩니다.
엔티티에 태그를 지정할 때, 이름만 사용하거나 값과 짝지어 사용할 수 있습니다(예: mysql, jira, target:mysql, service:jira 등).
태그는 다양한 엔티티에 정의할 수 있습니다:
- 템플릿
- 호스트
- 아이템
- 웹 시나리오
- 트리거
- 서비스
- 템플릿 아이템 및 트리거
- 호스트, 아이템, 트리거 프로토타입
태그 정의에 대한 일반 권장사항은 공식 Zabbix 가이드라인의 general recommendations를 참고하시고, 템플릿, 아이템, 트리거, 낮은 수준 디스커버리 규칙에 대한 구체적인 가이드도 참고하세요.
태그는 여러 용도로 사용되며, 가장 대표적으로 이벤트를 표시하는 데 사용됩니다. 엔티티에 태그가 지정되면, 해당 엔티티와 관련된 모든 새 이벤트는 그 태그를 상속받습니다. 예를 들면:
- 템플릿에 태그가 지정된 경우 - (템플릿의 트리거로 생성된) 모든 호스트 문제는 템플릿 태그를 상속받습니다;
- 호스트에 태그가 지정된 경우 - 모든 호스트 문제는 호스트 태그를 상속받습니다;
- 아이템/웹 시나리오에 태그가 지정된 경우 - 모든 아이템/웹 시나리오 문제는 아이템/웹 시나리오 태그를 상속받습니다;
- 트리거에 태그가 지정된 경우 - 해당 트리거로 생성된 모든 문제는 트리거 태그를 상속받습니다.
문제 이벤트는 템플릿, 호스트, 아이템/웹 시나리오, 트리거로 이어지는 전체 엔티티 체인의 모든 태그를 상속받습니다.
동일한 tag:value 조합은 (매크로가 해석된 후) 하나로 병합되어 중복을 방지합니다.
커스텀 이벤트 태그는 더 큰 유연성을 제공합니다. 예를 들면:
- 이벤트 상관관계를 이벤트 태그를 기준으로 구성할 수 있습니다;
- 액션 조건을 이벤트 태그를 기준으로 구성할 수 있습니다;
- 아이템 문제를 이벤트 태그를 기준으로 그룹화할 수 있습니다;
- 문제 태그를 사용해 문제를 서비스에 매핑할 수 있습니다.
엔티티는 같은 태그 이름에 다른 태그 값을 가질 수 있습니다(예: component:memory와 component:storage).
마찬가지로, 한 엔티티가 값 없는 태그와 값이 있는 동일한 태그를 함께 가질 수도 있습니다(예: database와 database:postgresql).
이런 태그들은 중복으로 간주되지 않습니다.
사용 사례
태깅의 대표적인 사용 사례는 다음과 같습니다:
-
트리거 이벤트 표시:
- 트리거 태그를 정의합니다(예:
scope:performance). - 이 트리거로 생성된 문제는 트리거 태그를 갖게 됩니다.
- 트리거 태그를 정의합니다(예:
-
템플릿에서 상속된 문제 표시:
- 템플릿 태그를 정의합니다(예:
target:mysql). - 이 템플릿의 트리거로 생성된 문제는 템플릿 태그를 갖게 됩니다.
- 템플릿 태그를 정의합니다(예:
-
호스트 문제 표시:
- 호스트 태그를 정의합니다(예:
service:jira). - 이 호스트의 트리거로 생성된 문제는 호스트 태그를 갖게 됩니다.
- 호스트 태그를 정의합니다(예:
-
관련 아이템 필터링:
- 아이템 태그를 정의합니다(예:
component:cpu). - Monitoring → Latest data에서
component:cpu태그로 아이템을 필터링할 수 있습니다.
- 아이템 태그를 정의합니다(예:
-
아이템 값에서 추출한 정보를 태그 값으로 사용:
- 매크로를 태그 값으로 하는 태그를 정의합니다(예:
tag-name:{{ITEM.VALUE<N>}.regsub()}). - Monitoring → Problems에서 문제의 태그 값이 아이템 값에서 추출된 데이터로 해석되어 표시됩니다.
- 매크로를 태그 값으로 하는 태그를 정의합니다(예:
-
로그 파일의 문제를 식별하고 개별적으로 종료:
- 로그 모니터링 아이템 트리거에 대해, 매크로를 사용해 아이템 값에서 값을 추출하는 트리거 태그를 정의합니다(예:
service:{{ITEM.VALUE<N>}.regsub()}). - 트리거 구성에서 이벤트 상관관계를 설정합니다:
- PROBLEM event generation mode를 "Multiple"로 설정;
- OK event closes를 "All problems if tag values match"로 설정;
- 매칭에 사용할 태그를 설정.
- 로그 아이템 트리거로 생성된 문제는 트리거 태그를 갖게 되며 개별적으로 종료됩니다.
- 로그 모니터링 아이템 트리거에 대해, 매크로를 사용해 아이템 값에서 값을 추출하는 트리거 태그를 정의합니다(예:
-
알림 필터링:
- 트리거 태그를 정의합니다(예: trigger1에는
scope:security, trigger2에는scope:availability). - 액션 조건에서 태그 필터링을 사용해 태그 데이터가 일치하는 이벤트에 대해서만 알림을 받습니다.
- 트리거 태그를 정의합니다(예: trigger1에는
-
알림에서 문제 식별:
- 트리거 태그를 정의합니다.
- 문제 알림에서 {EVENT.TAGS} 매크로를 사용합니다.
- 문제 알림에 트리거 태그가 포함되어 어떤 애플리케이션/서비스와 관련된 알림인지 쉽게 식별할 수 있습니다.
-
템플릿 태그로 구성 작업 단순화:
- 템플릿 트리거 태그를 정의합니다.
- 이 템플릿 트리거로 생성된 트리거는 해당 태그를 갖게 됩니다.
-
낮은 수준 디스커버리(LLD)로 태그가 있는 트리거 생성:
- 태그 이름이나 값에 LLD 매크로를 사용하는 트리거 프로토타입 태그를 정의합니다(예:
scope:{#FSNAME}). - 이 트리거 프로토타입으로 생성된 트리거는 해당 태그를 갖게 됩니다.
- 태그 이름이나 값에 LLD 매크로를 사용하는 트리거 프로토타입 태그를 정의합니다(예:
-
서비스 태그로 서비스 매칭:
-
서비스 문제 태그로 서비스와 문제 연결:
-
호스트가 점검 모드일 때 문제 억제:
- 점검 기간 구성에서 태그를 정의합니다.
- 정의된 태그를 가진 문제는 억제됩니다.
-
사용자 그룹에 접근 권한 부여:
- 사용자 그룹 구성에서 태그를 정의합니다.
- 해당 사용자 그룹의 사용자는 정의된 태그를 가진 문제만 볼 수 있습니다.
구성
태그는 전용 탭에서 정의할 수 있습니다. 예를 들어 트리거 구성에서 정의할 수 있습니다:

매크로 지원
태그에서 내장 매크로와 사용자 매크로는 이벤트 발생 시점에 해석됩니다. 이벤트가 발생하기 전까지 이 매크로들은 Zabbix 프론트엔드에서 해석되지 않은 상태로 표시됩니다.
낮은 수준 디스커버리 매크로는 디스커버리 과정에서 해석됩니다.
다음 매크로는 트리거 태그 이름과 값에 사용할 수 있습니다:
- {ITEM.VALUE}, {ITEM.VALUE.AGE}, {ITEM.VALUE.DATE}, {ITEM.VALUE.TIME}, {ITEM.VALUE.TIMESTAMP}, {ITEM.LASTVALUE}, {ITEM.LASTVALUE.AGE}, {ITEM.LASTVALUE.DATE}, {ITEM.LASTVALUE.TIME}, {ITEM.LASTVALUE.TIMESTAMP}, {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT}, {HOST.ID} 내장 매크로
- {INVENTORY.*} 내장 매크로(트리거 표현식에서 하나 또는 여러 호스트의 호스트 인벤토리 값을 참조하기 위한 매크로)
- 사용자 매크로 및 컨텍스트가 있는 사용자 매크로(컨텍스트에는 낮은 수준 디스커버리 매크로가 포함될 수 있음)
- 낮은 수준 디스커버리 매크로(트리거 프로토타입 태그에서만 사용 가능)
다음 매크로는 템플릿, 호스트, 아이템/웹 시나리오 태그 이름과 값에 사용할 수 있습니다:
- {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT}, {HOST.ID} 내장 매크로
- {INVENTORY.*} 내장 매크로
- 사용자 매크로
- 낮은 수준 디스커버리 매크로(호스트 및 아이템 프로토타입 태그에서만 사용 가능)
다음 매크로는 트리거 기반 알림에 사용할 수 있습니다:
- {EVENT.TAGS}와 {EVENT.RECOVERY.TAGS} 내장 매크로(이 매크로들은 이벤트 태그 또는 복구 이벤트 태그의 쉼표로 구분된 목록으로 해석됩니다)
- {EVENT.TAGSJSON}과 {EVENT.RECOVERY.TAGSJSON} 내장 매크로(이 매크로들은 이벤트 태그 객체 또는 복구 이벤트 태그 객체를 담은 JSON 배열로 해석됩니다)
트리거 태그에서의 부분 문자열 추출
매크로 함수를 사용하면 태그 이름이나 태그 값을 채우기 위한 부분 문자열 추출을 지원합니다. 이 함수는 지원되는 매크로로 얻은 값에 정규 표현식을 적용합니다. 예를 들면:
{{ITEM.VALUE}.regsub(pattern, output)}
{{ITEM.VALUE}.iregsub(pattern, output)}
{{#LLDMACRO}.regsub(pattern, output)}
{{#LLDMACRO}.iregsub(pattern, output)}
매크로 해석 후 태그 이름이나 값이 255자를 초과하면 255자로 잘립니다.
참고: 이벤트 태깅을 위한 낮은 수준 디스커버리 매크로에서 매크로 함수 사용하기.
이벤트 태그 보기
태그가 정의된 경우, 다음 위치에서 새 이벤트와 함께 태그를 볼 수 있습니다:
- Monitoring → Problems
- Monitoring → Problems → Event details
- Dashboards → Problems widget
표시되는 태그의 순서와 개수는 Monitoring → Problems 또는 Problems 대시보드 위젯의 Tag display priority와 Show tags 필터링 옵션에 따라 결정됩니다. 최대 3개의 태그만 표시되며, 태그가 더 많은 경우 점 3개 위에 마우스를 올리면 팝업 창에서 모든 태그를 확인할 수 있습니다.
