template.get

説明

integer/array template.get(object parameters)

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

このメソッドは、すべてのタイプのユーザーが利用できます。 このメソッドを呼び出す権限は、ユーザーロールの設定で取り消すことができます。 詳細はユーザーロールを参照してください。

パラメーター

(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>"}, ...]
空の配列はすべてのテンプレートを返します。

指定可能な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 テンプレートのWebシナリオをhttpTestsプロパティで返します。

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 agent 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.0-2",
            "proxy_groupid": "0",
            "monitored_by": "0",
            "wizard_ready": "1",
            "readme": "## 概要\r\n\r\nこれは公式のLinuxテンプレートです。Zabbix agent 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 agent 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.0-2",
            "proxy_groupid": "0",
            "monitored_by": "0",
            "wizard_ready": "1",
            "readme": "## 概要\r\n\r\nこれは公式のWindowsテンプレートです。Zabbix agent 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.