discoveryrule.update

Description

object discoveryrule.update(object/array lldRules)

Cette méthode permet de mettre à jour des règles LLD existantes.

Cette méthode est disponible uniquement pour les types d’utilisateur Admin et Super admin. Les autorisations d’appel de la méthode peuvent être révoquées dans les paramètres du rôle utilisateur. Voir User roles pour plus d’informations.

Paramètres

(object/array) Propriétés de la règle LLD à mettre à jour.

La propriété itemid doit être définie pour chaque règle LLD, toutes les autres propriétés sont facultatives. Seules les propriétés transmises seront mises à jour, toutes les autres resteront inchangées.

En plus des propriétés standard de la règle LLD, la méthode accepte les paramètres suivants.

Paramètre Type Description
filter object Filtre de règle LLD pour remplacer le filtre existant.
preprocessing object/array Options de prétraitement de règle LLD pour remplacer les options de prétraitement existantes.

Comportement du paramètre :
- lecture seule pour les objets hérités
lld_macro_paths object/array Options lld_macro_path de la règle LLD pour remplacer les options lld_macro_path existantes.

Comportement du paramètre :
- lecture seule pour les objets hérités
overrides object/array Options de surcharges de règle LLD pour remplacer les options de surcharge existantes.

Comportement du paramètre :
- lecture seule pour les objets hérités

Valeurs retournées

(object) Retourne un objet contenant les identifiants des règles mises à jour sous la propriété itemids.

Exemples

Ajout d’un filtre à une règle LLD

Ajoutez un filtre afin que le contenu de la macro {#FSTYPE} corresponde à l’expression régulière \@File systems for discovery.

Requête:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "22450",
        "filter": {
            "evaltype": 1,
            "conditions": [
                {
                    "macro": "{#FSTYPE}",
                    "value": "@File systems for discovery"
                }
            ]
        }
    },
    "id": 1
}

Réponse :

{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "22450"
        ]
    },
    "id": 1
}

Ajout de chemins de macro LLD

Requête:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "22450",
        "lld_macro_paths": [
            {
                "lld_macro": "{#MACRO1}",
                "path": "$.json.path"
            }
        ]
    },
    "id": 1
}

Réponse :

{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "22450"
        ]
    },
    "id": 1
}

Désactiver le trapping

Désactivez le trapping LLD pour la règle de découverte.

Requête:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "28336",
        "allow_traps": 0
    },
    "id": 1
}

Réponse :

{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "28336"
        ]
    },
    "id": 1
}

Mise à jour des options de prétraitement d’une règle LLD

Mettez à jour une règle LLD avec la règle de prétraitement « JSONPath ».

Requête:

{
    "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
}

Réponse :

{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "44211"
        ]
    },
    "id": 1
}

Mise à jour du script de la règle LLD

Mettez à jour un script de règle LLD avec un script différent et supprimez les paramètres inutiles qui étaient utilisés par le script précédent.

Requête:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "23865",
        "parameters": [],
        "script": "Zabbix.log(3, 'Log test');\nreturn 1;"
    },
    "id": 1
}

Réponse :

{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "23865"
        ]
    },
    "id": 1
}

Mise à jour de la durée de vie d’une règle LLD

Mettez à jour la règle LLD pour désactiver l’entité qui n’est plus découverte après 12 heures et la supprimer après 7 jours.

Requête:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "46864",
        "lifetime_type": 0, 
        "lifetime": "7d",
        "enabled_lifetime_type": 0,
        "enabled_lifetime": "12h"
    },
    "id": 1
}

Réponse :

{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "46864"
        ]
    },
    "id": 1
}

Source

CDiscoveryRule::update() dans ui/include/classes/api/services/CDiscoveryRule.php.