関数は追加情報なしでリストされています。 関数をクリックすると詳細が表示されます。
| 関数 | 説明 | 
|---|---|
| btoa | マクロ値をBase64形式にエンコードします。 | 
| fmtnum | 小数点以下の桁数を制御するための数値フォーマットです。 | 
| fmttime | 時刻フォーマットです。 | 
| htmldecode | マクロ値をHTMLエンコードからデコードします。 | 
| htmlencode | マクロ値をHTMLエンコードにエンコードします。 | 
| iregsub | 正規表現マッチングによる部分文字列抽出(大文字と小文字を区別しません)。 | 
| lowercase | マクロ値の文字を小文字に変換します。 | 
| regrepl | マクロ値内の文字/部分文字列を置換します。 | 
| regsub | 正規表現マッチングによる部分文字列の抽出(大文字と小文字を区別します)。 | 
| tr | マクロ値の文字を変換します。 | 
| uppercase | マクロ値の文字を大文字に変換します。 | 
| urldecode | URLエンコードからマクロ値をデコードします。 | 
| urlencode | マクロ値をURLエンコードにエンコードします。 | 
マクロ関数は、macroの値をカスタマイズする機能を提供します。
マクロは、必ずしも簡単に扱えない値を解決することがあります。値が長かったり、抽出したい特定の部分文字列が
 含まれていたりする場合があります。このような場合に、マクロ関数が役に立ちます。
