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

Преглед

Поред тога, Zabbix подржава корисничке макрое за већу флексибилност на макрое подржано ван кутије.

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

{$MACRO}

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

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

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

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

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

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

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

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

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

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

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

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

Ако се кориснички макро користи у ставкама или окидачи у а шаблону, предлаже се да се тај макро дода у шаблон чак и ако је је дефинисан на глобалном нивоу. На тај начин, ако је тип макроа текст извоз шаблона у XML и увоз у други систем ће и даље дозволите да ради како се очекује. Вредности тајних макроа нису извезено.

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

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

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

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

У изразима окидача кориснички макрои ће решити ако упућивање на параметар или константу. Неће решити ако упућивање на домаћина, кључ ставке, функцију, оператор или други окидач израза. Тајни макрои се не могу користити у окидачу изрази.

Примери

Пример 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 ставке шаблона.

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

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