Макро функције нуде могућност прилагођавања вредности макро (на пример, скраћивање или издвајање одређених подстрингова), што олакшава рад са њима.
Синтакса макро функције је:
где је
На пример:
{{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.
Форматирање бројева за контролу броја цифара које се штампају после децималне тачке.
Параметри:
Примери:
{{ITEM.VALUE}.fmtnum(2)} - will return "24.35" from a received value of "24.3483523"
{{ITEM.VALUE}.fmtnum(0)} - will return "24" from a received value of "24.3483523"
Форматирање времена.
Имајте на уму да се ова функција може користити са макроима који се решавају у вредност у једном од следећих временских формата:
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
.Примери:
{{TIME}.fmttime(%B)} - will return "October" from a received value of "1633098961"
{{TIME}.fmttime(%d %B,-1M/M)} - will return "1 September" from a received value of "1633098961"
Декодирање вредности макроа из HTML кодирања. Ова функција је подржана од Zabbix-а 7.0.4.
Следећи карактери су подржани:
Value | Decoded value |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
' |
' |
Пример:
Декодирање вредности макроа из HTML кодирања. Ова функција је подржана од Zabbix-а 7.0.4.
Следећи карактери су подржани:
Value | Encoded value |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
Пример:
Екстракција подстринга помоћу подударања регуларног израза (не разликује велика и мала слова).
Параметри:
Коментари:
Пример:
{{ITEM.VALUE}.iregsub("fail|error|fault|problem","ERROR")} - will resolve to "ERROR" if "fail", "error", "fault", or "problem" substrings are received (case-insensitive); will return an empty string if there is no match
Трансформација свих карактера макро вредности у мала слова. Ради са једнобајтним скуповима карактера (као што је 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\)", "")} - замениће више делова у вредности ставке
Екстракција подстринга помоћу подударања регуларног израза (разликује велика и мала слова).
Параметри:
Коментари:
Примери:
{{ITEM.VALUE}.regsub("^([0-9]+)", ID проблема: \1)} - решиће се као "ID проблема: 123" ако је примљена вредност попут "123 Log line"{{ITEM.VALUE}.regsub("fail|error|fault|problem","ERROR")} - решиће се као "ERROR" ако су примљени подстрингови "fail", "error", "fault" или "problem" (разликује велика и мала слова);
вратиће празан стринг ако нема подударања
Погледајте више примера.
Транслитерација карактера вредности макроа. Ова функција је подржана од 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 - прелом странице
\\n => \n - нови ред
\\r => \r - повратак
\\t => \t - хоризонтални табулатор
\\v => \v - вертикални табулатор
Трансформација свих карактера макро вредности у велика слова. Ради са једнобајтним скуповима карактера (као што је ASCII) и не подржава UTF-8. Ова функција је подржана од Zabbix-а 7.0.4.
Пример:
{{ITEM.VALUE}.uppercase()} – трансформишите вредност као што је "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 (неважећи регуларни израз) |
{{#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)}\"}" (неважећи регуларни израз) |
Дуге вредности решених макроа {ITEM.VALUE} и {ITEM.LASTVALUE} за ставке текста/дневника су скраћене на 20 карактера на неким локацијама корисничког интерфејса. Да бисте видели комплетна вредности ових макроа, можете да користите функције макроа, нпр.:
Погледајте такође: {ITEM.VALUE} и {ITEM.LASTVALUE} детаље о макроу.