configuration.importcompare

Description

array configuration.importcompare(object parameters)

Cette méthode permet de comparer le fichier d'import avec les éléments actuels du système et affiche ce qui sera modifié si ce fichier d'import est importé.

Cette méthode est disponible pour les utilisateurs de tout type. Les autorisations d'appel de la méthode peuvent être révoquées dans les paramètres du rôle utilisateur. Consultez User roles pour plus d'informations.

Paramètres

(object) Paramètres contenant les données possibles à importer et les règles de traitement de ces données.

Parameter Type Description
format string Format de la chaîne sérialisée.

Valeurs possibles :
yaml - YAML;
xml - XML;
json - JSON.

Comportement du paramètre :
- required
source string Chaîne sérialisée contenant les données de configuration.

Comportement du paramètre :
- required
rules object Règles indiquant comment comparer les objets nouveaux et existants.

Les utilisateurs de type Admin et User peuvent comparer les nouveaux objets uniquement avec les objets existants pour lesquels ils disposent d'une permission en lecture seule ou en lecture-écriture.

Le paramètre rules est décrit en détail dans le tableau ci-dessous.

Comportement du paramètre :
- required
returnMissingObjects boolean Règles indiquant si l'objet de réponse doit contenir des informations sur les objets manquants ; valeur par défaut : false.

Si aucune règle n'est fournie, il n'y aura rien à mettre à jour et le résultat sera vide.

La comparaison sera effectuée uniquement pour les groupes d'hôtes et les modèles. Les déclencheurs et les graphiques seront comparés uniquement pour les modèles importés ; tout autre élément sera considéré comme "new".

L'objet rules prend en charge les paramètres suivants.

Parameter Type Description
dashboards object Règles d'importation des tableaux de bord.

Paramètres pris en charge :
createMissing - (boolean) si défini sur true, de nouveaux tableaux de bord seront créés ; valeur par défaut : false;
updateExisting - (boolean) si défini sur true et qu'un tableau de bord importable particulier est présent dans le système, il sera entièrement mis à jour. Les pages et les widgets seront entièrement remplacés par les nouveaux ; valeur par défaut : false.
discoveryRules object Règles d'importation des règles de découverte LLD.

Paramètres pris en charge :
createMissing - (boolean) si défini sur true, de nouvelles règles LLD seront créées ; valeur par défaut : false;
updateExisting - (boolean) si défini sur true, les règles LLD existantes seront mises à jour ; valeur par défaut : false;
deleteMissing - (boolean) si défini sur true, les règles LLD absentes des données importées seront supprimées de la base de données ; valeur par défaut : false.
global_regexes object Règles d'importation des expressions régulières globales.

Paramètres pris en charge :
createMissing - (boolean) si défini sur true, de nouvelles expressions régulières globales seront créées ; valeur par défaut : false;
updateExisting - (boolean) si défini sur true, les expressions régulières globales existantes seront mises à jour, avec leurs sous-expressions entièrement remplacées ; valeur par défaut : false.
graphs object Règles d'importation des graphiques.

Paramètres pris en charge :
createMissing - (boolean) si défini sur true, de nouveaux graphiques seront créés ; valeur par défaut : false;
updateExisting - (boolean) si défini sur true, les graphiques existants seront mis à jour ; valeur par défaut : false;
deleteMissing - (boolean) si défini sur true, les graphiques absents des données importées seront supprimés de la base de données ; valeur par défaut : false.
host_groups object Règles d'importation des groupes d'hôtes.

Paramètres pris en charge :
createMissing - (boolean) si défini sur true, de nouveaux groupes d'hôtes seront créés ; valeur par défaut : false;
updateExisting - (boolean) si défini sur true, les groupes d'hôtes existants seront mis à jour ; valeur par défaut : false.
httptests object Règles d'importation des scénarios web.

Paramètres pris en charge :
createMissing - (boolean) si défini sur true, de nouveaux scénarios web seront créés ; valeur par défaut : false;
updateExisting - (boolean) si défini sur true, les scénarios web existants seront mis à jour ; valeur par défaut : false;
deleteMissing - (boolean) si défini sur true, les scénarios web absents des données importées seront supprimés de la base de données ; valeur par défaut : false.
images object Règles d'importation des images.

Paramètres pris en charge :
createMissing - (boolean) si défini sur true, de nouvelles images seront créées ; valeur par défaut : false;
updateExisting - (boolean) si défini sur true, les images existantes seront mises à jour ; valeur par défaut : false.

