object discoveryrule.create(object/array lldRules)
Este método permite criar novas regras de LLD.
Este método está disponível apenas para os tipos de usuário Admin e Super admin. As permissões para chamar o método podem ser revogadas nas configurações de função do usuário. Veja Funções de usuário para mais informações.
(object/array) Regras de LLD a serem criadas.
Além das propriedades padrão da regra de LLD, o método aceita os seguintes parâmetros.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| filter | object | Filtro da regra de LLD para a regra de LLD. |
| preprocessing | object/array | Opções de pré-processamento da regra de LLD. |
| lld_macro_paths | object/array | Opções de lld_macro_path da regra de LLD. |
| overrides | object/array | Opções de substituições da regra de LLD. |
(object) Retorna um objeto contendo os IDs das regras LLD criadas na propriedade itemids. A ordem dos IDs retornados corresponde à ordem das regras LLD passadas.
Crie uma regra LLD do agent Zabbix para descobrir sistemas de arquivos montados. Os items descobertos serão atualizados a 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 }Resposta:
Crie uma regra LLD com um conjunto de condições para filtrar os resultados. As condições serão agrupadas usando o operador lógico "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 }Resposta:
{ "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 }Resposta:
Crie uma regra de LLD com um filtro que usará uma expressão personalizada para avaliar as condições. A regra de LLD deve descobrir apenas objetos cujo valor da macro "{#MACRO1}" corresponda tanto à expressão regular "regex1" quanto à "regex2", e o valor de "{#MACRO2}" corresponda a "regex3" ou "regex4". Os IDs de fórmula "A", "B", "C" e "D" foram escolhidos 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 }Resposta:
Crie uma regra de LLD com campos de consulta personalizados e cabeçalhos.
{ "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 }Resposta:
{ "jsonrpc": "2.0", "method": "discoveryrule.create", "params": { "name": "Discovery rule with 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 }Resposta:
{ "jsonrpc": "2.0", "method": "discoveryrule.create", "params": { "name": "Descobrir host de banco de dados", "key_": "lld.with.overrides", "hostid": "10001", "type": 0, "delay": "60s", "interfaceid": "1155", "overrides": [ { "name": "Descobrir host 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": "Host de banco de dados", "opstatus": { "status": "0" }, "optemplate": [ { "templateid": "10170" } ], "optag": [ { "tag": "database", "value": "mysql" } ] } ] }, { "name": "Descobrir host PostgreSQL", "step": "2", "stop": "1", "filter": { "evaltype": "0", "conditions": [ { "macro": "{#UNIT.NAME}", "operator": "8", "value": "^postgresql\\.service$" } ] }, "operations": [ { "operationobject": "3", "operator": "2", "value": "Host de banco de dados", "opstatus": { "status": "0" }, "optemplate": [ { "templateid": "10263" } ], "optag": [ { "tag": "database", "value": "postgresql" } ] } ] } ] }, "id": 1 }Resposta:
Crie uma coleta de dados simples usando uma regra de LLD de 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 }Resposta:
Crie uma regra de LLD com período de tempo personalizado para desativar a entidade após ela não ser mais descoberta, com a configuração de que ela nunca será excluída.
{ "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 }Resposta:
CDiscoveryRule::create() in ui/include/classes/api/services/CDiscoveryRule.php.