6 Tagowanie

Przegląd

Tagi składają się z nazwy tagu i wartości tagu. Podczas tagowania encji można użyć samej nazwy lub połączyć ją z wartością (na przykład mysql, jira, target:mysql, service:jira itd.).

Tagi można definiować dla różnych encji:

  • Szablony
  • Hosty
  • Pozycje
  • Scenariusze WWW
  • Wyzwalacze
  • Usługi
  • Pozycje i wyzwalacze szablonów
  • Prototypy hostów, pozycji i wyzwalaczy

Na listach Templates, Hosts, Items, Triggers, Web scenarios oraz ich prototypów kolumna Tags wyświetla zarówno zwykłe, jak i dziedziczone tagi. Po najechaniu kursorem na dziedziczony tag lub kliknięciu go pojawia się podpowiedź JavaScript z tekstem „Inherited tag”. Jeśli dziedziczony tag istnieje również jako zwykły tag, wyświetlany jest inny tekst podpowiedzi zależnie od listy, na której się pojawia (na przykład „Inherited and template tag” na liście templates lub „Inherited and host tag” na liście hosts). W innych miejscach frontend zwykłe i dziedziczone tagi są wyświetlane razem (duplikaty są usuwane), bez ikon i bez dodatkowego tekstu podpowiedzi.

Zapoznaj się z oficjalnymi wytycznymi Zabbix dotyczącymi ogólnych zaleceń w zakresie definiowania tagów, a także ze szczegółowymi wskazówkami dla szablonów, pozycji, wyzwalaczy oraz reguł wykrywania niskiego poziomu.

Tagi mają wiele zastosowań, przede wszystkim do oznaczania zdarzeń. Gdy encje są otagowane, każde nowe zdarzenie powiązane z otagowaną encją odziedziczy jej tagi. Na przykład:

  • w przypadku otagowanych szablonów — każdy problem hosta (utworzony przez wyzwalacze z szablonu) odziedziczy tagi szablonu.
  • w przypadku otagowanych hostów — każdy problem hosta odziedziczy tagi hosta.
  • w przypadku otagowanych pozycji/scenariuszy WWW — każdy problem pozycji/scenariusza WWW odziedziczy tagi pozycji/scenariusza WWW.
  • w przypadku otagowanych wyzwalaczy — każdy problem utworzony przez wyzwalacz odziedziczy tagi wyzwalacza.

Zdarzenie problemu dziedziczy wszystkie tagi z całego łańcucha encji — szablonów, hostów, pozycji/scenariuszy WWW, wyzwalaczy. Identyczne kombinacje tag:value (po rozwinięciu makr) są scalane w jedną, co pozwala uniknąć duplikacji.

Zdarzenia odtworzenia wygenerowane przez ręczne zamknięcie również zawierają rozwinięte tagi zdarzenia odziedziczone z szablonów, hostów, pozycji/scenariuszy WWW i wyzwalaczy. Tagi te są dostępne w powiadomieniach oraz za pośrednictwem makr takich jak {EVENT.RECOVERY.TAGS} i {EVENT.RECOVERY.TAGSJSON}.

Niestandardowe tagi zdarzeń oferują większą elastyczność. Na przykład:

  • korelację zdarzeń można skonfigurować na podstawie tagów zdarzeń.
  • warunki akcji można skonfigurować na podstawie tagów zdarzeń.
  • problemy pozycji mogą być grupowane na podstawie tagów zdarzeń.
  • tagi problemów mogą być używane do mapowania problemów na usługi.

Encje mogą być oznaczone tym samym tagiem, ale z różnymi wartościami tagu (na przykład component:memory i component:storage). Podobnie encja może mieć tag bez wartości oraz ten sam tag z wartością (na przykład database i database:postgresql). Takie tagi nie są uznawane za duplikaty.

Przykłady użycia

