discoveryrule.get

Opis

integer/array discoveryrule.get(object parameters)

Ta metoda umożliwia pobranie reguł LLD zgodnie z podanymi parametrami.

Ta metoda jest dostępna dla użytkowników dowolnego typu. Uprawnienia do wywołania tej metody mogą zostać cofnięte w ustawieniach roli użytkownika. Więcej informacji można znaleźć w sekcji User roles.

Parametry

(object) Parametry definiujące żądane dane wyjściowe.

Metoda obsługuje następujące parametry.

Parametr Typ Opis
itemids ID/array Zwraca tylko reguły LLD o podanych identyfikatorach.
groupids ID/array Zwraca tylko reguły LLD należące do hostów z podanych grup.
hostids ID/array Zwraca tylko reguły LLD należące do podanych hostów.
inherited boolean Jeśli ustawiono true, zwraca tylko reguły LLD odziedziczone z szablonu.
interfaceids ID/array Zwraca tylko reguły LLD używające podanych interfejsów hosta.
monitored boolean Jeśli ustawiono true, zwraca tylko włączone reguły LLD należące do monitorowanych hostów.
templated boolean Jeśli ustawiono true, zwraca tylko reguły LLD należące do szablonów.
templateids ID/array Zwraca tylko reguły LLD należące do podanych szablonów.
selectDiscoveryData query Zwraca właściwość discoveryData z danymi obiektu wykrywania reguły LLD. Obiekt wykrywania reguły LLD łączy wykrytą regułę LLD z prototypem reguły LLD, z którego została wykryta.
selectDiscoveryRulePrototypes query Zwraca właściwość discoveryRulePrototypes z prototypami reguł LLD należącymi do reguły LLD.

Obsługuje count.
selectFilter query Zwraca właściwość filter z danymi filtra używanego przez regułę LLD.
selectGraphs query Zwraca właściwość graphs z prototypami wykresów należącymi do reguły LLD.

Obsługuje count.
selectHostPrototypes query Zwraca właściwość hostPrototypes z prototypami hostów należącymi do reguły LLD.

Obsługuje count.
selectHosts query Zwraca właściwość hosts z tablicą hostów, do których należy reguła LLD.
selectItems query Zwraca właściwość items z prototypami pozycji należącymi do reguły LLD.

Obsługuje count.
selectTriggers query Zwraca właściwość triggers z prototypami wyzwalaczy należącymi do reguły LLD.

Obsługuje count.
selectLLDMacroPaths query Zwraca właściwość lld_macro_paths z listą makr LLD i ścieżek do wartości przypisanych do każdego odpowiadającego makra.
selectPreprocessing query Zwraca właściwość preprocessing z opcjami przetwarzania wstępnego reguły LLD.
selectOverrides query Zwraca właściwość lld_rule_overrides z listą filtrów nadpisywania, warunków i operacji wykonywanych na obiektach prototypów.
filter object Zwraca tylko te wyniki, które dokładnie odpowiadają podanemu filtrowi.

Akceptuje obiekt, w którym kluczami są nazwy właściwości, a wartościami są pojedyncza wartość lub tablica wartości do dopasowania.

Nie obsługuje właściwości typu danych text data type.

Obsługuje dodatkowe właściwości:
host - nazwa techniczna hosta, do którego należy reguła LLD.
limitSelects integer Ogranicza liczbę rekordów zwracanych przez podzapytania.

Dotyczy następujących podzapytań: selectItems, selectGraphs, selectTriggers.
sortfield string/array Sortuje wynik według podanych właściwości.

Możliwe wartości: itemid, name, key_, delay, type, status.
countOutput boolean Te parametry opisano w komentarzu referencyjnym.
editable boolean
excludeSearch boolean
limit integer
output query
preservekeys boolean
search object
searchByAny boolean
searchWildcardsEnabled boolean
sortorder string/array
startSearch boolean

Zwracane wartości

(integer/array) Zwraca:

  • tablicę obiektów
  • liczbę pobranych obiektów, jeśli został użyty parametr countOutput.

Przykłady

Pobieranie reguł wykrywania z hosta

Pobierz wszystkie reguły wykrywania dla określonego ID hosta.

Żądanie:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.get",
    "params": {
        "output": "extend",
        "hostids": "10202"
    },
    "id": 1
}

