- discoveryrule.create
- Descripción
- Parámetros
- Valores de retorno
- Ejemplos
- Creando una regla LLD
- Usando un filtro
- Creación de una regla LLD con rutas de macros
- Usando un filtro de expresión personalizado
- Uso de encabezados y campos de consulta personalizados
- Creación de una regla LLD con preprocesamiento
- Creación de una regla LLD con anulaciones
- Crear regla LLD de secuencia de comandos
- Crear regla LLD con un período de tiempo específico para deshabilitar y no eliminar
- Ver también
- Fuente
discoveryrule.create
Descripción
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 Administrador y Superadministrador. Los permisos para llamar al método se pueden revocar en la configuración del rol de usuario. Ver Roles de usuario para más información.
Parámetros
(objeto/matriz) Reglas LLD para crear.
Además de las [propiedades estándar de la regla LLD] (object#lld_rule), 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/matriz | Opciones de preprocesamiento de regla LLD. |
| lld_macro_paths | objeto/matriz | Opciones de regla LLD lld_macro_path. |
| overrides | objeto/matriz | Opciones de los reemplazos de reglas LLD. |
Valores de retorno
(objeto) Devuelve un objeto que contiene los ID de las reglas LLD creadas
bajo la propiedad "itemids". El orden de los ID devueltos coincide con el
orden de las reglas LLD suministradas.
Ejemplos
Creando una regla LLD
Cree una regla LLD del 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:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"27665"
]
},
"id": 1
}
Usando un filtro
Cree una regla LLD con un conjunto de condiciones para filtrar los resultados. Las condiciones se agruparán utilizando el operador lógico "y" .
{
"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"
}
]
}
},
"id": 1
}
Respuesta:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"27665"
]
},
"id": 1
}
Creación de una regla LLD con rutas de macros
{
"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"
}
]
},
"id": 1
}
Respuesta:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"27665"
]
},
"id": 1
}
Usando un filtro de expresión personalizado
Cree una regla LLD con un filtro que utilizará una expresión personalizada para evaluar las condiciones. La regla LLD sólo debe descubrir objetos en los que el valor de macro "{#MACRO1}" cuyo valor coincide con ambas expresiones regulares "regex1" y "regex2", y el valor de "{#MACRO2}" coincide con cualquiera de los dos "regex3" o "regex4". Los ID de fórmula "A", "B", "C" y "D" han sido elegidos arbitrariamente.
{
"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"
}
]
}
},
"id": 1
}
Respuesta:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"27665"
]
},
"id": 1
}
Uso de encabezados y campos de consulta personalizados
Cree una regla LLD con encabezados y campos de consulta personalizados.
{
"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": [
{
"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",
"result": {
"itemids": [
"28336"
]
},
"id": 1
}
Creación de una regla LLD con preprocesamiento
{
"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": ""
}
]
},
"id": 1
}
Respuesta:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"44211"
]
},
"id": 1
}
Creación de una regla LLD con anulaciones
{
"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"
}
]
}
]
}
]
},
"id": 1
}
Respuesta:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"30980"
]
},
"id": 1
}
Crear regla LLD de secuencia de comandos
Cree una recopilación de datos simple utilizando una regla LLD de script.
{
"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 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:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"23865"
]
},
"id": 1
}
Crear regla LLD con un período de tiempo específico para deshabilitar y no eliminar
Cree una regla LLD con un período de tiempo personalizado para deshabilitar la entidad después de que ya no se descubre, con la premisa de que nunca será eliminada.
{
"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:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"46864"
]
},
"id": 1
}
Ver también
-LLD rule filter -LLD macro paths -LLD rule preprocessing
Fuente
CDiscoveryRule::create() en ui/include/classes/api/services/CDiscoveryRule.php.