Sidebar

pl:manual:config:macros:usermacros

1 Makra użytkownika

Przegląd

W celu zwiększenia elastyczności, Zabbix pozwala używać makr użytkownika, które można zdefiniować na poziomie ogólnym, oraz w szablonach i hostach. Makra te mają specjalną składnię: {$MAKRO}.

Makr można użyć w:

  • nazwach pozycji
  • parametrach klucza pozycji
  • nazwach i opisach wyzwalaczy
  • parametrach i stałych wyrażeń wyzwalaczy (zobacz przykład)
  • wielu innych miejscach

W nazwach makr dozwolone są następujące znaki: A-Z , 0-9 , _ , .

Zabbix podstawia makra zgodnie z następującą kolejnością:

  1. makra poziomu hosta (sprawdzane na początku)
  2. makra zdefiniowane na pierwszym poziomie szablonów hosta (np., szablony bezpośrednio połączone do hosta), sortowane według ID szablonu
  3. makra zdefiniowane na drugim poziomie szablonów hosta, sortowane według ID szablonu
  4. makra zdefiniowane na trzecim poziomie szablonów hosta, sortowane według ID szablonu
  5. makra globalne (sprawdzane na końcu)

To znaczy, jeżeli na poziomie hosta nie istnieje dane makro, Zabbix spróbuje znaleźć je w szablonach hosta, zwiększając stopniowo zagłębienie. Jeżeli nadal nic nie znajdzie, użyje makra globalnego, jeżeli takie istnieje.

Jeżeli Zabbix nie znajdzie makra, makro nie zostanie zamienione.

Żeby zdefiniować makra użytkownika, należy przejść do odpowiedniej lokalizacji w interfejsie użytkownika:

  • dla makr globalnych, należy przejść do Administracja → Ogólne → Makra
  • dla makr hostów i szablonów, należy otworzyć właściwości hosta lub szablonu i przejść do zakładki Makra
Jeżeli makro użytkownika używane jest w pozycjach lub wyzwalaczach w szablonie, sugerujemy, by dodać to makro do szablonu nawet wtedy, gdy jest zdefiniowane na poziomie globalnym. Dzięki temu, wyeksportowanie szablonu i zaimportowanie go w innym systemie spowoduje, że szablon ten nadal będzie działał tak, jak tego oczekiwano.

Najbardziej znane zastosowania makr globalnych i hostów:

  1. wykorzystanie szablonów z atrybutami specyficznymi dla hostów: hasła, numery portów, nazwy plików, wyrażenia regularne, itp.
  2. makra globalne do globalnych szybkich zmian konfiguracji i dostosowania interfejsu

Przykłady

Przykład 1

Użycie makra poziomu hosta w kluczu pozycji “Stan demona SSH”:

net.tcp.service[ssh,,{$SSH_PORT}]

Ta pozycja może być przypisana do wielu hostów, zakładając że w tych hostach zdefiniowane zostanie makro {$SSH_PORT}.

Przykład 2

Użycie makra poziomu hosta w wyzwalaczu “Obciążenie CPU jest zbyt wysokie”:

{ca_001:system.cpu.load[,avg1].last()}>{$MAX_CPULOAD}

Wyzwalacz taki powinien być utworzony w szablonie, a nie edytowany w hostach.

Jeżeli chcemy użyć ilości wartości jako parametru funkcji (na przykład, max(#3)), należy umieścić znak # w definicji makra, na przykład tak: JAKIS_OKRES ⇒ #3
Przykład 3

Użycie dwóch makr w wyzwalaczu “Obciążenie CPU jest zbyt wysokie”:

{ca_001:system.cpu.load[,avg1].min({$CPULOAD_PERIOD})}>{$MAX_CPULOAD}

Należy zauważyć, że makro mozna użyć w parametrze funkcji wyzwalacza, w tym przypadku w funkcji min().

W wyrażeniach makra użytkownika zostaną rozwinięte, jeżeli zawierają parametr lub stałą. NIE będą rozwinięte jeżeli odwołują się do hosta, klucza pozycji, funkcji, operatora lub innego wyrażenia wyzwalacza.