discoveryrule.create
Description
object discoveryrule.create(object/array lldRules)
Cette méthode permet de créer de nouvelles règles de découverte bas niveau.
Paramètres
(object/array) Règles de découverte bas niveau à créer.
En plus des propriétés de l'objet règle de découverte bas niveau standard, la méthode accepte les paramètres suivants.
| Paramètre | Type | Description |
|---|---|---|
| filter | object | Objet filtre de règle de découverte bas niveau. |
Valeurs retournées
(object) Retourne un objet contenant les identifiants des règles de
découverte bas niveau créées sous la propriété itemids. L'ordre des ID
retournés correspond à l'ordre des règles de découverte bas niveau
transmises.
Exemples
Création d'une règle de découverte bas niveau
Créez une règle de découverte bas niveau pour découvrir les systèmes de fichiers montés. Les objets découverts seront mis à jour toutes les 30 secondes.
Requête :
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Mounted filesystem discovery",
"key_": "vfs.fs.discovery",
"hostid": "10197",
"type": "0",
"interfaceid": "112",
"delay": "30s"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Réponse :
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"27665"
]
},
"id": 1
}
Utilisation d'un filtre
Créez une règle de découverte bas niveau avec un ensemble de conditions pour filtrer les résultats. Les conditions seront regroupées à l’aide des opérateurs logiques "et".
Requête :
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Filtered LLD rule",
"key_": "lld",
"hostid": "10116",
"type": "0",
"interfaceid": "13",
"delay": "30s",
"filter": {
"evaltype": 1,
"conditions": [
{
"macro": "{#MACRO1}",
"value": "@regex1"
},
{
"macro": "{#MACRO2}",
"value": "@regex2"
},
{
"macro": "{#MACRO3}",
"value": "@regex3"
}
]
}
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Réponse :
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"27665"
]
},
"id": 1
}
Utilisation d'un filtre d'expression personnalisé
Créer une règle de découverte bas niveau avec un filtre qui utilisera une expression personnalisée pour évaluer les conditions. La règle doit découvrir uniquement les objets dont la macro "{#MACRO1}" correspond à l'expression régulière "regex1" et "regex2", et la valeur de "{#MACRO2}" correspond à "regex3" ou "regex4". Les ID de formule "A", "B", "C" et "D" ont été choisis arbitrairement.
Requête :
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Filtered LLD rule",
"key_": "lld",
"hostid": "10116",
"type": "0",
"interfaceid": "13",
"delay": "30s",
"filter": {
"evaltype": 3,
"formula": "(A and B) and (C or D)",
"conditions": [
{
"macro": "{#MACRO1}",
"value": "@regex1",
"formulaid": "A"
},
{
"macro": "{#MACRO1}",
"value": "@regex2",
"formulaid": "B"
},
{
"macro": "{#MACRO2}",
"value": "@regex3",
"formulaid": "C"
},
{
"macro": "{#MACRO2}",
"value": "@regex4",
"formulaid": "D"
}
]
}
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Réponse :
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"27665"
]
},
"id": 1
}
Utilisation de champs de requête et d'en-têtes personnalisés
Créer une règle de découverte bas niveau avec des champs de requête et des en-têtes personnalisés.
Requête :
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"hostid": "10257",
"interfaceid": "5",
"type": "19",
"name": "API HTTP agent",
"key_": "api_discovery_rule",
"value_type": "3",
"delay": "5s",
"url": "http://127.0.0.1?discoverer.php",
"query_fields": [
{
"mode": "json"
},
{
"elements":"2"
}
],
"headers": {
"X-Type": "api",
"Authorization": "Bearer mF_A.B5f-2.1JcM"
},
"allow_traps": "1",
"trapper_hosts": "127.0.0.1",
"id": 35,
"auth": "d678e0b85688ce578ff061bd29a20d3b",
}
}
Réponse :
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"28336"
]
},
"id": 35
}
Voir également
Source
CDiscoveryRule::create() dans frontends/php/include/classes/api/services/CDiscoveryRule.php.