6 태깅

개요

태그는 태그 이름과 태그 값으로 구성됩니다. 엔티티에 태그를 지정할 때, 이름만 사용하거나 값과 쌍을 이루어 사용할 수 있습니다(예: mysql, jira, target:mysql, service:jira 등).

태그는 다양한 엔티티에 대해 정의할 수 있습니다:

  • 템플릿
  • 호스트
  • 아이템
  • 웹 시나리오
  • 트리거
  • 서비스
  • 템플릿 아이템 및 트리거
  • 호스트, 아이템, 트리거 프로토타입

태그 정의에 대한 일반적인 권장사항템플릿, 아이템, 트리거, 저수준 탐지 규칙에 대한 구체적인 가이드는 공식 Zabbix 가이드라인을 참조하세요.

태그는 여러 용도로 사용되며, 가장 중요한 것은 이벤트를 표시하는 것입니다. 엔티티에 태그가 지정되면, 태그가 지정된 엔티티와 관련된 모든 새 이벤트는 해당 태그를 상속받습니다. 예를 들어:

  • 태그가 지정된 템플릿의 경우 - 모든 호스트 문제(템플릿의 트리거에 의해 생성됨)는 템플릿 태그를 상속받습니다;
  • 태그가 지정된 호스트의 경우 - 모든 호스트 문제는 호스트 태그를 상속받습니다;
  • 태그가 지정된 아이템/웹 시나리오의 경우 - 모든 아이템/웹 시나리오 문제는 아이템/웹 시나리오 태그를 상속받습니다;
  • 태그가 지정된 트리거의 경우 - 트리거에 의해 생성된 모든 문제는 트리거 태그를 상속받습니다.

문제 이벤트는 템플릿, 호스트, 아이템/웹 시나리오, 트리거 등 전체 엔티티 체인의 모든 태그를 상속받습니다. 동일한 tag:value 조합(매크로가 해석된 후)은 하나로 병합되어 중복을 방지합니다.

사용자 정의 이벤트 태그는 더 많은 유연성을 제공합니다. 예를 들어:

  • 이벤트 상관관계는 이벤트 태그를 기반으로 구성할 수 있습니다;
  • 액션 조건은 이벤트 태그를 기반으로 구성할 수 있습니다;
  • 아이템 문제는 이벤트 태그를 기반으로 그룹화할 수 있습니다;
  • 문제 태그는 문제를 서비스에 매핑하는 데 사용할 수 있습니다.

엔티티는 동일한 태그 이름이지만 다른 태그 값으로 태그를 지정할 수 있습니다(예: component:memorycomponent:storage). 마찬가지로, 엔티티는 값이 없는 태그와 값이 있는 동일한 태그를 모두 가질 수 있습니다(예: databasedatabase:postgresql). 이러한 태그는 중복으로 간주되지 않습니다.

사용 사례

