Макро функције нуде могућност прилагођавања вредности макро (на пример, скраћивање или издвајање одређених подстрингова), што олакшава рад са њима.
Синтакса макро функције је:
{macro.func(params)}
где
На пример:
{{TIME}.fmttime(format,time_shift)} {{ITEM.VALUE}.regsub(pattern, output)} {{$USERMACRO}.regsub(pattern, output)} {{#LLDMACRO}.regsub(pattern, output)}
Макро функције су подржане за:
Макро функције се могу користити на свим локацијама које подржавају наведене макрои. Ово се примењује осим ако је изричито наведено да се очекује само макро (на пример, када конфигурисање макроа домаћина или правила откривања ниског нивоа филтери).
Погледајте такође: познати проблеми
Подржана је једна функција по макроу; вишеструке макро функције у ланцу нису подржане.
Молимо погледајте примере за избегавање за случајеве када се функције макроа користе унутар других контекста (функција, кључ ставке, други макро, итд.).
Функције су наведене без додатних информација. Кликните на функцију да видите све детаље.
Function | Description |
---|---|
btoa | Кодирање вредности макроа у Base64 формат. |
fmtnum | Форматирање броја за контролу броја цифара које се штампају после децималне запете. |
fmttime | Време форматирање. |
htmldecode | Декодирање вредности макроа из HTML кодирања. |
htmlencode | Кодирање вредности макроа у HTML кодирање. |
iregsub | Издвајање подстринга помоћу подударање регуларног израза (неосетљиво на велика и мала слова). |
lowercase | Трансформација вредности макроа знакова малим словима. |
regrepl | Замена карактера/подниза у вредности макроа. |
regsub | Издвајање подниза помоћу регуларног израза (разликује велика и мала слова). |
tr | Транслитерација знакова вредности макроа. |
uppercase | Трансформација вредности макроа знакова у велика слова. |
urldecode | Декодирање вредности макроа из URL кодирања. |
urlencode | Кодирање вредности макроа у URL кодирање. |
Синтакса макро функције је:
Опциони параметри функције су означени са < >.
Кодирање вредности макроа у Base64 кодирање. Base64 кодирање је метода за представљање бинарних података као текста, корисна за складиштење и сигуран пренос бинарног садржаја преко протокола заснованих на тексту.
Пример:
Ова функција је подржана од Zabbix-а 7.0.4.
Форматирање броја за контролу броја цифара које се штампају после децималног зареза.
Параметри:
Примери:
Macro function | Received value | Output |
---|---|---|
{{ITEM.VALUE}.fmtnum(2)} |
24.3413523 |
24.34 |
{{ITEM.VALUE}.fmtnum(0)} |
24.3413523 |
24 |
Форматирање времена.
Имајте на уму да се ова функција може користити са макроима који се решавају у вредност у једном од следећих временских формата:
hh:mm:ss
yyyy-mm-ddThh:mm:ss[tz]
(ISO8601 standard)Параметри:
strftime
;-<N><time_unit>
или +<N><time_unit>
, где је:N
- број временских јединица за додавање или одузимање;time_unit
- h (сат), d (дан), w (седмица), M (месец) или y (година).Коментари:
– Параметар time_shift
подржава операције времена у више корака и може укључивати /<time_unit>
за померање на почетак временске јединице (/d
- поноћ, /w
- 1. дан у недељи (понедељак), /М
- 1. дан у месецу, итд.). Примери: -1w
- тачно 7 дана уназад; -1w/w
- понедељак претходне недеље; -1w/w+1d
- уторак претходне недеље. - Временске операције се рачунају с лева на десно без приоритета. На пример, -1M/d+1h/w
ће бити рашчлањено као ((-1M/d)+1h)/w
.
Примери:
Macro function | Received value | Output |
---|---|---|
{{TIME}.fmttime(%B)} |
12:36:01 |
October |
{{TIME}.fmttime(%d %B,-1M/M)} |
12:36:01 |
1 September |
Декодирање вредности макроа из HTML кодирања. Ова функција је подржана од Zabbix-а 7.0.4.
Следећи карактери су подржани:
Value | Decoded value |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
' |
' |
Пример:
Декодирање вредности макроа из HTML кодирања. Ова функција је подржана од Zabbix-а 7.0.4.
Следећи карактери су подржани:
Value | Decoded value |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
Пример:
Екстракција подстринга помоћу подударања регуларног израза (не разликује велика и мала слова).
Параметри:
Коментари:
– Ако је образац функције нетачан регуларни израз, макро се процењује на 'НЕПОЗНАТО' (осим макроа за откривање ниског нивоа, у ком случају ће функција бити занемарена, а макро ће остати нерешен).
Трансформација свих знакова макро вредности у мала слова. Ради са једнобајтним скуповима знакова (као што је ASCII) и не подржава UTF-8. Ова функција је подржана од Zabbix-а 7.0.4.
Пример:
{{ITEM.VALUE}.lowercase()} – трансформишите вредност као што је "Zabbix SERVER" у "zabbix server" (мала слова)
Замена карактера/подниза у вредности макроа. Имајте на уму да је ова функција подржана само са библиотеком libpcre2. Ако је Zabbix сервер/прокси компајлиран са libpcre
, ова функција ће вратити UNKNOWN. Ова функција је подржана од Zabbix-а 7.0.4.
Параметри:
Коментари:
Примери:
{{ITEM.VALUE}. regrepl("oldParam", "newParam")} - ће заменити "oldParam" са "newParam". {{ITEM.VALUE}.regrepl("([^а-z])","\ 1")} - сви знакови који нису словни биће приказани са а обрнута коса црта{$THRESHOLD:"{{#FSNAME}. regrepl("\$","")}"} - уклониће обрнуту косу црту (на пример, да замени "C:" са "C :") {{ITEM.VALUE}.regrepl("_v1.0", "_v2.0", "(final)", "")} - замениће више делова у вредности ставке
Екстракција подстринга помоћу подударања регуларног израза (разликује велика и мала слова).
Параметри:
Коментари:
– Ако је образац функције нетачан регуларни израз, макро се процењује на 'НЕПОЗНАТО' (осим макроа за откривање ниског нивоа, у ком случају ће функција бити занемарена, а макро ће остати нерешен).
Примери:
Macro function | Received value | Output |
---|---|---|
{{ITEM.VALUE}.regsub(^[0-9]+, Problem)} |
123Log line |
Problem |
{{ITEM.VALUE}.regsub("^([0-9]+)", "Problem")} |
123 Log line |
Problem |
{{ITEM.VALUE}.regsub("^([0-9]+)", Problem ID: \1)} |
123 Log line |
Problem ID: 123 |
{{ITEM.VALUE}.regsub(".*", "Problem ID: \1")} |
Log line |
''Problem ID: '' |
{{ITEM.VALUE}.regsub("^(\w+).*?([0-9]+)", " Problem ID: \1_\2 ")} |
MySQL crashed errno 123 |
'' Problem ID: MySQL_123 '' |
{{ITEM.VALUE}.regsub("([1-9]+", "Problem ID: \1")} |
123 Log line |
*UNKNOWN* (неважећи регуларни израз) |
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \1)} |
customername_1 |
customername |
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \2)} |
customername_1 |
1 |
{{#IFALIAS}.regsub("(.*)_([0-9]+", \1)} |
customername_1 |
{{#IFALIAS}.regsub("(.*)_([0-9]+", \1)} (неважећи регуларни израз) |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}"} |
customername_1 |
{$MACRO:"customername"} |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \2)}"} |
customername_1 |
{$MACRO:"1"} |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+\", \1)}"} |
customername_1 |
{$MACRO:"{{#M}.regsub(\"(.*)_([0-9]+\", \1)}"} (неважећи регуларни израз) |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \1)}\"}" |
customername_1 |
"{$MACRO:\"customername\"}" |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \2)}\"}" |
customername_1 |
"{$MACRO:\"1\"}") |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}" |
customername_1 |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}") (неважећи регуларни израз) |
Транслитерација знакова вредности макроа. Ова функција је подржана од Zabbix-а 7.0.4.
Примери:
{{ITEM.VALUE}.tr(abc, xyz)} - замени сва појављивања "а" са "x", "b" са "y", "c" са "z"
{{ITEM.VALUE}.tr(abc, xyzq)} - замени сва појављивања "а" са "x", "b" са "y", "c" са "z" ("q" се занемарује)
{{ITEM.VALUE}.tr(abcde, xyz)} - замени сва појављивања "a" са "x", "b" са "y", "c" са "z", "d" са "z" , "е" са "z" (тј. xyzzz)
{{ITEM.VALUE}.tr("\\\'", "\/\"")} - замени сва појављивања обрнуте косе црте са косом цртом унапред, ' са '
{{ITEM.VALUE}.tr(A-Z,a-z)} - претвори сва слова у мала слова
{{ITEM.VALUE}.tr(0-9a-z,*)} - замени све бројеве и мала слова са "*"
{{ITEM.VALUE}.tr(0-9,ab)} - замени сва појављивања 0 са "а" и замени сва појављивања 1, 2, 3, 4, 5, 6, 7, 8 и 9 са "b"
{{ITEM.VALUE}.tr(0-9abcA-L,*)} – замени све бројеве, "abc" знакове и опсег А-L са "*"
{{ITEM.VALUE}.tr("\n","*")} - замени појављивања на крају реда са *
{{ITEM.VALUE}.tr("e", "\n")} - замени све "е" на крај реда
Да бисте укључили литералне знакове:
обрнута коса црта - мора се изаћи као \\
једноструки наводник - мора се изаћи као \'
двоструки наводник - мора се изаћи као \"
Подржане излазне секвенце са обрнутом косом цртом:
\\\\ => \\ - двострука обрнута коса црта у једну обрнуту косу црту
\\a => \a - упозорење
\\b => \b - повратник
\\f => \f - form feed
\\n => \n - нови ред
\\r => \r - повратак
\\t => \t - хоризонтална картица
\\v => \v - вертикална картица
Трансформација свих знакова макро вредности у мала слова. Ради са једнобајтним скуповима знакова (као што је ASCII) и не подржава UTF-8. Ова функција је подржана од Zabbix-а 7.0.4.
Пример:
{{ITEM.VALUE}.lowercase()} – трансформишите вредност као што је "Zabbix SERVER" у "zabbix server" (мала слова)
Декодирање вредности макроа из URL кодирања. Ова функција је подржана од Zabbix-а 7.0.4.
Пример:
Декодирање вредности макроа из URL кодирања. Ова функција је подржана од Zabbix-а 7.0.4.
Пример:
Табела испод показује више примера коришћења макро функција.
Macro function | Received value | Output |
---|---|---|
{{ITEM.VALUE}.regsub(^[0-9]+, Problem)} |
123Log line |
Problem |
{{ITEM.VALUE}.regsub("^([0-9]+)", "Problem")} |
123 Log line |
Problem |
{{ITEM.VALUE}.regsub(".*", "Problem ID: \1")} |
Log line |
Problem ID: |
{{ITEM.VALUE}.regsub("^(\w+).*?([0-9]+)", " Problem ID: \1_\2 ")} |
MySQL crashed errno 123 |
Problem ID: MySQL\_123 |
{{ITEM.VALUE}.regsub("([1-9]+", "Problem ID: \1")} |
123 Log line |
UNKNOWN (invalid regular expression) |
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \1)} |
customername_1 |
customername |
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \2)} |
customername_1 |
1 |
{{#IFALIAS}.regsub("(.*)_([0-9]+", \1)} |
customername_1 |
{{#IFALIAS}.regsub("(.*)_([0-9]+", \1)} (invalid regular expression) |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}"} |
customername_1 |
{$MACRO:"customername"} |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \2)}"} |
customername_1 |
{$MACRO:"1"} |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+\", \1)}"} |
customername_1 |
{$MACRO:"{{#M}.regsub(\"(.*)_([0-9]+\", \1)}"} (invalid regular expression) |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \1)}\"}" |
customername_1 |
"{$MACRO:\"customername\"}" |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \2)}\"}" |
customername_1 |
"{$MACRO:\"1\"}" |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}" |
customername_1 |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}" (invalid regular expression) |
Дуге вредности решених макроа {ITEM.VALUE} и {ITEM.LASTVALUE} за ставке текста/дневника су скраћене на 20 знакова на неким фронтенд локацијама. Да бисте видели пуне вредности ових макроа, можете да користите функције макроа, нпр.:
Погледајте такође: {ITEM.VALUE} и {ITEM.LASTVALUE} детаљи о макроу.