関数は追加情報なしでリストされています。関数をクリックすると詳細が表示されます。
関数 | 説明 |
---|---|
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エンコードはバイナリデータをテキストとして表現する方法で、テキストベースのプロトコルを介してバイナリコンテンツを保存および安全に転送するのに役立ちます。
例:
小数点以下の桁数を制御する数値書式。
パラメータ:
例:
{{ITEM.VALUE}.fmtnum(2)} - 受信した値"24.3483523"に対して"24.35"を返します。
{{ITEM.VALUE}.fmtnum(0)} - 受信した値"24.3483523"に対して"24"を返します。
時刻のフォーマット
この関数は、以下のいずれかの時刻フォーマットの値を返すマクロと共に使用できます。
hh:mm:ss
yyyy-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)} - 受信した値"12:36:01"から"October"を返します。
{{TIME}.fmttime(%d %B,-1M/M)} - 受信した値"12:36:01"から"1 September"を返します。
HTML エンコードからマクロ値をデコードします。
以下の文字がサポートされています。
値 | デコードされた値 |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
' |
' |
例:
マクロ値をHTMLエンコードします。
以下の文字がサポートされています。
値 | エンコードされた値 |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
例:
正規表現マッチによる部分文字列抽出(大文字と小文字は区別されません)
パラメータ:
コメント:
例:
{{ITEM.VALUE}.iregsub("fail|error|fault|problem","ERROR")} - "fail"、"error"、"fault"、または"problem"の部分文字列を受け取った場合は"ERROR"に解決されます(大文字と小文字は区別されません)。一致するものがない場合、何も解決されません。
マクロの値をすべて小文字に変換します。シングルバイト文字セット(ASCII など)で動作し、UTF-8 はサポートされていません。
例:
マクロ値内の文字/部分文字列の置換
この関数はlibpcre2ライブラリでのみサポートされます。Zabbixサーバー/プロキシがlibpcre
でコンパイルされている場合、この関数はUNKNOWNを返します。
パラメーター:
コメント:
例:
{{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"に解決されます(大文字と小文字は区別されます)。一致するものがない場合、何も返されません。
その他の例を参照してください。
マクロ値の文字の翻字
例:
{{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 はサポートされていません。
例:
URLエンコードからマクロ値をデコードします。
例:
マクロ値をURLエンコードします。
例:
以下の表は、マクロ関数の使用例をさらに示しています。
マクロ関数 | 受信値 | 出力 |
---|---|---|
{{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} [マクロ詳細については、/manual/appendix/macros/supported_by_location を参照してください。