configuration.importcompare

Opis

array configuration.importcompare(object parameters)

Ta metoda umożliwia porównanie pliku importu z bieżącymi elementami systemu i pokazuje, co zostanie zmienione, jeśli ten plik importu zostanie zaimportowany.

noteclassic Metoda ta jest dostępna dla użytkowników dowolnego typu. Uprawnienia do wywoływania tej metody można cofnąć w ustawieniach roli użytkownika. Więcej informacji można znaleźć w sekcji Role użytkowników. :::

Parametry

(object) Parametry zawierające możliwe do zaimportowania dane oraz reguły określające sposób obsługi tych danych.

Parametr Type Opis
format string Format serializowanego ciągu znaków.

Możliwe wartości:
yaml - YAML;
xml - XML;
json - JSON.

Zachowanie parametru:
- wymagany
source string Serializowany ciąg znaków zawierający dane konfiguracyjne.

Zachowanie parametru:
- wymagany
rules object Reguły określające sposób porównywania nowych i istniejących obiektów.

Użytkownicy typu Admin i User mogą porównywać nowe obiekty tylko z istniejącymi obiektami, do których mają uprawnienia read-only lub read-write permission.

Parametr rules został szczegółowo opisany w poniższej tabeli.

Zachowanie parametru:
- wymagany

Jeśli nie zostaną podane żadne reguły, nie będzie nic do zaktualizowania, a wynik będzie pusty.

Porównanie zostanie wykonane tylko dla grup hostów i szablonów. Wyzwalacze i wykresy będą porównywane tylko dla importowanych szablonów, wszystkie pozostałe zostaną uznane za „nowe”.

Obiekt rules obsługuje następujące parametry.

Parametr Type Opis
discoveryRules object Reguły określające sposób importowania reguł LLD.

Obsługiwane parametry:
createMissing - (boolean) jeśli ustawione na true, nowe reguły LLD zostaną utworzone; domyślnie: false;
updateExisting - (boolean) jeśli ustawione na true, istniejące reguły LLD zostaną zaktualizowane; domyślnie: false;
deleteMissing - (boolean) jeśli ustawione na true, reguły LLD nieobecne w importowanych danych zostaną usunięte z bazy danych; domyślnie: false.
graphs object Reguły określające sposób importowania wykresów.

Obsługiwane parametry:
createMissing - (boolean) jeśli ustawione na true, nowe wykresy zostaną utworzone; domyślnie: false;
updateExisting - (boolean) jeśli ustawione na true, istniejące wykresy zostaną zaktualizowane; domyślnie: false;
deleteMissing - (boolean) jeśli ustawione na true, wykresy nieobecne w importowanych danych zostaną usunięte z bazy danych; domyślnie: false.
host_groups object Reguły określające sposób importowania grup hostów.

Obsługiwane parametry:
createMissing - (boolean) jeśli ustawione na true, nowe grupy hostów zostaną utworzone; domyślnie: false;
updateExisting - (boolean) jeśli ustawione na true, istniejące grupy hostów zostaną zaktualizowane; domyślnie: false.
template_groups object Reguły określające sposób importowania grup szablonów.

Obsługiwane parametry:
createMissing - (boolean) jeśli ustawione na true, nowe grupy szablonów zostaną utworzone; domyślnie: false;
updateExisting - (boolean) jeśli ustawione na true, istniejące grupy szablonów zostaną zaktualizowane; domyślnie: false.
hosts object Reguły określające sposób importowania hostów.

Obsługiwane parametry:
createMissing - (boolean) jeśli ustawione na true, nowe hosty zostaną utworzone; domyślnie: false;
updateExisting - (boolean) jeśli ustawione na true, istniejące hosty zostaną zaktualizowane; domyślnie: false.

Ten parametr nie wpłynie na wynik. Jest dozwolony wyłącznie dla zachowania spójności z configuration.import.
httptests object Reguły określające sposób importowania scenariuszy WWW.

Obsługiwane parametry:
createMissing - (boolean) jeśli ustawione na true, nowe scenariusze WWW zostaną utworzone; domyślnie: false;
updateExisting - (boolean) jeśli ustawione na true, istniejące scenariusze WWW zostaną zaktualizowane; domyślnie: false;
deleteMissing - (boolean) jeśli ustawione na true, scenariusze WWW nieobecne w importowanych danych zostaną usunięte z bazy danych; domyślnie: false.
images object Reguły określające sposób importowania obrazów.

Obsługiwane parametry:
createMissing - (boolean) jeśli ustawione na true, nowe obrazy zostaną utworzone; domyślnie: false;
updateExisting - (boolean) jeśli ustawione na true, istniejące obrazy zostaną zaktualizowane; domyślnie: false.

Ten parametr nie wpłynie na wynik. Jest dozwolony wyłącznie dla zachowania spójności z configuration.import.
items object Reguły określające sposób importowania pozycji.

