# - ユーザーマクロ

#### 概要

柔軟性を高めるために、Zabbixは、グローバルレベル、テンプレートレベル、およびホストレベルでユーザーマクロをサポートします。マクロには、特殊な構文があります：**{$MACRO}**。

マクロを使用できる場所は以下のとおりです：

-   アイテム名
-   アイテムキーのパラメータ
-   トリガー名と説明
-   トリガー条件式パラメータと定数（例を参照してください）
-   その他の複数の[場所](/jp/manual/appendix/macros/supported_by_location#ユーザーマクロへの追加サポート)

以下の文字がマクロ名で利用できます。**A-Z、0-9、\_、.**

Zabbixは、以下の優先順位でマクロを置き換えます。

1.  ホストレベルのマクロ（最初にチェックされます）
2.  ホストの最初のレベルのテンプレートに定義され（ホストに直接リンクされたテンプレートなど）、テンプレートIDによって分類されたマクロ
3.  ホストの2番目のレベルのテンプレートに定義され、テンプレートIDによって分類されたマクロ
4.  ホストの3番目のレベルのテンプレートに定義され、テンプレートIDによって分類されたマクロ
5.  …
6.  グローバルマクロ（最後に確認されます）

マクロがホストに存在しない場合、Zabbixは深さが増すホストテンプレート内でマクロを探します。マクロが見つからない場合で、グローバルマクロが存在する場合は、使用されます。

Zabbixでマクロが見つけることができない場合、マクロは置き換えられません。

ユーザーマクロを定義する場合、Webインタフェース内で対応するページに移動します。

-   グローバルマクロの場合、\[管理\]→\[一般\]→\[マクロ\]を開きます。
-   ホストとテンプレートレベルのマクロの場合は、ホストまたはテンプレートプロパティを開き、\[マクロ\]タブを探します。

::: notetip

ユーザーマクロがテンプレートのアイテムまたはトリガーで使用される場合、マクロがグローバルレベルで定義されていても、テンプレートに追加することを勧めます。この方法で、テンプレートをXMLにエクスポートし、別のシステムにインポートしても、期待どおりにテンプレートは動作します。

:::

**グローバルマクロとホストマクロの最も一般的な使用方法：**

1.  ホスト特有の属性を有するテンプレートの利用:パスワード、ポート番号、ファイル名、正規表現など
2.  グローバルなワンクリック設定変更と微調整のためのグローバルマクロ

#### 例

##### 例1

「SSHデーモンのステータス」アイテムキーにおけるホストレベルマクロの使用：

**net.tcp.service\[ssh,{$SSH\_PORT}\]**

このアイテムは複数のホストに割り当てることができます。（**{$SSH\_PORT}**の値がホストに定義されている場合）

##### 例2

「CPU load is too high」トリガーでのホストレベルマクロの使用：

**{ca\_001:system.cpu.load\[,avg1\].last(0)}>{$MAX\_CPULOAD}**

このようなトリガーは、テンプレートで作成され、個別のホストでは編集されません。

::: notetip

**max(\#3)**などの関数パラメータとして値を使用する場合、以下のようにマクロ定義にハッシュマークを含めることができます。SOME\_PERIOD
⇒ \#3 
:::

##### 例3

「CPU負荷が高すぎます」トリガーでの2つのマクロの使用：

**{ca\_001:system.cpu.load\[,avg1\].min({$CPULOAD\_PERIOD})}>{$MAX\_CPULOAD}**

マクロをトリガー関数のパラメータとして使用できます。この例では、**min**関数です。

::: noteimportant

トリガー条件式において、パラメータまたは定数を参照する場合に、ユーザーマクロが展開します。ホスト、アイテムキー、関数、演算子または別のトリガー条件式を参照している場合は、トリガー条件式は展開されません。

:::

------------------------------------------------------------------------

*本ページは2014/08/05時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。\
最新の情報は、英語版のZabbix2.2マニュアルを参照してください。*