Odpowiedź:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "itemid": "27425",
            "type": "0",
            "snmp_oid": "",
            "hostid": "10202",
            "name": "Wykrywanie interfejsów sieciowych",
            "key_": "net.if.discovery",
            "delay": "1h",
            "status": "0",
            "trapper_hosts": "",
            "templateid": "22444",
            "valuemapid": "0",
            "params": "",
            "ipmi_sensor": "",
            "authtype": "0",
            "username": "",
            "password": "",
            "publickey": "",
            "privatekey": "",
            "flags": "1",
            "interfaceid": "119",
            "description": "Wykrywanie interfejsów sieciowych zgodnie z definicją w globalnym wyrażeniu regularnym \"Network interfaces for discovery\".",
            "lifetime": "30d",
            "jmx_endpoint": "",
            "master_itemid": "0",
            "timeout": "",
            "url": "",
            "query_fields": [],
            "posts": "",
            "status_codes": "200",
            "follow_redirects": "1",
            "post_type": "0",
            "http_proxy": "",
            "headers": [],
            "retrieve_mode": "0",
            "request_method": "0",
            "output_format": "0",
            "ssl_cert_file": "",
            "ssl_key_file": "",
            "ssl_key_password": "",
            "verify_peer": "0",
            "verify_host": "0",
            "allow_traps": "0",
            "uuid": "",
            "lifetime_type": "0",
            "enabled_lifetime_type": "2",
            "enabled_lifetime": "0",
            "state": "0",
            "error": "",
            "parameters": []
        },
        {
            "itemid": "27426",
            "type": "0",
            "snmp_oid": "",
            "hostid": "10202",
            "name": "Wykrywanie zamontowanych systemów plików",
            "key_": "vfs.fs.discovery",
            "delay": "1h",
            "status": "0",
            "trapper_hosts": "",
            "templateid": "22450",
            "valuemapid": "0",
            "params": "",
            "ipmi_sensor": "",
            "authtype": "0",
            "username": "",
            "password": "",
            "publickey": "",
            "privatekey": "",
            "flags": "1",
            "interfaceid": "119",
            "description": "Wykrywanie systemów plików różnych typów zgodnie z definicją w globalnym wyrażeniu regularnym \"File systems for discovery\".",
            "lifetime": "30d",
            "jmx_endpoint": "",
            "master_itemid": "0",
            "timeout": "",
            "url": "",
            "query_fields": [],
            "posts": "",
            "status_codes": "200",
            "follow_redirects": "1",
            "post_type": "0",
            "http_proxy": "",
            "headers": [],
            "retrieve_mode": "0",
            "request_method": "0",
            "output_format": "0",
            "ssl_cert_file": "",
            "ssl_key_file": "",
            "ssl_key_password": "",
            "verify_peer": "0",
            "verify_host": "0",
            "allow_traps": "0",
            "uuid": "",
            "lifetime_type": "0",
            "enabled_lifetime_type": "2",
            "enabled_lifetime": "0",
            "state": "0",
            "error": "",
            "parameters": []
        }
    ],
    "id": 1
}

Pobieranie warunków filtra

Pobierz nazwę reguły LLD „24681” oraz jej warunki filtra. Filtr używa typu obliczania „and”, więc właściwość formula jest pusta, a eval_formula jest generowana automatycznie.

Żądanie:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.get",
    "params": {
        "output": ["name"],
        "selectFilter": "extend",
        "itemids": ["24681"]
    },
    "id": 1
}

Odpowiedź:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "itemid": "24681",
            "name": "Filtered LLD rule",
            "filter": {
                "evaltype": "1",
                "formula": "",
                "conditions": [
                    {
                        "macro": "{#MACRO1}",
                        "value": "@regex1",
                        "operator": "8",
                        "formulaid": "A"
                    },
                    {
                        "macro": "{#MACRO2}",
                        "value": "@regex2",
                        "operator": "9",
                        "formulaid": "B"
                    },
                    {
                        "macro": "{#MACRO3}",
                        "value": "",
                        "operator": "12",
                        "formulaid": "C"
                    },
                    {
                        "macro": "{#MACRO4}",
                        "value": "",
                        "operator": "13",
                        "formulaid": "D"
                    }
                ],
                "eval_formula": "A and B and C and D"
            }
        }
    ],
    "id": 1
}

Pobieranie reguły LLD według URL

Pobierz regułę LLD dla hosta na podstawie wartości pola URL reguły. Obsługiwane jest tylko dokładne dopasowanie ciągu URL zdefiniowanego dla reguły LLD.