Niektóre typowe przypadki użycia tagowania są następujące:

  1. Oznaczanie zdarzeń wyzwalaczy:

    • Zdefiniuj tag wyzwalacza (na przykład scope:performance).
    • Problemy utworzone przez ten wyzwalacz będą miały tag wyzwalacza.
  2. Oznaczanie problemów dziedziczonych z szablonu:

    • Zdefiniuj tag szablonu (na przykład target:mysql).
    • Problemy utworzone przez wyzwalacze z tego szablonu będą miały tag szablonu.
  3. Oznaczanie problemów hosta:

    • Zdefiniuj tag hosta (na przykład service:jira).
    • Problemy utworzone przez wyzwalacze z tego hosta będą miały tag hosta.
  4. Filtrowanie powiązanych pozycji:

    • Zdefiniuj tag pozycji (na przykład component:cpu).
    • W Monitoring > Latest data pozycje można filtrować według tagu component:cpu.
  5. Użycie informacji wyodrębnionych z wartości pozycji jako wartości tagu:

    • Zdefiniuj tag z makrem jako wartością tagu (na przykład tag-name:{{ITEM.VALUE<N>}.regsub()} ).
    • W Monitoring > Problems problemy będą miały wartość tagu ustawioną na dane wyodrębnione z wartości pozycji.
  6. Identyfikowanie problemów w pliku dziennika i zamykanie ich oddzielnie:

    • Zdefiniuj tag wyzwalacza dla wyzwalacza pozycji monitorowania logów, który będzie wyodrębniał wartości z wartości pozycji przy użyciu makra (na przykład service:{{ITEM.VALUE<N>}.regsub()} ).
    • W konfiguracji wyzwalacza skonfiguruj korelację zdarzeń:
      • ustaw PROBLEM event generation mode na "Multiple";
      • ustaw OK event closes na "All problems if tag values match";
      • ustaw tag do dopasowania.
    • Problemy utworzone przez wyzwalacz pozycji logu będą miały tag wyzwalacza i będą zamykane indywidualnie.
  7. Filtrowanie powiadomień:

    • Zdefiniuj tagi wyzwalaczy (na przykład scope:security dla trigger1 i scope:availability dla trigger2).
    • Użyj filtrowania tagów w warunkach akcji, aby otrzymywać powiadomienia tylko o zdarzeniach pasujących do danych tagów.
  8. Identyfikowanie problemów w powiadomieniach:

    • Zdefiniuj tagi wyzwalaczy.
    • Użyj makra {EVENT.TAGS} w powiadomieniu o problemie.
    • Powiadomienie o problemie będzie zawierać tagi wyzwalacza, co ułatwi identyfikację, do której aplikacji/usługi należy powiadomienie.
  9. Uproszczenie zadań konfiguracyjnych przez użycie tagów szablonu:

    • Zdefiniuj tag wyzwalacza szablonu.
    • Wyzwalacze utworzone z tego wyzwalacza szablonu będą miały jego tag.
  10. Tworzenie wyzwalaczy z tagami z wykrywania niskiego poziomu (LLD):

    • Zdefiniuj tag prototypu wyzwalacza z makrem LLD w nazwie lub wartości tagu (na przykład scope:{#FSNAME}).
    • Wyzwalacze utworzone z prototypu wyzwalacza będą miały jego tag.
  11. Dopasowywanie usług przy użyciu tagów usług:

    • Zdefiniuj tagi usług.
    • Skonfiguruj akcje usług dla usług z pasującymi tagami.
    • Dodatkowo użyj tagów usług, aby powiązać usługę z SLA na potrzeby obliczeń SLA.
  12. Łączenie usług z problemami przy użyciu tagów problemów usługi:

    • Zdefiniuj tag problemu w konfiguracji usługi (na przykład target:mysql).
    • Problemy z pasującym tagiem będą automatycznie korelowane z usługą, a stan usługi będzie się zmieniał zgodnie ze skonfigurowanymi regułami obliczania stanu usługi.
  13. Tłumienie problemów, gdy host jest w trybie konserwacji:

  14. Przyznawanie dostępu grupom użytkowników:

Konfiguracja

Tagi można zdefiniować w dedykowanej karcie, na przykład w konfiguracji wyzwalacza:

Obsługa makr

Wbudowane i makra użytkownika w tagach są rozwijane w momencie wystąpienia zdarzenia. Do czasu wystąpienia zdarzenia makra te będą wyświetlane w Zabbix frontend jako nierozwinięte.

Makra niskopoziomowego wykrywania są rozwijane podczas procesu wykrywania.

Następujące makra mogą być używane w nazwach i wartościach tagów wyzwalacza:

  • wbudowane makra {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} oraz {HOST.ID}
  • wbudowane makra {INVENTORY.*} (do odwoływania się do wartości inwentarza hosta z jednego lub kilku hostów w wyrażeniu wyzwalacza)
  • makra użytkownika oraz makra użytkownika z kontekstem (kontekst może zawierać makra niskopoziomowego wykrywania)
  • makra niskopoziomowego wykrywania (tylko w tagach prototypu wyzwalacza)

Następujące makra mogą być używane w nazwach i wartościach tagów szablonu, hosta oraz pozycji/scenariusza WWW:

  • wbudowane makra {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} oraz {HOST.ID}
  • wbudowane makra {INVENTORY.*}
  • makra użytkownika
  • makra niskopoziomowego wykrywania (tylko w tagach prototypu hosta i pozycji)

Następujące makra mogą być używane w powiadomieniach opartych na wyzwalaczach:

  • wbudowane makra {EVENT.TAGS} oraz {EVENT.RECOVERY.TAGS} (te makra zostaną rozwinięte do listy tagów zdarzenia lub tagów zdarzenia odzyskania rozdzielonej przecinkami)
  • wbudowane makra {EVENT.TAGSJSON} oraz {EVENT.RECOVERY.TAGSJSON} (te makra zostaną rozwinięte do tablicy JSON zawierającej obiekty tagów zdarzenia lub obiekty tagów zdarzenia odzyskania)
Wyodrębnianie podciągów w tagach wyzwalacza

Wyodrębnianie podciągów jest obsługiwane przy wypełnianiu nazwy lub wartości tagu z użyciem funkcji makra. Funkcja stosuje wyrażenie regularne do wartości uzyskanej z obsługiwanego makra. Na przykład:

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

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

Jeśli nazwa lub wartość tagu po rozwinięciu makra przekracza 255 znaków, zostanie obcięta do 255 znaków.

Zobacz także: Używanie funkcji makr w makrach low-level discovery do tagowania zdarzeń.

Wyświetlanie tagów zdarzeń

Tagi, jeśli są zdefiniowane, można wyświetlać przy nowych zdarzeniach w:

Kolejność i liczba wyświetlanych tagów jest określana przez opcje filtrowania Tag display priority i Show tags w Monitoring > Problems lub w widżecie pulpitu Problems. Należy pamiętać, że można wyświetlić maksymalnie trzy tagi; jeśli tagów jest więcej, najechanie kursorem na trzy kropki powoduje wyświetlenie wszystkich tagów w wyskakującym oknie.