Tagowanie
Tagi mają wiele zastosowań, a przede wszystkim służą do oznaczania zdarzeń. Gdy encje są oznaczone tagami, każde nowe zdarzenie związane z oznaczoną encją odziedziczy jej tagi. Na przykład:
- w przypadku oznaczonych szablonów - każdy problem hosta (utworzony przez wyzwalacze z szablonu) odziedziczy tagi szablonu.
- w przypadku oznaczonych hostów - każdy problem hosta odziedziczy tagi hosta.
- w przypadku oznaczonych pozycji/scenariuszy web - każdy problem pozycji/scenariusza web odziedziczy tagi pozycji/scenariusza web.
- w przypadku oznaczonych 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.
Zdarzenia odzyskania generowane przez ręczne zamknięcie również zawierają rozwiązane tagi zdarzenia odziedziczone z szablonów, hostów, pozycji/scenariuszy web i wyzwalaczy.
Tagi te są dostępne w powiadomieniach oraz za pomocą makr, takich jak {EVENT.RECOVERY.TAGS} i {EVENT.RECOVERY.TAGSJSON}.
Niestandardowe tagi zdarzeń oferują większą elastyczność. Na przykład:
- korelacja zdarzeń może być skonfigurowana na podstawie tagów zdarzeń.
- warunki akcji mogą być skonfigurowane 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 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.
Tagi składają się z nazwy tagu i wartości tagu.
Podczas oznaczania encji można użyć samej 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 szablonów
- Prototypy hostów, pozycji i wyzwalaczy
Na listach Szablony, Hosty, Pozycje, Wyzwalacze, Scenariusze web oraz ich prototypów kolumna Tagi wyświetla zarówno tagi zwykłe, jak i odziedziczone. Po najechaniu kursorem na tag odziedziczony lub kliknięciu go pojawia się podpowiedź JavaScript z tekstem "Inherited tag". Jeśli odziedziczony tag istnieje również jako tag zwykły, wyświetlany jest inny tekst podpowiedzi w zależności od listy, na której się pojawia (na przykład "Inherited and template tag" na liście szablonów lub "Inherited and host tag" na liście hostów). W innych miejscach frontend tagi zwykłe i odziedziczone są wyświetlane razem (duplikaty są usuwane), bez ikon i bez dodatkowego tekstu podpowiedzi.
Zapoznaj się z oficjalnymi wytycznymi Zabbixa 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.
Przypadki użycia
Oto kilka typowych przypadków użycia tagowania:
-
Oznaczanie zdarzeń wyzwalacza:
- Zdefiniuj tag wyzwalacza (na przykład
scope:performance). - Problemy utworzone przez ten wyzwalacz będą miały tag wyzwalacza.
- Zdefiniuj tag wyzwalacza (na przykład
-
Oznaczanie problemów odziedziczonych po szablonie:
- Zdefiniuj tag szablonu (na przykład
target:mysql). - Problemy utworzone przez wyzwalacze z tego szablonu będą miały tag szablonu.
- Zdefiniuj tag szablonu (na przykład
-
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.
- Zdefiniuj tag hosta (na przykład
-
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.
- Zdefiniuj tag pozycji (na przykład
-
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 Monitoring > Problems problemy będą miały wartość tagu rozwiązaną do danych wyodrębnionych z wartości pozycji.
- Zdefiniuj tag z makrem jako wartością tagu (na przykład
-
Identyfikowanie problemów w pliku dziennika i zamykanie ich osobno:
- Zdefiniuj tag wyzwalacza dla wyzwalacza pozycji monitorującej logi, który będzie wyodrębniał 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 logu będą miały tag wyzwalacza i będą zamykane indywidualnie.
- Zdefiniuj tag wyzwalacza dla wyzwalacza pozycji monitorującej logi, który będzie wyodrębniał wartości z wartości pozycji za pomocą makra (na przykład
-
Filtrowanie powiadomień:
- Zdefiniuj tagi wyzwalacza (na przykład
scope:securitydla trigger1 iscope:availabilitydla trigger2). - Użyj filtrowania tagów w warunkach akcji, aby otrzymywać powiadomienia tylko o zdarzeniach zgodnych z danymi tagów.
- Zdefiniuj tagi wyzwalacza (na przykład
-
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.
-
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.
-
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.
- Zdefiniuj tag prototypu wyzwalacza z makrem LLD w nazwie lub wartości tagu (na przykład
-
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, aby powiązać usługę z SLA na potrzeby obliczeń SLA.
-
Powiązywanie 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.
- Zdefiniuj tag problemu w konfiguracji usługi (na przykład
-
Wstrzymywanie problemów, gdy host jest w trybie konserwacji:
- Zdefiniuj tagi w konfiguracji okresu konserwacji.
- Problemy z zdefiniowanymi tagami zostaną wstrzymane.
-
Przyznawanie dostępu grupom użytkowników:
- Zdefiniuj tagi w konfiguracji grupy użytkowników.
- Użytkownicy w grupie użytkowników będą mogli wyświetlać tylko problemy z zdefiniowanymi tagami.
Konfiguracja
Tagi można zdefiniować na dedykowanej karcie, na przykład w konfiguracji wyzwalacza:

Obsługa makr
Wbudowane i makra użytkownika w tagach są rozwiązywane w momencie wystąpienia zdarzenia. Do czasu wystąpienia zdarzenia te makra będą wyświetlane w frontend Zabbix jako nierozwiązane.
Makra wykrywania niskiego poziomu są rozwiązywane podczas procesu wykrywania.
W nazwach i wartościach tagów wyzwalacza można używać następujących makr:
- {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} - makra wbudowane
- {INVENTORY.*} - makra wbudowane (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 wykrywania niskiego poziomu)
- Makra wykrywania niskiego poziomu (tylko w tagach prototypu wyzwalacza)
W nazwach i wartościach tagów szablonu, hosta oraz pozycji/scenariusza web można używać następujących makr:
- {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} oraz {HOST.ID} - makra wbudowane
- {INVENTORY.*} - makra wbudowane
- Makra użytkownika
- Makra wykrywania niskiego poziomu (tylko w tagach prototypu hosta i pozycji)
W powiadomieniach opartych na wyzwalaczach można używać następujących makr:
- {EVENT.TAGS} i {EVENT.RECOVERY.TAGS} - makra wbudowane (te makra zostaną rozwinięte do listy tagów zdarzenia lub tagów zdarzenia odzyskania, rozdzielonych przecinkami)
- {EVENT.TAGSJSON} i {EVENT.RECOVERY.TAGSJSON} - makra wbudowane (te makra zostaną rozwinięte do tablicy JSON zawierającej obiekty tagów zdarzenia objects 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 funkcji makra function. 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 makra, zostanie skrócona do 255 znaków.
Zobacz też: 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:
- Monitoring > Problems
- Monitoring > Problems > Event details
- Dashboards > Problems widget
Kolejność i liczba wyświetlanych tagów są określane 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, po najechaniu kursorem na trzy kropki wszystkie tagi zostaną pokazane w oknie podręcznym.
