configuration.importcompare

Beschreibung

array configuration.importcompare(object parameters)

Diese Methode erlaubt es, die Importdatei mit den aktuellen Systemelementen zu vergleichen und zeigt, was geändert wird, wenn diese Importdatei importiert wird.

Diese Methode ist für Benutzer jeden Typs verfügbar. Die Berechtigung zum Aufrufen der Methode kann in den Benutzerrolleneinstellungen entzogen werden. Pürfen Sie die Benutzerrollen für weitere Informationen.

Parameter

(object) Parameter, die die möglichen zu importierenden Daten und Regeln dafür enthalten, wie die Daten verarbeitet werden sollen.

Parameter Type Beschreibung
format string Format der serialisierten Zeichenkette.

Mögliche Werte:
yaml - YAML;
xml - XML;
json - JSON.

Parameter behavior:
- required
source string Serialisierte Zeichenkette, die die Konfigurationsdaten enthält.

Parameter behavior:
- required
rules object Regeln dafür, wie neue und bestehende Objekte verglichen werden sollen.

Benutzer vom Typ Admin und User dürfen neue Objekte nur mit bestehenden Objekten vergleichen, für die sie eine Berechtigung vom Typ read-only oder read-write haben.

Der Parameter rules wird in der folgenden Tabelle ausführlich beschrieben.

Parameter behavior:
- required
returnMissingObjects boolean Legt fest, ob das Antwortobjekt Informationen über fehlende Objekte enthalten soll; Standard: false.

Wenn keine Regeln angegeben werden, gibt es nichts zu aktualisieren und das Ergebnis ist leer.

Der Vergleich wird nur für Host-Gruppen und Vorlagen durchgeführt. Auslöser und Diagramme werden nur für importierte Vorlagen verglichen, alle anderen werden als „neu“ betrachtet.

Das Objekt rules unterstützt die folgenden Parameter.

Parameter Type Beschreibung
dashboards object Regeln dafür, wie Dashboards importiert werden.

Unterstützte Parameter:
createMissing - (boolean) wenn auf true gesetzt, werden neue Dashboards erstellt; Standard: false;
updateExisting - (boolean) wenn auf true gesetzt und ein bestimmtes importierbares Dashboard im System vorhanden ist, wird es vollständig aktualisiert. Seiten und Widgets werden vollständig durch die neuen ersetzt; Standard: false.
discoveryRules object Regeln dafür, wie LLD-Regeln importiert werden.

Unterstützte Parameter:
createMissing - (boolean) wenn auf true gesetzt, werden neue LLD-Regeln erstellt; Standard: false;
updateExisting - (boolean) wenn auf true gesetzt, werden bestehende LLD-Regeln aktualisiert; Standard: false;
deleteMissing - (boolean) wenn auf true gesetzt, werden LLD-Regeln, die in den importierten Daten nicht vorhanden sind, aus der Datenbank gelöscht; Standard: false.
graphs object Regeln dafür, wie Diagramme importiert werden.

Unterstützte Parameter:
createMissing - (boolean) wenn auf true gesetzt, werden neue Diagramme erstellt; Standard: false;
updateExisting - (boolean) wenn auf true gesetzt, werden bestehende Diagramme aktualisiert; Standard: false;
deleteMissing - (boolean) wenn auf true gesetzt, werden Diagramme, die in den importierten Daten nicht vorhanden sind, aus der Datenbank gelöscht; Standard: false.
host_groups object Regeln dafür, wie Host-Gruppen importiert werden.

Unterstützte Parameter:
createMissing - (boolean) wenn auf true gesetzt, werden neue Host-Gruppen erstellt; Standard: false;
updateExisting - (boolean) wenn auf true gesetzt, werden bestehende Host-Gruppen aktualisiert; Standard: false.
template_groups object Regeln dafür, wie Vorlagengruppen importiert werden.

Unterstützte Parameter:
createMissing - (boolean) wenn auf true gesetzt, werden neue Vorlagengruppen erstellt; Standard: false;
updateExisting - (boolean) wenn auf true gesetzt, werden bestehende Vorlagengruppen aktualisiert; Standard: false.
hosts object Regeln dafür, wie Hosts importiert werden.

Unterstützte Parameter:
createMissing - (boolean) wenn auf true gesetzt, werden neue Hosts erstellt; Standard: false;
updateExisting - (boolean) wenn auf true gesetzt, werden bestehende Hosts aktualisiert; Standard: false.

Dieser Parameter bewirkt keinen Unterschied in der Ausgabe. Er ist nur aus Konsistenzgründen mit configuration.import zulässig.
httptests object Regeln dafür, wie Webszenarien importiert werden.

Unterstützte Parameter:
createMissing - (boolean) wenn auf true gesetzt, werden neue Webszenarien erstellt; Standard: false;
updateExisting - (boolean) wenn auf true gesetzt, werden bestehende Webszenarien aktualisiert; Standard: false;
deleteMissing - (boolean) wenn auf true gesetzt, werden Webszenarien, die in den importierten Daten nicht vorhanden sind, aus der Datenbank gelöscht; Standard: false.
images object Regeln dafür, wie Bilder importiert werden.

