- discoveryrule.create
- Descrizione
- Parametri
- Valori restituiti
- Esempi
- Creazione di una regola LLD
- Utilizzo di un filtro
- Creazione di una regola LLD con percorsi macro
- Utilizzo di un filtro di espressione personalizzato
- Utilizzo di campi di query e header personalizzati
- Creazione di una regola LLD con preprocessing
- Creazione di una regola LLD con override
- Creare una regola LLD script
- Creare una regola LLD con un periodo di tempo specificato per la disabilitazione e senza eliminazione
- Vedi anche
- Fonte
discoveryrule.create
Descrizione
object discoveryrule.create(object/array lldRules)
Questo metodo consente di creare nuove regole LLD.
Questo metodo è disponibile solo per i tipi di utente Admin e Super admin. Le autorizzazioni per chiamare il metodo possono essere revocate nelle impostazioni del ruolo utente. Per ulteriori informazioni, vedere Ruoli utente.
Parametri
(object/array) Regole LLD da creare.
Oltre alle proprietà standard delle regole LLD, il metodo accetta i seguenti parametri.
| Parametro | Type | Descrizione |
|---|---|---|
| filter | object | Filtro della regola LLD per la regola LLD. |
| preprocessing | object/array | Opzioni di preprocessing della regola LLD. |
| lld_macro_paths | object/array | Opzioni lld_macro_path della regola LLD. |
| overrides | object/array | Opzioni di override della regola LLD. |
Valori restituiti
(object) Restituisce un oggetto contenente gli ID delle regole LLD create
sotto la proprietà itemids. L'ordine degli ID restituiti corrisponde all'ordine delle regole LLD approvate.
Esempi
Creazione di una regola LLD
Creare una regola LLD di Zabbix agent per individuare i file system montati. Gli item individuati verranno aggiornati ogni 30 secondi.
{
"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
}
Risposta:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"27665"
]
},
"id": 1
}
Utilizzo di un filtro
Creare una regola LLD con un insieme di condizioni in base alle quali filtrare i risultati. Le condizioni verranno raggruppate utilizzando l'operatore logico "and".
{
"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
}
Risposta:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"27665"
]
},
"id": 1
}
Creazione di una regola LLD con percorsi macro
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Regola LLD con percorsi 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
}
Risposta:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"27665"
]
},
"id": 1
}
Utilizzo di un filtro di espressione personalizzato
Creare una regola LLD con un filtro che utilizzi un'espressione personalizzata per valutare le condizioni. La regola LLD deve individuare solo gli oggetti per i quali il valore della macro "{#MACRO1}" corrisponde a entrambe le espressioni regolari "regex1" e "regex2", e il valore di "{#MACRO2}" corrisponde a "regex3" oppure "regex4". Gli ID formula "A", "B", "C" e "D" sono stati scelti 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
}
Risposta:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"27665"
]
},
"id": 1
}
Utilizzo di campi di query e header personalizzati
Creare una regola LLD con campi di query e header personalizzati.
{
"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
}
Risposta:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"28336"
]
},
"id": 1
}
Creazione di una regola LLD con preprocessing
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Regola di discovery con preprocessing",
"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
}
Risposta:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"44211"
]
},
"id": 1
}
Creazione di una regola LLD con override
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Discover database host",
"key_": "lld.with.overrides",
"hostid": "10001",
"type": 0,
"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
}
Risposta:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"30980"
]
},
"id": 1
}
Creare una regola LLD script
Creare una semplice raccolta dati utilizzando una regola LLD script.
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Script example",
"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
}
Risposta:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"23865"
]
},
"id": 1
}
Creare una regola LLD con un periodo di tempo specificato per la disabilitazione e senza eliminazione
Creare una regola LLD con un periodo di tempo personalizzato per disabilitare l'entità dopo che non viene più rilevata, con l'impostazione che non verrà mai eliminata.
{
"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
}
Risposta:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"46864"
]
},
"id": 1
}
Vedi anche
Fonte
CDiscoveryRule::create() in ui/include/classes/api/services/CDiscoveryRule.php.