태깅의 일반적인 사용 사례는 다음과 같습니다:

  1. 트리거 이벤트 표시:

    • 트리거 태그를 정의합니다(예: scope:performance).
    • 이 트리거로 생성된 문제에는 트리거 태그가 붙습니다.
  2. 템플릿 상속 문제 표시:

    • 템플릿 태그를 정의합니다(예: target:mysql).
    • 이 템플릿의 트리거로 생성된 문제에는 템플릿 태그가 붙습니다.
  3. 호스트 문제 표시:

    • 호스트 태그를 정의합니다(예: service:jira).
    • 이 호스트의 트리거로 생성된 문제에는 호스트 태그가 붙습니다.
  4. 관련 아이템 필터링:

    • 아이템 태그를 정의합니다(예: component:cpu).
    • 모니터링최신 데이터에서 component:cpu 태그로 아이템을 필터링할 수 있습니다.
  5. 아이템 값에서 추출된 정보를 태그 값으로 사용:

    • 매크로를 태그 값으로 하는 태그를 정의합니다(예: tag-name:{{ITEM.VALUE<N>}.regsub()}).
    • 모니터링문제에서 문제는 아이템 값에서 추출된 데이터로 해결된 태그 값을 갖게 됩니다.
  6. 로그 파일에서 문제를 식별하고 개별적으로 닫기:

    • 로그 모니터링 아이템 트리거에 대해 매크로를 사용하여 아이템 값에서 값을 추출하는 트리거 태그를 정의합니다(예: service:{{ITEM.VALUE<N>}.regsub()}).
    • 트리거 구성에서 이벤트 상관관계를 설정합니다:
      • 문제 이벤트 생성 모드를 "Multiple"로 설정;
      • OK 이벤트 닫기를 "All problems if tag values match"로 설정;
      • 일치시킬 태그를 설정.
    • 로그 아이템 트리거로 생성된 문제는 트리거 태그를 가지며 개별적으로 닫힙니다.
  7. 알림 필터링:

    • 트리거 태그를 정의합니다(예: trigger1에는 scope:security, trigger2에는 scope:availability).
    • 액션 조건에서 태그 필터링을 사용하여 태그 데이터와 일치하는 이벤트에 대한 알림만 받습니다.
  8. 알림에서 문제 식별:

    • 트리거 태그를 정의합니다.
    • 문제 알림에서 {EVENT.TAGS} 매크로를 사용합니다.
    • 문제 알림에 트리거 태그가 포함되어 어떤 애플리케이션/서비스에 속하는 알림인지 쉽게 식별할 수 있습니다.
  9. 템플릿 태그를 사용하여 구성 작업 간소화:

    • 템플릿 트리거 태그를 정의합니다.
    • 이 템플릿 트리거에서 생성된 트리거는 해당 태그를 갖게 됩니다.
  10. 낮은 수준 탐지(LLD)에서 태그가 있는 트리거 생성:

    • 태그 이름이나 값에 LLD 매크로가 있는 트리거 프로토타입 태그를 정의합니다(예: scope:{#FSNAME}).
    • 트리거 프로토타입에서 생성된 트리거는 해당 태그를 갖게 됩니다.
  11. 서비스 태그를 사용하여 서비스 일치:

    • 서비스 태그를 정의합니다.
    • 일치하는 태그가 있는 서비스에 대해 서비스 액션을 구성합니다.
    • 또한 SLA 계산을 위해 서비스 태그를 사용하여 서비스를 SLA에 연결합니다.
  12. 서비스 문제 태그를 사용하여 서비스를 문제에 연결:

    • 서비스 구성에서 문제 태그를 정의합니다(예: target:mysql).
    • 일치하는 태그가 있는 문제는 자동으로 서비스와 연관되며, 구성된 서비스 상태 계산 규칙에 따라 서비스 상태가 변경됩니다.
  13. 호스트가 유지보수 모드일 때 문제 억제:

  14. 사용자 그룹에 액세스 권한 부여:

    • 사용자 그룹 구성에서 태그를 정의합니다.
    • 사용자 그룹의 사용자는 정의된 태그가 있는 문제만 볼 수 있습니다.

설정

태그는 전용 탭에서 정의할 수 있습니다. 예를 들어, 트리거 설정에서:

매크로 지원

태그의 내장사용자 매크로는 이벤트가 발생할 때 해결됩니다. 이벤트가 발생하기 전까지는 이러한 매크로들이 Zabbix 프런트엔드에서 해결되지 않은 상태로 표시됩니다.

낮은 수준 디스커버리 매크로는 디스커버리 프로세스 중에 해결됩니다.

다음 매크로들은 트리거 태그 이름과 값에서 사용할 수 있습니다:

  • {ITEM.VALUE}, {ITEM.LASTVALUE}, {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 배열로 해결됩니다)
Substring extraction in trigger tags

Substring extraction is supported for populating the tag name or tag value, using a macro function. The function applies a regular expression to the value obtained by the supported macro. For example:

{{ITEM.VALUE}.regsub(pattern, output)}
{{ITEM.VALUE}.iregsub(pattern, output)}

{{#LLDMACRO}.regsub(pattern, output)}
{{#LLDMACRO}.iregsub(pattern, output)}

If the tag name or value exceeds 255 characters after macro resolution, it will be truncated to 255 characters.

See also: Using macro functions in low-level discovery macros for event tagging.

이벤트 태그 보기

태그가 정의된 경우, 다음 위치에서 새 이벤트와 함께 볼 수 있습니다:

표시되는 태그의 순서와 개수는 모니터링문제 또는 문제 대시보드 위젯의 태그 표시 우선순위태그 표시 필터링 옵션에 의해 결정됩니다. 최대 3개의 태그만 표시될 수 있으며, 더 많은 태그가 있는 경우 점 3개 위에 마우스를 올리면 팝업 창에서 모든 태그를 볼 수 있습니다.

What’s next?