マクロ関数の書式は:
ここで:
" で始まる場合、あるいは ), , を含む場合は、引用符で囲む必要があります。例:
{{TIME}.fmttime(format,time_shift)}
       {{ITEM.VALUE}.regsub(pattern, output)}
       {{#LLDMACRO}.regsub(pattern, output)}マクロ値をBase64エンコードします。Base64エンコードはバイナリデータをテキストとして表現する方法で、テキストベースのプロトコルでバイナリコンテンツを保存したり、安全に転送したりするのに役立ちます。
例:
この関数はZabbix 7.0.4以降でサポートされています。
小数点以下の桁数を制御する数値書式
パラメータ:
例:
{{ITEM.VALUE}.fmtnum(2)} - 受信した値"24.3483523"に対して"24.35"を返します。
       {{ITEM.VALUE}.fmtnum(0)} - 受信した値"24.3483523"に対して"24"を返します。時刻のフォーマット。
 この関数は、以下のいずれかの時刻形式の値を返すマクロで使用できます。
hh:mm:ssyyyy-mm-ddThh:mm:ss[tz] (ISO8601 標準)パラメーター:
strftime 関数のフォーマットと互換性があります。-<N><time_unit> または +<N><time_unit> で始まる必要があります。N - 加算または減算する時間単位の数。time_unit - h(時)、d(日)、w(週)、M(月)、またはy(年)コメント:
time_shift パラメータは複数段階の時間演算をサポートし、時間単位の先頭にシフトするための /<time_unit> を含めることができます。 (/d - 午前0時、/w - 週の初日(月曜日)、/M - 月の初日 など)。 例:-1w - ちょうど7日前、-1w/w - 先週の月曜日、-1w/w+1d - 先週の火曜日。-1M/d+1h/w は ((-1M/d)+1h)/w と解釈されます。例:
{{TIME}.fmttime(%B)} - 受信した値"1633098961"から"October"を返します。
       {{TIME}.fmttime(%d %B,-1M/M)} - 受信した値"1633098961"から"1 September"を返します。HTML エンコードからマクロ値をデコードします。この関数はZabbix 7.0.4以降でサポートされています。
以下の文字がサポートされています。
| 値 | デコードされた値 | 
|---|---|
& | 
       & | 
       
< | 
       < | 
       
> | 
       > | 
       
" | 
       " | 
       
' | 
       ' | 
       
' | 
       ' | 
       
例:
マクロ値をHTMLエンコードします。この関数はZabbix 7.0.4以降でサポートされています。
以下の文字がサポートされています。
| 値 | エンコードされた値 | 
|---|---|
& | 
       & | 
       
< | 
       < | 
       
> | 
       > | 
       
" | 
       " | 
       
' | 
       ' | 
       
例:
正規表現マッチによる部分文字列抽出(大文字と小文字は区別されません)
パラメータ:
コメント:
例:
{{ITEM.VALUE}.iregsub("fail|error|fault|problem","ERROR")} - "fail"、"error"、"fault"、または"problem"の部分文字列を受け取った場合は"ERROR"に解決されます(大文字と小文字は区別されません)。一致するものがない場合、何も解決されません。マクロの値をすべて小文字に変換します。シングルバイト文字セット(ASCII など)で動作し、UTF-8 はサポートされていません。この関数はZabbix 7.0.4以降でサポートされています。
例:
マクロ値内の文字/部分文字列を置換します。注 この関数は libpcre2 ライブラリでのみサポートされます。Zabbix サーバー/プロキシが libpcre でコンパイルされている場合、この関数は UNKNOWN を返します。この関数は Zabbix 7.0.4 以降でサポートされています。
パラメーター:
コメント:
例:
{{ITEM.VALUE}.regrepl("oldParam", "newParam")} - "oldParam" を "newParam" に置き換えます。
       {{ITEM.VALUE}.regrepl("([^a-z])","\\\1")} - 英字以外の文字はすべてバックスラッシュでエスケープされます。
       {$THRESHOLD:"{{#FSNAME}.regrepl(\"\\$\",\"\")}"} - 末尾のバックスラッシュを削除します (例: "C:\" を "C:" に置き換えます)。
       {{ITEM.VALUE}.regrepl("_v1\.0", "_v2.0", "\(final\)", "")} - アイテム値内の複数の部分を置き換えます。正規表現マッチによる部分文字列抽出(大文字と小文字を区別します)。
パラメータ:
コメント:
例:
{{ITEM.VALUE}.regsub("^([0-9]+)", 問題ID: \1)} - "123 Log line" のような値を受け取った場合、"問題ID: 123"に解決されます。
       {{ITEM.VALUE}.regsub("fail|error|fault|problem","ERROR")} - "fail"、"error"、"fault"、"problem"のいずれかの部分文字列を受け取った場合、"ERROR"に解決されます(大文字と小文字は区別されます)。一致するものがない場合、何も返されません。その他の例を参照してください。
マクロ値の文字を変換します。
この関数はZabbix 7.0.4以降でサポートされています。
例:
{{ITEM.VALUE}.tr(abc, xyz)} - すべての"a"を"x"、"b"を"y"、"c"を"z"に置き換えます。
       {{ITEM.VALUE}.tr(abc, xyzq)} - すべての"a"を"x"、"b"を"y"、"c"を"z"に置き換えます("q"は無視されます)
       {{ITEM.VALUE}.tr(abcde, xyz)} - すべての"a"を"x"、"b"を"y"、"c"を"z"、"d"を"z"、"e"を"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を"a"に置き換え、すべての1、2、3、4、5、6、7、8、9を"b"に置き換えます。
       {{ITEM.VALUE}.tr(0-9abcA-L,*)} - すべての数字、文字の"abc"およびA~Lの範囲を"*"に置き換えます。
       {{ITEM.VALUE}.tr("\n","*")} - 改行文字を"*"に置き換えます。
       {{ITEM.VALUE}.tr("e", "\n")} - すべての"e"を改行文字に置き換えます。リテラル文字を含める場合:
バックスラッシュ - \\ としてエスケープする必要があります。
       シングルクォーテーション - \' としてエスケープする必要があります。
       ダブルクォーテーション - \" としてエスケープする必要があります。バックスラッシュでサポートされているエスケープシーケンス:
\\\\ => \\ - 二重のバックスラッシュを単一のバックスラッシュに変換
       \\a => \a - アラート
       \\b => \b - バックスペース
       \\f => \f - フォームフィード
       \\n => \n - 改行
       \\r => \r - リターン
       \\t => \t - 水平タブ
       \\v => \v - 垂直タブマクロの値をすべて大文字に変換します。シングルバイト文字セット(ASCII など)で動作し、UTF-8 はサポートされていません。この関数はZabbix 7.0.4以降でサポートされています。
例:
URLエンコードからマクロ値をデコードします。この関数はZabbix 7.0.4以降でサポートされています。
例:
マクロ値をURLエンコードします。この関数はZabbix 7.0.4以降でサポートされています。
例:
以下の表は、マクロ関数の使用例をさらに示しています。
| マクロ関数 | 受信値 | 出力 | 
|---|---|---|
{{ITEM.VALUE}.regsub(^[0-9]+, Problem)} | 
       123 ログ行 | 
       問題 | 
       
{{ITEM.VALUE}.regsub("^([0-9]+)", "問題")} | 
       123 ログ行 | 
       問題 | 
       
{{ITEM.VALUE}.regsub(".*", "問題 ID: \1")} | 
       ログ行 | 
       問題 ID: | 
       
{{ITEM.VALUE}.regsub("^(\w+).*?([0-9]+)", " 問題ID: \1_\2 ")} | 
       MySQL がエラー番号 123 でクラッシュしました | 
       問題ID: MySQL\_123  | 
       
{{ITEM.VALUE}.regsub("([1-9]+", "問題ID: \1")} | 
       123 ログ行 | 
       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} マクロ詳細についてはを参照してください。