Obsługiwane parametry:
createMissing - (boolean) jeśli ustawione na true, nowe pozycje zostaną utworzone; domyślnie: false;
updateExisting - (boolean) jeśli ustawione na true, istniejące pozycje zostaną zaktualizowane; domyślnie: false;
deleteMissing - (boolean) jeśli ustawione na true, pozycje nieobecne w importowanych danych zostaną usunięte z bazy danych; domyślnie: false.
maps object Reguły określające sposób importowania map.

Obsługiwane parametry:
createMissing - (boolean) jeśli ustawione na true, nowe mapy zostaną utworzone; domyślnie: false;
updateExisting - (boolean) jeśli ustawione na true, istniejące mapy zostaną zaktualizowane; domyślnie: false.

Ten parametr nie wpłynie na wynik. Jest dozwolony wyłącznie dla zachowania spójności z configuration.import.
mediaTypes object Reguły określające sposób importowania typów mediów.

Obsługiwane parametry:
createMissing - (boolean) jeśli ustawione na true, nowe typy mediów zostaną utworzone; domyślnie: false;
updateExisting - (boolean) jeśli ustawione na true, istniejące typy mediów zostaną zaktualizowane; domyślnie: false.

Ten parametr nie wpłynie na wynik. Jest dozwolony wyłącznie dla zachowania spójności z configuration.import.
templateLinkage object Reguły określające sposób importowania powiązań szablonów.

Obsługiwane parametry:
createMissing - (boolean) jeśli ustawione na true, szablony, które nie są powiązane z importowanym hostem lub szablonem, ale są obecne w importowanych danych, zostaną powiązane; domyślnie: false;
deleteMissing - (boolean) jeśli ustawione na true, szablony powiązane z importowanym hostem lub szablonem, ale nieobecne w importowanych danych, zostaną odłączone bez usuwania encji (pozycji, wyzwalaczy itp.) dziedziczonych z odłączonych szablonów; domyślnie: false.
templates object Reguły określające sposób importowania szablonów.

Obsługiwane parametry:
createMissing - (boolean) jeśli ustawione na true, nowe szablony zostaną utworzone; domyślnie: false;
updateExisting - (boolean) jeśli ustawione na true, istniejące szablony zostaną zaktualizowane; domyślnie: false.
templateDashboards object Reguły określające sposób importowania pulpitów szablonów.

Obsługiwane parametry:
createMissing - (boolean) jeśli ustawione na true, nowe pulpity szablonów zostaną utworzone; domyślnie: false;
updateExisting - (boolean) jeśli ustawione na true, istniejące pulpity szablonów zostaną zaktualizowane; domyślnie: false;
deleteMissing - (boolean) jeśli ustawione na true, pulpity szablonów nieobecne w importowanych danych zostaną usunięte z bazy danych; domyślnie: false.
triggers object Reguły określające sposób importowania wyzwalaczy.

Obsługiwane parametry:
createMissing - (boolean) jeśli ustawione na true, nowe wyzwalacze zostaną utworzone; domyślnie: false;
updateExisting - (boolean) jeśli ustawione na true, istniejące wyzwalacze zostaną zaktualizowane; domyślnie: false;
deleteMissing - (boolean) jeśli ustawione na true, wyzwalacze nieobecne w importowanych danych zostaną usunięte z bazy danych; domyślnie: false.
valueMaps object Reguły określające sposób importowania map wartości hosta lub szablonu.

Obsługiwane parametry:
createMissing - (boolean) jeśli ustawione na true, nowe mapy wartości zostaną utworzone; domyślnie: false;
updateExisting - (boolean) jeśli ustawione na true, istniejące mapy wartości zostaną zaktualizowane; domyślnie: false;
deleteMissing - (boolean) jeśli ustawione na true, mapy wartości nieobecne w importowanych danych zostaną usunięte z bazy danych; domyślnie: false.

Zwracane wartości

(array) Zwraca tablicę ze zmianamy w konfiguracji, które zostaną wprowadzone.

Przykłady

Porównanie importu szablonu

Porównaj szablon zawarty w ciągu XML z bieżącymi elementami systemu i pokaż, co zostanie zmienione, jeśli ten szablon zostanie zaimportowany.

Żądanie:

{
    "jsonrpc": "2.0",
    "method": "configuration.importcompare",
    "params": {
        "format": "xml",
        "rules": {
            "discoveryRules": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "graphs": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "host_groups": {
                "createMissing": true,
                "updateExisting": true
            },
            "template_groups": {
                "createMissing": true,
                "updateExisting": true
            },
            "httptests": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "items": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "templateLinkage": {
                "createMissing": true,
                "deleteMissing": true
            },
            "templates": {
                "createMissing": true,
                "updateExisting": true
            },
            "templateDashboards": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "triggers": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "valueMaps": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            }
        },
        "source": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<zabbix_export><version>8.0</version><template_groups><template_group><uuid>7df96b18c230490a9a0a9e2307226338</uuid><name>Templates</name></template_group></template_groups><templates><template><uuid>5aef0444a82a4d8cb7a95dc4c0c85330</uuid><template>New template</template><name>New template</name><groups><group><name>Templates</name></group></groups><items><item><uuid>7f1e6f1e48aa4a128e5b6a958a5d11c3</uuid><name>Zabbix agent ping</name><key>agent.ping</key><delay>3m</delay></item><item><uuid>77ba228662be4570830aa3c503fcdc03</uuid><name>Apache server uptime</name><type>DEPENDENT</type><key>apache.server.uptime</key><delay>0</delay><trends>0</trends><value_type>TEXT</value_type><preprocessing><step><type>REGEX</type><parameters><parameter>&lt;dt&gt;Server uptime: (.*)&lt;/dt&gt;</parameter><parameter>\\1</parameter></parameters></step></preprocessing><master_item><key>web.page.get[127.0.0.1/server-status]</key></master_item></item><item><uuid>648006da5971424ead0c47ddbbf1ea2e</uuid><name>CPU utilization</name><key>system.cpu.util</key><value_type>FLOAT</value_type><units>%</units><triggers><trigger><uuid>736225012c534ec480c2a66a91322ce0</uuid><expression>avg(/New template/system.cpu.util,3m)&gt;70</expression><name>CPU utilization too high on 'New host' for 3 minutes</name><priority>WARNING</priority></trigger></triggers></item><item><uuid>590efe5731254f089265c76ff9320726</uuid><name>Apache server status</name><key>web.page.get[127.0.0.1/server-status]</key><trends>0</trends><value_type>TEXT</value_type></item></items><valuemaps><valuemap><uuid>8fd5814c45d44a00a15ac6eaae1f3946</uuid><name>Zabbix agent ping</name><mappings><mapping><value>1</value><newvalue>Available</newvalue></mapping><mapping><value>0</value><newvalue>Not available</newvalue></mapping></mappings></valuemap></valuemaps></template></templates></zabbix_export>\n"
    },
    "id": 1
}

Odpowiedź:

{
    "jsonrpc": "2.0",
    "result": {
        "templates": {
            "updated": [
                {
                    "before": {
                        "uuid": "5aef0444a82a4d8cb7a95dc4c0c85330",
                        "template": "New template",
                        "name": "New template",
                        "groups": [
                            {
                                "name": "Templates"
                            }
                        ]
                    },
                    "after": {
                        "uuid": "5aef0444a82a4d8cb7a95dc4c0c85330",
                        "template": "New template",
                        "name": "New template",
                        "groups": [
                            {
                                "name": "Templates"
                            }
                        ]
                    },
                    "items": {
                        "added": [
                            {
                                "after": {
                                    "uuid": "648006da5971424ead0c47ddbbf1ea2e",
                                    "name": "CPU utilization",
                                    "key": "system.cpu.util",
                                    "value_type": "FLOAT",
                                    "units": "%"
                                },
                                "triggers": {
                                    "added": [
                                        {
                                            "after": {
                                                "uuid": "736225012c534ec480c2a66a91322ce0",
                                                "expression": "avg(/New template/system.cpu.util,3m)>70",
                                                "name": "CPU utilization too high on 'New host' for 3 minutes",
                                                "priority": "WARNING"
                                            }
                                        }
                                    ]
                                }
                            }
                        ],
                        "removed": [
                            {
                                "before": {
                                    "uuid": "6805d4c39a624a8bab2cc8ab63df1ab3",
                                    "name": "CPU load",
                                    "key": "system.cpu.load",
                                    "value_type": "FLOAT"
                                },
                                "triggers": {
                                    "removed": [
                                        {
                                            "before": {
                                                "uuid": "ab4c2526c2bc42e48a633082255ebcb3",
                                                "expression": "avg(/New template/system.cpu.load,3m)>2",
                                                "name": "CPU load too high on 'New host' for 3 minutes",
                                                "priority": "WARNING"
                                            }
                                        }
                                    ]
                                }
                            }
                        ],
                        "updated": [
                            {
                                "before": {
                                    "uuid": "7f1e6f1e48aa4a128e5b6a958a5d11c3",
                                    "name": "Zabbix agent ping",
                                    "key": "agent.ping"
                                },
                                "after": {
                                    "uuid": "7f1e6f1e48aa4a128e5b6a958a5d11c3",
                                    "name": "Zabbix agent ping",
                                    "key": "agent.ping",
                                    "delay": "3m"
                                }
                            }
                        ]
                    }
                }
            ]
        }
    },
    "id": 1
}

Źródło

CConfiguration::importcompare() w ui/include/classes/api/services/CConfiguration.php.