Unterstützte Parameter:
createMissing - (boolean) wenn auf true gesetzt, werden neue Bilder erstellt; Standard: false;
updateExisting - (boolean) wenn auf true gesetzt, werden bestehende Bilder aktualisiert; Standard: false.

Dieser Parameter bewirkt keinen Unterschied in der Ausgabe. Er ist nur aus Konsistenzgründen mit configuration.import zulässig.
items object Regeln dafür, wie Datenpunkte importiert werden.

Unterstützte Parameter:
createMissing - (boolean) wenn auf true gesetzt, werden neue Datenpunkte erstellt; Standard: false;
updateExisting - (boolean) wenn auf true gesetzt, werden bestehende Datenpunkte aktualisiert; Standard: false;
deleteMissing - (boolean) wenn auf true gesetzt, werden Datenpunkte, die in den importierten Daten nicht vorhanden sind, aus der Datenbank gelöscht; Standard: false.
maps object Regeln dafür, wie Karten importiert werden.

Unterstützte Parameter:
createMissing - (boolean) wenn auf true gesetzt, werden neue Karten erstellt; Standard: false;
updateExisting - (boolean) wenn auf true gesetzt, werden bestehende Karten aktualisiert; Standard: false.

Dieser Parameter bewirkt keinen Unterschied in der Ausgabe. Er ist nur aus Konsistenzgründen mit configuration.import zulässig.
mediaTypes object Regeln dafür, wie Medientypen importiert werden.

Unterstützte Parameter:
createMissing - (boolean) wenn auf true gesetzt, werden neue Medientypen erstellt; Standard: false;
updateExisting - (boolean) wenn auf true gesetzt, werden bestehende Medientypen aktualisiert; Standard: false.

Dieser Parameter bewirkt keinen Unterschied in der Ausgabe. Er ist nur aus Konsistenzgründen mit configuration.import zulässig.
templateLinkage object Regeln dafür, wie Vorlagenverknüpfungen importiert werden.

Unterstützte Parameter:
createMissing - (boolean) wenn auf true gesetzt, werden Vorlagen, die nicht mit dem importierten Host oder der importierten Vorlage verknüpft sind, aber in den importierten Daten vorhanden sind, verknüpft; Standard: false;
deleteMissing - (boolean) wenn auf true gesetzt, werden Vorlagen, die mit dem importierten Host oder der importierten Vorlage verknüpft sind, aber in den importierten Daten nicht vorhanden sind, getrennt, ohne dabei von den getrennten Vorlagen geerbte Entitäten (Datenpunkte, Auslöser usw.) zu entfernen; Standard: false.
templates object Regeln dafür, wie Vorlagen importiert werden.

Unterstützte Parameter:
createMissing - (boolean) wenn auf true gesetzt, werden neue Vorlagen erstellt; Standard: false;
updateExisting - (boolean) wenn auf true gesetzt, werden bestehende Vorlagen aktualisiert; Standard: false.
templateDashboards object Regeln dafür, wie Vorlagen-Dashboards importiert werden.

Unterstützte Parameter:
createMissing - (boolean) wenn auf true gesetzt, werden neue Vorlagen-Dashboards erstellt; Standard: false;
updateExisting - (boolean) wenn auf true gesetzt, werden bestehende Vorlagen-Dashboards aktualisiert; Standard: false;
deleteMissing - (boolean) wenn auf true gesetzt, werden Vorlagen-Dashboards, die in den importierten Daten nicht vorhanden sind, aus der Datenbank gelöscht; Standard: false.
triggers object Regeln dafür, wie Auslöser importiert werden.

Unterstützte Parameter:
createMissing - (boolean) wenn auf true gesetzt, werden neue Auslöser erstellt; Standard: false;
updateExisting - (boolean) wenn auf true gesetzt, werden bestehende Auslöser aktualisiert; Standard: false;
deleteMissing - (boolean) wenn auf true gesetzt, werden Auslöser, die in den importierten Daten nicht vorhanden sind, aus der Datenbank gelöscht; Standard: false.
valueMaps object Regeln dafür, wie Host- oder Vorlagen-Wertzuordnungen importiert werden.

Unterstützte Parameter:
createMissing - (boolean) wenn auf true gesetzt, werden neue Wertzuordnungen erstellt; Standard: false;
updateExisting - (boolean) wenn auf true gesetzt, werden bestehende Wertzuordnungen aktualisiert; Standard: false;
deleteMissing - (boolean) wenn auf true gesetzt, werden Wertzuordnungen, die in den importierten Daten nicht vorhanden sind, aus der Datenbank gelöscht; Standard: false.

Rückgabewerte

(array) Gibt ein Array mit den Änderungen in der Konfiguration zurück, die vorgenommen werden.

Beispiele

Vergleich des Imports einer Vorlage

Vergleichen Sie die in der XML-Zeichenfolge enthaltene Vorlage mit den aktuellen Systemelementen und zeigen Sie, was geändert wird, wenn diese Vorlage importiert wird.

Anfrage:

{
    "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
}

Antwort:

{
    "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
}

Quelle

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