template.get

説明

integer/array template.get(object parameters)

このメソッドを使用すると、指定したパラメーターに従ってテンプレートを取得できます。

このメソッドは、あらゆる種類のユーザーが利用できます。 このメソッドの呼び出し権限は、ユーザーのロール設定で取り消すことができます。 詳細は User roles を参照してください。

パラメータ

(object) 目的の出力を定義するパラメータ。

このメソッドは、次のパラメータをサポートしています。

パラメータ タイプ 説明
templateids ID/array 指定したテンプレート ID を持つテンプレートのみを返します。
groupids ID/array 指定したテンプレートグループに属するテンプレートのみを返します。
parentTemplateids ID/array 指定したテンプレートがリンクしているテンプレートのみを返します。
hostids ID/array 指定したホスト/テンプレートにリンクしているテンプレートのみを返します。
graphids ID/array 指定したグラフを含むテンプレートのみを返します。
itemids ID/array 指定したアイテムを含むテンプレートのみを返します。
triggerids ID/array 指定したトリガーを含むテンプレートのみを返します。
with_items flag アイテムを持つテンプレートのみを返します。
with_triggers flag トリガーを持つテンプレートのみを返します。
with_graphs flag グラフを持つテンプレートのみを返します。
with_httptests flag Webシナリオを持つテンプレートのみを返します。
evaltype integer タグの評価方法。

指定可能な値:
0 - (デフォルト) And/Or;
2 - Or。
tags object/array 指定したタグを持つテンプレートのみを返します。
形式: [{"tag": "<tag>", "value": "<value>", "operator": "<operator>"}, ...]。
空の配列を指定すると、すべてのテンプレートを返します。

指定可能な演算子の値:
0 - (デフォルト) 含む;
1 - 等しい;
2 - 含まない;
3 - 等しくない;
4 - 存在する;
5 - 存在しない。
inheritedTags boolean リンクされたテンプレートにも指定した tags を持つテンプレートを返します。

指定可能な値:
true - リンクされたテンプレートにも指定したタグが必要です;
false - (デフォルト) リンクされたテンプレートのタグを無視します。
selectInheritedTags query リンクされたテンプレートに設定されているタグを含む inheritedTags プロパティを返します。
selectTags query tags プロパティにテンプレートのタグを返します。
selectDiscoveryRules query テンプレートの LLD ルールを含む discoveryRules プロパティを返します。

count をサポートします。
selectHosts query hosts プロパティに、テンプレートにリンクされているホストを返します。

count をサポートします。
selectTemplateGroups query templategroups プロパティに、テンプレートが属するテンプレートグループを返します。
selectTemplates query templates プロパティに、指定したテンプレートがリンクしているテンプレートを返します。

count をサポートします。
selectParentTemplates query parentTemplates プロパティに、指定したテンプレートにリンクしているテンプレートを返します。

count をサポートします。
selectHttpTests query httpTests プロパティに、テンプレートのWebシナリオを返します。

count をサポートします。
selectItems query items プロパティに、テンプレートのアイテムを返します。

count をサポートします。
selectTriggers query triggers プロパティに、テンプレートのトリガーを返します。

count をサポートします。
selectGraphs query graphs プロパティに、テンプレートのグラフを返します。

count をサポートします。
selectMacros query macros プロパティに、テンプレートのマクロを返します。
selectDashboards query dashboards プロパティに、テンプレートのダッシュボードを返します。

count をサポートします。
selectValueMaps query テンプレートの値のマップを含む valuemaps プロパティを返します。
limitSelects integer サブセレクトによって返されるレコード数を制限します。

次のサブセレクトに適用されます:
selectTemplates - name でソート;
selectHosts - host でソート;
selectParentTemplates - host でソート;
selectItems - name でソート;
selectDiscoveryRules - name でソート;
selectTriggers - description でソート;
selectGraphs - name でソート;
selectDashboards - name でソート。
sortfield string/array 指定したプロパティで結果をソートします。

指定可能な値: hostid、host、name、status。
countOutput boolean これらのパラメータについては、リファレンス解説で説明しています。
editable boolean
excludeSearch boolean
filter object
limit integer
output query
preservekeys boolean
search object
searchByAny boolean
searchWildcardsEnabled boolean
sortorder string/array
startSearch boolean
selectDiscoveries query discoveries プロパティに、テンプレートからのローレベルディスカバリを返します。

count をサポートします。

このクエリは非推奨です。代わりに selectDiscoveryRules を使用してください。

戻り値

(integer/array) 以下のいずれかを返します。

  • オブジェクトの配列
  • countOutputパラメータが使用されている場合は、取得したオブジェクトの数

例

名前でテンプレートを取得する

「Linux by Zabbix agent」および「Windows by Zabbix agent」という名前の2つのテンプレートに関するすべてのデータを取得します。

リクエスト:

{
    "jsonrpc": "2.0",
    "method": "template.get",
    "params": {
        "output": "extend",
        "filter": {
            "host": [
                "Linux by Zabbix agent",
                "Windows by Zabbix agent"
            ]
        }
    },
    "id": 1
}

