object discoveryrule.create(object/array lldRules)
Este método permite crear nuevas reglas LLD.
Este método solo está disponible para los tipos de usuario Admin y Super admin. Los permisos para llamar al método pueden ser revocados en la configuración de roles de usuario. Consulte Roles de usuario para más información.
(objeto/array)
Reglas LLD a crear.
Además de las propiedades estándar de la regla LLD, el método acepta los siguientes parámetros.
Parámetro | Tipo | Descripción |
---|---|---|
filter | objeto | Filtro de regla LLD para la regla LLD. |
preprocessing | objeto/array | Opciones de preprocesamiento de la regla LLD. |
lld_macro_paths | objeto/array | Opciones de lld_macro_path de la regla LLD. |
overrides | objeto/array | Opciones de anulaciones de la regla LLD. |
(object)
Devuelve un objeto que contiene los IDs de las reglas LLD creadas bajo la propiedad itemids
. El orden de los IDs devueltos coincide con el orden de las reglas LLD proporcionadas.
Cree una regla LLD de agente Zabbix para descubrir sistemas de archivos montados. Las métricas descubiertas se actualizarán cada 30 segundos.
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Mounted filesystem discovery",
"key_": "vfs.fs.discovery",
"hostid": "10197",
"type": 0,
"interfaceid": "112",
"delay": "30s"
},
"id": 1
}
Respuesta:
Cree una regla LLD con un conjunto de condiciones para filtrar los resultados. Las condiciones se agruparán utilizando el operador lógico "and".
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Regla LLD filtrada",
"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"
}
]
}
},
"id": 1
}
Respuesta:
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Regla LLD con rutas de macro LLD",
"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"
}
]
},
"id": 1
}
Respuesta:
Cree una regla LLD con un filtro que utilice una expresión personalizada para evaluar las condiciones. La regla LLD solo debe descubrir objetos cuyo valor de macro "{#MACRO1}" coincida tanto con la expresión regular "regex1" como con "regex2", y el valor de "{#MACRO2}" coincida con "regex3" o "regex4". Los IDs de fórmula "A", "B", "C" y "D" se han elegido arbitrariamente.
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Regla LLD filtrada",
"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"
}
]
}
},
"id": 1
}
Respuesta:
Cree una regla LLD con campos de consulta y cabeceras personalizadas.
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"hostid": "10257",
"interfaceid": "5",
"type": 19,
"name": "API HTTP agent",
"key_": "api_discovery_rule",
"delay": "5s",
"url": "http://127.0.0.1?discoverer.php",
"query_fields": [
{
"name": "mode",
"value": "json"
},
{
"name": "elements",
"value": "2"
}
],
"headers": [
{
"name": "X-Type",
"value": "api"
},
{
"name": "Authorization",
"value": "Bearer mF_A.B5f-2.1JcM"
}
],
"allow_traps": 1,
"trapper_hosts": "127.0.0.1"
},
"id": 1
}
Respuesta:
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Regla de descubrimiento con preprocesamiento",
"key_": "lld.with.preprocessing",
"hostid": "10001",
"ruleid": "27665",
"type": 0,
"delay": "60s",
"interfaceid": "1155",
"preprocessing": [
{
"type": 20,
"params": "20",
"error_handler": 0,
"error_handler_params": ""
}
]
},
"id": 1
}
Respuesta:
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Descubrir equipo de base de datos",
"key_": "lld.with.overrides",
"hostid": "10001",
"type": 0,
"delay": "60s",
"interfaceid": "1155",
"overrides": [
{
"name": "Descubrir equipo MySQL",
"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": "Descubrir equipo PostgreSQL",
"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"
}
]
}
]
}
]
},
"id": 1
}
Respuesta:
Cree una recopilación de datos simple utilizando una regla LLD de script.
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Ejemplo de script",
"key_": "custom.script.lldrule",
"hostid": "12345",
"type": 21,
"params": "var request = new HttpRequest();\nreturn request.post(\"https://postman-echo.com/post\", JSON.parse(value));",
"parameters": [{
"name": "host",
"value": "{HOST.CONN}"
}],
"timeout": "6s",
"delay": "30s"
},
"id": 1
}
Respuesta:
Cree una regla LLD con un período de tiempo personalizado para deshabilitar la entidad después de que ya no se descubra, con la configuración de que nunca se eliminará.
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "lld disable after 1h",
"key_": "lld.disable",
"hostid": "10001",
"type": 2,
"lifetime_type": 1,
"enabled_lifetime_type": 0,
"enabled_lifetime": "1h"
},
"id": 1
}
Respuesta:
CDiscoveryRule::create() en ui/include/classes/api/services/CDiscoveryRule.php.