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"로 설정;
      • 정상 이벤트 닫기를 "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 배열로 해결됩니다)
트리거 태그의 부분 문자열 추출

부분 문자열 추출은 매크로 함수를 사용하여 태그 이름이나 태그 값을 채우는 데 지원됩니다. 이 함수는 지원되는 매크로로 얻은 값에 정규 표현식을 적용합니다. 예를 들어:

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

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

매크로 해결 후 태그 이름이나 값이 255자를 초과하면 255자로 잘립니다.

참고: 이벤트 태깅을 위한 로우레벨 디스커버리 매크로에서 매크로 함수 사용하기.

이벤트 태그 보기

태그가 정의되어 있으면 다음 위치에서 새 이벤트와 함께 볼 수 있습니다:

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