Żądanie:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.get",
    "params": {
        "hostids": "10257",
        "filter": {
            "type": 19,
            "url": "http://127.0.0.1/discoverer.php"
        }
    },
    "id": 1
}

Odpowiedź:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "itemid": "28336",
            "type": "19",
            "snmp_oid": "",
            "hostid": "10257",
            "name": "API HTTP agent",
            "key_": "api_discovery_rule",
            "delay": "5s",
            "status": "0",
            "trapper_hosts": "",
            "templateid": "0",
            "valuemapid": "0",
            "params": "",
            "ipmi_sensor": "",
            "authtype": "0",
            "username": "",
            "password": "",
            "publickey": "",
            "privatekey": "",
            "flags": "1",
            "interfaceid": "5",
            "description": "",
            "lifetime": "30d",
            "jmx_endpoint": "",
            "master_itemid": "0",
            "timeout": "",
            "url": "http://127.0.0.1/discoverer.php",
            "query_fields": [
                {
                    "name": "mode",
                    "value": "json"
                },
                {
                    "name": "elements",
                    "value": "2"
                }
            ],
            "posts": "",
            "status_codes": "200",
            "follow_redirects": "1",
            "post_type": "0",
            "http_proxy": "",
            "headers": [
                {
                    "name" : "X-Type",
                    "value": "api"
                },
                {
                    "name": "Authorization",
                    "value": "Bearer mF_A.B5f-2.1JcM"
                }
            ],
            "retrieve_mode": "0",
            "request_method": "1",
            "output_format": "0",
            "ssl_cert_file": "",
            "ssl_key_file": "",
            "ssl_key_password": "",
            "verify_peer": "0",
            "verify_host": "0",
            "allow_traps": "0",
            "uuid": "",
            "lifetime_type": "0",
            "enabled_lifetime_type": "2",
            "enabled_lifetime": "0",
            "state": "0",
            "error": "",
            "parameters": []
        }
    ],
    "id": 1
}

Pobieranie reguły LLD z nadpisaniami

Pobierz jedną regułę LLD, która ma różne ustawienia nadpisywania.

Żądanie:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.get",
    "params": {
        "output": ["name"],
        "itemids": "30980",
        "selectOverrides": ["name", "step", "stop", "filter", "operations"]
    },
    "id": 1
}

Odpowiedź:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "name": "Discover database host",
            "overrides": [
                {
                    "name": "Discover MySQL host",
                    "step": "1",
                    "stop": "1",
                    "filter": {
                        "evaltype": "2",
                        "formula": "",
                        "conditions": [
                            {
                                "macro": "{#UNIT.NAME}",
                                "operator": "8",
                                "value": "^mysqld\\.service$",
                                "formulaid": "A"
                            },
                            {
                                "macro": "{#UNIT.NAME}",
                                "operator": "8",
                                "value": "^mariadb\\.service$",
                                "formulaid": "B"
                            }
                        ],
                        "eval_formula": "A or B"
                    },
                    "operations": [
                        {
                            "operationobject": "3",
                            "operator": "2",
                            "value": "Database host",
                            "opstatus": {
                                "status": "0"
                            },
                            "optag": [
                                {
                                    "tag": "database",
                                    "value": "mysql"
                                }
                            ],
                            "optemplate": [
                                {
                                    "templateid": "10170"
                                }
                            ]
                        }
                    ]
                },
                {
                    "name": "Discover PostgreSQL host",
                    "step": "2",
                    "stop": "1",
                    "filter": {
                        "evaltype": "0",
                        "formula": "",
                        "conditions": [
                            {
                                "macro": "{#UNIT.NAME}",
                                "operator": "8",
                                "value": "^postgresql\\.service$",
                                "formulaid": "A"
                            }
                        ],
                        "eval_formula": "A"
                    },
                    "operations": [
                        {
                            "operationobject": "3",
                            "operator": "2",
                            "value": "Database host",
                            "opstatus": {
                                "status": "0"
                            },
                            "optag": [
                                {
                                    "tag": "database",
                                    "value": "postgresql"
                                }
                            ],
                            "optemplate": [
                                {
                                    "templateid": "10263"
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ],
    "id": 1
}

Zobacz także

Źródło

CDiscoveryRule::get() w ui/include/classes/api/services/CDiscoveryRule.php.