This is a translation of the original English documentation page. Help us make it better.

2 Кориснички макрои

Преглед

Кориснички макрои су подржани у Zabbix-у ради веће флексибилности, поред макроа подржаних уграђених одмах.

Кориснички макрои могу бити дефинисани на глобалном нивоу, нивоу шаблона и домаћина. Ови макрои имају посебну синтаксу:

{$MACRO}

Zabbix решава макрое према следећем приоритету:

  1. макрои нивоа домаћина (први се проверавају)
  2. макрои дефинисани за шаблоне првог нивоа домаћина (тј., шаблони директно повезани са домаћином), сортирани по ID-у шаблона
  3. макрои дефинисани за шаблоне другог нивоа домаћина, сортирани по ID-у шаблона
  4. макрои дефинисани за шаблоне трећег нивоа домаћина, сортирани по ID-у шаблона, итд.
  5. глобални макрои (последњи се проверавају)

Другим речима, ако макро не постоји за домаћина, Zabbix ће покушати да га пронађе у шаблонима домаћина све веће дубине. Ако се и даље не пронађе, користиће се глобални макро, ако постоји.

Ако макро са истим именом постоји на више повезаних шаблона истог нивоа, користиће се макро из шаблона са најнижим ID-јем. Стога, присуство макроа са истим именом у више шаблона представља ризик за конфигурацију.

Ако Zabbix не може да пронађе макро, макро неће бити решен.

Макрои (укључујући корисничке макрое) остају нерешени у одељку Конфигурација (на пример, на листи окидача) како би сложена конфигурација била транспарентнија.

Кориснички макрои се могу користити у:

  • називу ставке
  • параметру кључа ставке
  • интервалима ажурирања ставке и флексибилним интервалима
  • називу и опису окидача
  • параметрима и константама израза окидача (видети примери)
  • многим другим локацијама - погледајте комплетну листу
Уобичајени случајеви употребе глобалних и домаћин макроа
  • користите глобални макро на неколико локација; затим промените вредност макроа и примените промене конфигурације на све локације једним кликом
  • искористите предности шаблона са атрибутима специфичним за домаћина: лозинке, бројеви портова, имена датотека, регуларни изрази итд.

Препоручљиво је користити домаћине макрое уместо глобалних макроа јер додавање, ажурирање или брисање глобалних макроа доводи до инкременталног ажурирања конфигурације за све домаћине. За више информација погледајте Провере пасивних и активних агената.

Конфигурација

Да бисте дефинисали корисничке макрое, идите на одговарајућу локацију у кориснички интерфејс:

  • за глобалне макрое посетите Администрација → Макрои
  • за макрое на нивоу домаћина и шаблона, отворите својства домаћина или шаблона и потражите картицу Макрои

Кориснички макро има следеће атрибуте:

Parameter Description
Макро Назив макроа. Назив мора бити у витичастим заградама и почети знаком долара.
Пример: {$FRONTEND_URL}. Следећи знакови су дозвољени у називима макроа: A-Z (само велика слова) , 0-9 , _ , .
Вредност Вредност макроа. Подржана су три типа вредности:
Текст (подразумевано) - вредност обичног текста
Тајни текст - вредност је маскирана звездицама
Тајна трезора - вредност садржи путању/упит до тајне трезора.

Да бисте променили тип вредности, кликните на дугме на крају поља за унос вредности.

Максимална дужина вредности корисничког макроа је 2048 знакова.
Опис Текстуално поље које се користи за пружање више информација о овом макроу.

Приликом конфигурисања корисничких макроа, имајте у виду следећа понашања специфична за контекст:

  • ако се кориснички макрои користе у ставкама шаблона или окидачима, размислите о додавању тих макроа и у шаблон (чак и ако су дефинисани глобално); На тај начин, макрои типа Текст ће радити како се очекује након извоза шаблона у XML и увоза у други систем (тајне вредности макроа се не извозе)
  • ако се кориснички макрои користе у изразима окидача, ти макрои ће се решити само ако референцирају параметар или константу; НЕЋЕ се решити ако референцирају домаћина, кључ ставке, функцију, оператор или други израз окидача (тајни макрои се не могу користити у изразима окидача)
  • ако се кориснички макрои користе на домаћину који има правило откривања ниског нивоа са прототиповима домаћина, откривени домаћини ће наследити све корисничке макрое дефинисане на том домаћину

Примери

Пример 1

Употреба макроа на нивоу домаћина у кључу ставке "Статус SSH демона":

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

Ова ставка се може доделити вишеструким домаћинима, под условом да је вредност од {$SSH_PORT} је дефинисан на тим домаћинима.

Пример 2

Употреба макроа на нивоу домаћина у покретачу "оптерећење процесора је превисоко":

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

Такав окидач би био креиран на шаблону, а не уређиван у њему појединачни домаћини.

Ако желите да користите количину вредности као функцију параметар (на пример, max(/host/key,#3)), укључите хеш знак у дефиниција макроа овако: SOME_PERIOD => #3

Пример 3

Употреба два макроа у покретачу "оптерећење процесора је превисоко":

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

Имајте на уму да се макро може користити као параметар функције окидача, у овај пример функције min().

Пример 4

Синхронизујте услов недоступности агента са ажурирањем ставке интервал:

  • дефинисати {$INTERVAL} макро и користити га у интервалу ажурирања ставке;
  • користите {$INTERVAL} као параметар покретача недоступности агента:

nodata(/ca_001/agent.ping,{$INTERVAL})=1

Пример 5

Централизујте конфигурацију радног времена:

  • креирајте глобални макро {$WORKING_HOURS} једнак 1-5,09:00-18:00;
  • користите га у пољу Радно време у АдминистрацијаОпштеGUI;
  • користите га у пољу Када је активан у КориснициКорисници, Медији на картици корисника;
  • користите га да подесите чешће испитивање ставки током радног времена:

  • користите га у стању акције Временски период;
  • подесите радно време у АдминистрацијаМакрои, ако је потребно.
Пример 6

Користите макро прототип домаћина да бисте конфигурисали ставке за откривене домаћине:

  • доделити Генерички SNMPv2 шаблон прототипу домаћина;
  • користите {$SNMPVALUE} у пољу SNMP OID Генерички SNMPv2 ставке шаблона.

Контекст макроа корисника

Погледајте кориснички макрои са контекст.