discoveryrule.update
説明
object discoveryrule.update(object/array lldRules)
このメソッドでは、既存のLLDルールを更新できます。
このメソッドは、Admin および Super admin の ユーザータイプでのみ利用できます。メソッドを呼び出す権限は、ユーザーロールの 設定で取り消すことができます。詳細は、ユーザーロール を参照してください。
パラメータ
(object/array) 更新するLLDルールのプロパティ。
各LLDルールでは itemid プロパティを定義する必要があり、その他の
プロパティはすべて任意です。渡されたプロパティのみが更新され、その他
は変更されません。
このメソッドは、標準のLLDルールプロパティに加えて、 以下のパラメータを受け付けます。
| パラメータ | 型 | 説明 |
|---|---|---|
| filter | object | 既存のフィルターを置き換えるためのLLDルールフィルター。 |
| preprocessing | object/array | 既存の前処理オプションを置き換えるためのLLDルール前処理オプション。 パラメータの動作: - 継承されたオブジェクトでは read-only |
| lld_macro_paths | object/array | 既存のlld_macro_pathオプションを置き換えるためのLLDルールのlld_macro_pathオプション。 パラメータの動作: - 継承されたオブジェクトでは read-only |
| overrides | object/array | 既存のオーバーライドオプションを置き換えるためのLLDルールオーバーライドオプション。 パラメータの動作: - 継承されたオブジェクトでは read-only |
戻り値
(object) itemidsプロパティの下で更新されたLLDルールのIDを含むオブジェクトを返します。
例
LLDルールへのフィルターの追加
{#FSTYPE} マクロの内容が \@File systems for discovery 正規表現に一致するように、フィルターを追加します。
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "22450",
"filter": {
"evaltype": 1,
"conditions": [
{
"macro": "{#FSTYPE}",
"value": "@File systems for discovery"
}
]
}
},
"id": 1
}
レスポンス:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"22450"
]
},
"id": 1
}
LLDマクロパスの追加
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "22450",
"lld_macro_paths": [
{
"lld_macro": "{#MACRO1}",
"path": "$.json.path"
}
]
},
"id": 1
}
レスポンス:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"22450"
]
},
"id": 1
}
トラップの無効化
ディスカバリルールのLLDトラップを無効にします。
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "28336",
"allow_traps": 0
},
"id": 1
}
レスポンス:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"28336"
]
},
"id": 1
}
LLDルールの前処理オプションの更新
前処理ルール「JSONPath」を使用してLLDルールを更新します。
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "44211",
"preprocessing": [
{
"type": 12,
"params": "$.path.to.json",
"error_handler": 2,
"error_handler_params": "5"
}
]
},
"id": 1
}
レスポンス:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"44211"
]
},
"id": 1
}
LLDルールのスクリプトの更新
LLDルールのスクリプトを別のスクリプトで更新し、 以前のスクリプトで使用されていた不要な パラメータを削除します。
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "23865",
"parameters": [],
"script": "Zabbix.log(3, 'Log test');\nreturn 1;"
},
"id": 1
}
レスポンス:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"23865"
]
},
"id": 1
}
LLD ルールの有効期間の更新
LLD ルールを更新し、検出されなくなったエンティティを 12 時間後に無効化し、7 日後に削除します。
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "46864",
"lifetime_type": 0,
"lifetime": "7d",
"enabled_lifetime_type": 0,
"enabled_lifetime": "12h"
},
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"46864"
]
},
"id": 1
}
ソース
CDiscoveryRule::update() in ui/include/classes/api/services/CDiscoveryRule.php.