object discoveryrule.create(object/array lldRules)
Cette m¨¦thode permet de cr¨¦er de nouvelles r¨¨gles de d¨¦couverte bas niveau.
Cette m¨¦thode est disponible uniquement pour les utilisateurs de type Admin et Super admin. Les autorisations d'appel de la m¨¦thode peuvent ¨ºtre r¨¦voqu¨¦es dans les r¨¦glages du r?le d'utilisateur. Voir les R?les utilisateur pour plus d'informations.
(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.
±Ê²¹°ù²¹³¾¨¨³Ù°ù±ð | Type | Description |
---|---|---|
filter | object | Objet filtre de la r¨¨gle LLD. |
preprocessing | array | Options de ±è°ù¨¦³Ù°ù²¹¾±³Ù±ð³¾±ð²Ô³Ù de la r¨¨gle LLD. |
lld_macro_paths | array | Options lld_macro_path de la r¨¨gle LLD. |
overrides | array | Options de remplacement de la r¨¨gle LLD. |
(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.
Cr¨¦er 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 :
Cr¨¦er 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 de l'op¨¦rateur logique "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",
"operator": "9"
},
{
"macro": "{#MACRO3}",
"value": "",
"operator": "12"
},
{
"macro": "{#MACRO4}",
"value": "",
"operator": "13"
}
]
}
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
R¨¦ponse :
¸é±ð±ç³Ü¨º³Ù±ð:
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "LLD rule with LLD macro paths",
"key_": "lld",
"hostid": "10116",
"type": "0",
"interfaceid": "13",
"delay": "30s",
"lld_macro_paths": [
{
"lld_macro": "{#MACRO1}",
"path": "$.path.1"
},
{
"lld_macro": "{#MACRO2}",
"path": "$.path.2"
}
]
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
R¨¦ponse :
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 :
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 :
Requ¨ºte :
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Discovery rule with preprocessing",
"key_": "lld.with.preprocessing",
"hostid": "10001",
"ruleid": "27665",
"type": 0,
"value_type": 3,
"delay": "60s",
"interfaceid": "1155",
"preprocessing": [
{
"type": "20",
"params": "20",
"error_handler": "0",
"error_handler_params": ""
}
]
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
R¨¦ponse :
Requ¨ºte :
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Discover database host",
"key_": "lld.with.overrides",
"hostid": "10001",
"type": 0,
"value_type": 3,
"delay": "60s",
"interfaceid": "1155",
"overrides": [
{
"name": "Discover MySQL host",
"step": "1",
"stop": "1",
"filter": {
"evaltype": "2",
"conditions": [
{
"macro": "{#UNIT.NAME}",
"operator": "8",
"value": "^mysqld\\.service$"
},
{
"macro": "{#UNIT.NAME}",
"operator": "8",
"value": "^mariadb\\.service$"
}
]
},
"operations": [
{
"operationobject": "3",
"operator": "2",
"value": "Database host",
"opstatus": {
"status": "0"
},
"optemplate": [
{
"templateid": "10170"
}
],
"optag": [
{
"tag": "Database",
"value": "MySQL"
}
]
}
]
},
{
"name": "Discover PostgreSQL host",
"step": "2",
"stop": "1",
"filter": {
"evaltype": "0",
"conditions": [
{
"macro": "{#UNIT.NAME}",
"operator": "8",
"value": "^postgresql\\.service$"
}
]
},
"operations": [
{
"operationobject": "3",
"operator": "2",
"value": "Database host",
"opstatus": {
"status": "0"
},
"optemplate": [
{
"templateid": "10263"
}
],
"optag": [
{
"tag": "Database",
"value": "PostgreSQL"
}
]
}
]
}
]
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
R¨¦ponse :
Cr¨¦er une collecte de donn¨¦es simple ¨¤ l'aide d'une r¨¨gle LLD script.
Requ¨ºte :
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Script example",
"key_": "custom.script.lldrule",
"hostid": "12345",
"type": 21,
"value_type": 4,
"params": "var request = new CurlHttpRequest();\nreturn request.Post(\"https://postman-echo.com/post\", JSON.parse(value));",
"parameters": [{
"name": "host",
"value": "{HOST.CONN}"
}],
"timeout": "6s",
"delay": "30s"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 2
}
R¨¦ponse :
CDiscoveryRule::create() dans ui/include/classes/api/services/CDiscoveryRule.php.