レスポンス:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "proxyid": "0",
            "host": "Linux by Zabbix agent",
            "status": "3",
            "ipmi_authtype": "-1",
            "ipmi_privilege": "2",
            "ipmi_username": "",
            "ipmi_password": "",
            "maintenanceid": "0",
            "maintenance_status": "0",
            "maintenance_type": "0",
            "maintenance_from": "0",
            "name": "Linux by Zabbix agent",
            "flags": "0",
            "templateid": "10001",
            "description": "これは公式のLinuxテンプレートです。Zabbixエージェント8.0以降が必要です。\r\n\r\nファイルシステム(FS)ディスカバリに関する注意事項:\r\n- ext4/3/2ファイルシステムは、特権ユーザーによる使用のために領域を予約します。通常、デフォルトで5%に設定されています。\r\n- BTRFSは、自身の用途のためにボリュームのデフォルト10%を割り当てます。\r\n- 潜在的な障害を軽減するため、FS使用率のトリガーは最大使用可能領域に基づいています。\r\n  - 使用率の計算式: 'pused = 100 - 100 * (available / total - free + available)'\r\n- グラフのプロトタイプから作成されるFS使用率グラフでは、ボリューム全体に対する使用済み領域と使用可能領域の差として、FSの予約領域が示されます。\r\n\r\nこのテンプレートについての議論やフィードバックは、フォーラム https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387225-discussion-thread-for-official-zabbix-template-for-linux で行えます。\r\n\r\n公式Zabbixテンプレートツール「Templator」により生成",
            "tls_connect": "1",
            "tls_accept": "1",
            "tls_issuer": "",
            "tls_subject": "",
            "tls_psk_identity": "",
            "tls_psk": "",
            "custom_interfaces": "0",
            "uuid": "f8f7908280354f2abeed07dc788c3747",
            "vendor_name": "Zabbix",
            "vendor_version": "8.2-2",
            "proxy_groupid": "0",
            "monitored_by": "0",
            "wizard_ready": "1",
            "readme": "## 概要\r\n\r\nこれは公式のLinuxテンプレートです。Zabbixエージェント8.0以降が必要です。\r\n\r\n#### ファイルシステム(FS)ディスカバリに関する注意事項:\r\n- ext4/3/2 FSは、特権ユーザーによる使用のために領域を予約します。通常、デフォルトで5%に設定されています。\r\n- BTRFSは、自身の用途のためにボリュームのデフォルト10%を割り当てます。\r\n- 潜在的な障害を軽減するため、FS使用率のトリガーは最大使用可能領域に基づいています。\r\n  - 使用率の計算式: `pused = 100 - 100 * (available / total - free + available)`\r\n- グラフのプロトタイプから作成されるFS使用率グラフでは、ボリューム全体に対する使用済み領域と使用可能領域の差として、FSの予約領域が示されます。"
        },
        {
            "proxyid": "0",
            "host": "Windows by Zabbix agent",
            "status": "3",
            "ipmi_authtype": "-1",
            "ipmi_privilege": "2",
            "ipmi_username": "",
            "ipmi_password": "",
            "maintenanceid": "0",
            "maintenance_status": "0",
            "maintenance_type": "0",
            "maintenance_from": "0",
            "name": "Windows by Zabbix agent",
            "flags": "0",
            "templateid": "10081",
            "description": "これは公式のWindowsテンプレートです。Zabbixエージェント8.0以降が必要です。\r\n\r\nこのテンプレートについての議論やフィードバックは、フォーラム https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387224-discussion-thread-for-official-zabbix-template-for-windows で行えます。\r\n\r\n公式Zabbixテンプレートツール「Templator」により生成",
            "tls_connect": "1",
            "tls_accept": "1",
            "tls_issuer": "",
            "tls_subject": "",
            "tls_psk_identity": "",
            "tls_psk": "",
            "custom_interfaces": "0",
            "uuid": "13b06904a6bf41cbb795e3193d896340",
            "vendor_name": "Zabbix",
            "vendor_version": "8.2-2",
            "proxy_groupid": "0",
            "monitored_by": "0",
            "wizard_ready": "1",
            "readme": "## 概要\r\n\r\nこれは公式のWindowsテンプレートです。Zabbixエージェント8.0以降が必要です。"
        }
    ],
    "id": 1
}

テンプレートグループの取得

テンプレート "Linux by Zabbix エージェント"が所属するテンプレートグループを取得します。

リクエスト:

{
    "jsonrpc": "2.0",
    "method": "template.get",
    "params": {
        "output": ["hostid"],
        "selectTemplateGroups": "extend",
        "filter": {
            "host": [
                "Linux by Zabbix agent"
            ]
        }
    },
    "id": 1
}

Response:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "templateid": "10001",
            "templategroups": [
                {
                    "groupid": "10",
                    "name": "Templates/Operating systems",
                    "uuid": "846977d1dfed4968bc5f8bdb363285bc"
                }
            ]
        }
    ],
    "id": 1
}

テンプレートによるホストの取得

"10001"(Linux by Zabbix エージェント) テンプレートがリンクされているホストを取得します。

リクエスト:

{
    "jsonrpc": "2.0",
    "method": "template.get",
    "params": {
        "output": "templateid",
        "templateids": "10001",
        "selectHosts": ["hostid", "name"]
    },
    "id": 1
}

Response:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "templateid": "10001",
            "hosts": [
                {
                    "hostid": "10084",
                    "name": "Zabbix server"
                },
                {
                    "hostid": "10603",
                    "name": "Host 1"
                },
                {
                    "hostid": "10604",
                    "name": "Host 2"
                }
            ]
        }
    ],
    "id": 1
}

テンプレートタグによる検索

タグ "host-name" が "{HOST.NAME}" と等しいテンプレートを取得します。

リクエスト:

{
    "jsonrpc": "2.0",
    "method": "template.get",
    "params": {
        "output": ["hostid"],
        "selectTags": "extend",
        "evaltype": 0,
        "tags": [
            {
                "tag": "host-name",
                "value": "{HOST.NAME}",
                "operator": 1
            }
        ]
    },
    "id": 1
}

レスポンス:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "templateid": "10402",
            "tags": [
                {
                    "tag": "host-name",
                    "value": "{HOST.NAME}"
                }
            ]
        }
    ],
    "id": 1
}

関連項目

ソース

CTemplate::get() in ui/include/classes/api/services/CTemplate.php.