Ce paramètre n'aura aucun effet sur la sortie. Il est autorisé uniquement pour assurer la cohérence avec configuration.import.
items object Règles d'importation des éléments.

Paramètres pris en charge :
createMissing - (boolean) si défini sur true, de nouveaux éléments seront créés ; valeur par défaut : false;
updateExisting - (boolean) si défini sur true, les éléments existants seront mis à jour ; valeur par défaut : false;
deleteMissing - (boolean) si défini sur true, les éléments absents des données importées seront supprimés de la base de données ; valeur par défaut : false.
maps object Règles d'importation des cartes.

Paramètres pris en charge :
createMissing - (boolean) si défini sur true, de nouvelles cartes seront créées ; valeur par défaut : false;
updateExisting - (boolean) si défini sur true, les cartes existantes seront mises à jour ; valeur par défaut : false.

Ce paramètre n'aura aucun effet sur la sortie. Il est autorisé uniquement pour assurer la cohérence avec configuration.import.
mediaTypes object Règles d'importation des types de média.

Paramètres pris en charge :
createMissing - (boolean) si défini sur true, de nouveaux types de média seront créés ; valeur par défaut : false;
updateExisting - (boolean) si défini sur true, les types de média existants seront mis à jour ; valeur par défaut : false.

Ce paramètre n'aura aucun effet sur la sortie. Il est autorisé uniquement pour assurer la cohérence avec configuration.import.
templateDashboards object Règles d'importation des tableaux de bord de modèle.

Paramètres pris en charge :
createMissing - (boolean) si défini sur true, de nouveaux tableaux de bord de modèle seront créés ; valeur par défaut : false;
updateExisting - (boolean) si défini sur true, les tableaux de bord de modèle existants seront mis à jour ; valeur par défaut : false;
deleteMissing - (boolean) si défini sur true, les tableaux de bord de modèle absents des données importées seront supprimés de la base de données ; valeur par défaut : false.
template_groups object Règles d'importation des groupes de modèles.

Paramètres pris en charge :
createMissing - (boolean) si défini sur true, de nouveaux groupes de modèles seront créés ; valeur par défaut : false;
updateExisting - (boolean) si défini sur true, les groupes de modèles existants seront mis à jour ; valeur par défaut : false.
templateLinkage object Règles d'importation des liens de modèles.

Paramètres pris en charge :
createMissing - (boolean) si défini sur true, les modèles qui ne sont pas liés à l'hôte ou au modèle en cours d'importation, mais qui sont présents dans les données importées, seront liés ; valeur par défaut : false;
deleteMissing - (boolean) si défini sur true, les modèles liés à l'hôte ou au modèle en cours d'importation, mais absents des données importées, seront dissociés sans supprimer les entités (éléments, déclencheurs, etc.) héritées des modèles dissociés ; valeur par défaut : false.
templates object Règles d'importation des modèles.

Paramètres pris en charge :
createMissing - (boolean) si défini sur true, de nouveaux modèles seront créés ; valeur par défaut : false;
updateExisting - (boolean) si défini sur true, les modèles existants seront mis à jour ; valeur par défaut : false.
triggers object Règles d'importation des déclencheurs.

Paramètres pris en charge :
createMissing - (boolean) si défini sur true, de nouveaux déclencheurs seront créés ; valeur par défaut : false;
updateExisting - (boolean) si défini sur true, les déclencheurs existants seront mis à jour ; valeur par défaut : false;
deleteMissing - (boolean) si défini sur true, les déclencheurs absents des données importées seront supprimés de la base de données ; valeur par défaut : false.
valueMaps object Règles d'importation des mappages de valeurs de l'hôte ou du modèle.

Paramètres pris en charge :
createMissing - (boolean) si défini sur true, de nouveaux mappages de valeurs seront créés ; valeur par défaut : false;
updateExisting - (boolean) si défini sur true, les mappages de valeurs existants seront mis à jour ; valeur par défaut : false;
deleteMissing - (boolean) si défini sur true, les mappages de valeurs absents des données importées seront supprimés de la base de données ; valeur par défaut : false.

Valeurs retournées

(array) Renvoie un tableau avec les changements de configuration qui seront effectués.

Exemples

Comparaison de l’importation d’un modèle

Comparez le modèle contenu dans la chaîne XML aux éléments actuels du système, et affichez ce qui sera modifié si ce modèle est importé.

Requête:

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

Réponse :

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

Source

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