6 Tagowanie

Przegląd

Tagi składają się z nazwy tagu i wartości tagu. Podczas tagowania encji można użyć tylko nazwy albo 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 web
  • Wyzwalacze
  • Usługi
  • Pozycje i wyzwalacze szablonu
  • Prototypy hosta, pozycji i wyzwalacza

Zapoznaj się z oficjalnymi wytycznymi Zabbix dotyczącymi ogólnych zaleceń dotyczących 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 zwią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 web - każdy problem pozycji/scenariusza web odziedziczy tagi pozycji/scenariusza web;
  • 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 web, wyzwalaczy. Identyczne kombinacje tag:value (po rozwiązaniu makr) są scalane w jedną, co pozwala uniknąć duplikacji.

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 można grupować na podstawie tagów zdarzeń;
  • tagi problemów można wykorzystać do mapowania problemów na usługi.

Encje mogą być otagowane tą samą nazwą tagu, 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.

Przypadki użycia

Oto kilka typowych przypadków użycia tagowania:

  1. Oznaczanie zdarzeń wyzwalacza:

    • Zdefiniuj tag wyzwalacza (na przykład scope:performance).
    • Problemy utworzone przez ten wyzwalacz będą miały tag wyzwalacza.
  2. Oznaczanie problemów odziedziczonych 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 MonitoringLatest data pozycje można filtrować według tagu component:cpu.
  5. Używanie 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 MonitoringProblems problemy będą miały wartość tagu rozwiązaną do danych wyodrębnionych z wartości pozycji.
  6. Identyfikowanie problemów w pliku dziennika i zamykanie ich osobno:

    • Zdefiniuj tag wyzwalacza dla wyzwalacza pozycji monitorującej logi, który wyodrębni wartości z wartości pozycji za pomocą 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 logów będą miały tag wyzwalacza i będą zamykane indywidualnie.
  7. Filtrowanie powiadomień:

    • Zdefiniuj tagi wyzwalacza (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 zgodnych z danymi tagów.
  8. Identyfikowanie problemów w powiadomieniach:

    • Zdefiniuj tagi wyzwalacza.
    • 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 niskopoziomowego wykrywania (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 za pomocą 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 do powiązania usługi z SLA na potrzeby obliczeń SLA.
  12. Łączenie usług z problemami za pomocą tagów problemów usług:

    • Zdefiniuj tag problemu w konfiguracji usługi (na przykład target:mysql).
    • Problemy z pasującym tagiem zostaną automatycznie skorelowane z usługą, a stan usługi zmieni się zgodnie ze skonfigurowanymi regułami obliczania stanu usługi.
  13. Wstrzymywanie 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ągu w tagach wyzwalacza

Wyodrębnianie podciągu jest obsługiwane podczas wypełniania nazwy tagu lub wartości tagu przy użyciu makra funkcji. Funkcja stosuje wyrażenie regularne do wartości uzyskanej przez obsługiwane makro. Na przykład:

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

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

Jeśli nazwa tagu lub jego wartość przekroczy 255 znaków po rozwinięciu makr, zostanie skrócona do 255 znaków.

Zobacz także: Używanie funkcji makr w makrach niskopoziomowego wykrywania do tagowania zdarzeń.

Wyświetlanie tagów zdarzeń

Tagi, jeśli są zdefiniowane, można wyświetlać wraz z nowymi zdarzeniami w:

Kolejność i liczba wyświetlanych tagów są określane przez opcje filtrowania Priorytet wyświetlania tagów oraz Pokaż tagi w MonitoringProblemy lub w widżecie pulpitu Problemy. Należy pamiętać, że można wyświetlić maksymalnie trzy tagi; jeśli tagów jest więcej, najechanie kursorem na trzy kropki spowoduje wyświetlenie wszystkich tagów w oknie podręcznym.