configuration.importcompare

Description

array configuration.importcompare(object parameters)

Cette méthode permet de comparer le fichier d'importation avec les éléments actuels du système et montre ce qui sera changé si ce fichier d'importation 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. Voir les rôles utilisateur pour plus d'informations.

Paramètres

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

Paramètre Type Description
format
(obligatoire)
string Format de la chaîne sérialisée.

Valeurs possibles :
yaml - YAML;
xml - XML;
json - JSON.
source
(obligatoire)
string Chaîne sérialisée contenant les données de configuration.
rules
(obligatoire)
object Règles sur la façon dont les objets nouveaux et existants doivent être importés.

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

Si aucune règle n'est donnée, 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 sera considéré comme "nouveau".

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

Paramètre Type Description
discoveryRules object Règles sur la façon d'importer les règles LLD.

Paramètres pris en charge :
createMissing - (boolean) Si initialisé à true, les nouvelles règles LLD seront créées ; par défaut: false ;
updateExisting - (boolean) Si initialisé à true, les règles LLD existantes seront mises à jour; par défaut: false ;
deleteMissing - (boolean) Si initialisé à true, Les règles LLD non présentes dans les données importées seront supprimées de la base de données ; par défaut: false.
graphs object Règles sur la façon d'importer des graphiques.

Paramètres pris en charge :
createMissing - (boolean) Si initialisé à true, les nouveaux graphiques seront créés ; par défaut: false ;
updateExisting - (boolean) Si initialisé à true, les graphiques existants seront mis à jour ; par défaut: false ;
deleteMissing - (boolean) Si initialisé à true, les graphiques non présents dans les données importées seront supprimés de la base de données ; par défaut: false.
groups object Règles sur l'importation des groupes d'hôtes.

Paramètres pris en charge :
createMissing - (boolean) Si initialisé à true, les nouveaux groupes d'hôtes seront créés ; par défaut : false ;
updateExisting - (boolean) Si initialisé à true, les groupes d'hôtes existants seront mis à jour ; par défaut: false.
hosts object Règles sur la façon d'importer des hôtes.

Paramètres pris en charge :
createMissing - (boolean) Si initialisé à true, les nouveaux hôtes seront créés ; par défaut : false;
updateExisting - (boolean) Si initialisé à true, les hôtes existants seront mis à jour ; par défaut: false.

Ce paramètre ne fera aucune différence sur la sortie. Il est autorisé uniquement pour la cohérence avec configuration.import.
httptests object Règles sur la façon d'importer des scénarios Web.

Paramètres pris en charge :
createMissing` - `(boolean)` Si initialisé à `true`, les nouveaux scenarios web seront créés ; par défaut: `false` ;
`updateExisting` - `(boolean)` Si initialisé à `true`, les scenarios web existants seront mis à jour ; par défaut: `false` ;
`deleteMissing` - `(boolean)` Si initialisé à `true`, les scenarios web non présents dans les données importées seront supprimés de la base de données ; par défaut: `false`.| |images|object|Règles sur la façon d'importer des images.

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

Ce paramètre ne fera aucune différence sur la sortie. Il est autorisé uniquement pour la cohérence avec `configuration.import`.| |items|object|Règles sur la façon d'importer des éléments.

Paramètres pris en charge :
createMissing-(boolean)Si initialisé àtrue, les nouveaux éléments seront créés ; par défaut:false;
updateExisting-(boolean)Si initialisé àtrue, les éléments existants seront mis à jour ; par défaut:false;
deleteMissing-(boolean)Si initialisé àtrue, les éléments non présents dans les données importées seront supprimés de la base de données ; par défaut:false.| |maps|object|Règles sur la façon d'importer des cartes.

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

Ce paramètre ne fera aucune différence sur la sortie. Il est autorisé uniquement pour la cohérence avec
configuration.import.| |mediaTypes|object|Règles sur la façon d'importer des types de médias.

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

Ce paramètre ne fera aucune différence sur la sortie. Il est autorisé uniquement pour la cohérence avec
configuration.import.| |templateLinkage|object|Règles sur la façon d'importer les liens de modèles.

Paramètres pris en charge :
``createMissing
- (boolean) Si initialisé à true, les nouveaux liens entre modèles et hôtes seront créés ; par défaut: false ;
deleteMissing - (boolean) Si initialisé à true, les liens non présents dans les données importées seront supprimés de la base de données ; par défaut: false.
templates object Règles sur l'importation des modèles.

Paramètres pris en charge :
createMissing - (boolean) Si initialisé à true, les nouveaux modèles seront créés ; par défaut : false ;
updateExisting - (boolean) Si initialisé à true, les modèles existants seront mis à jour ; par défaut: false.
templateDashboards object Règles sur la façon d'importer des tableaux de bord des modèles.

Paramètres pris en charge :
createMissing` - `(boolean)` Si initialisé à `true`, les nouveaux tableaux de bord seront créés ; par défaut: `false` ;
`updateExisting` - `(boolean)` Si initialisé à `true`, les tableaux de bord existants seront mis à jour ; par défaut: `false` ;
`deleteMissing` - `(boolean)` Si initialisé à `true`, les tableaux de bord non présents dans les données importées seront supprimés de la base de données ; par défaut: `false`.| |triggers|object|Règles sur la façon d'importer des déclencheurs.

Paramètres pris en charge :
createMissing-(boolean)Si initialisé àtrue, les nouveaux déclencheurs seront créés ; par défaut:false;
updateExisting-(boolean)Si initialisé àtrue, les déclencheurs existants seront mis à jour ; par défaut:false;
deleteMissing-(boolean)Si initialisé àtrue, les déclencheurs non présents dans les données importées seront supprimés de la base de données ; par défaut:false.| |valueMaps|object|Règles sur la façon d'importer des tables de correspondance.

Paramètres pris en charge :
``createMissing
- (boolean) Si initialisé à true, les nouvelles tables de correspondance seront créées ; par défaut: false ;
updateExisting - (boolean) Si initialisé à true, les tables de correspondance existantes seront mises à jour ; par défaut: false ;
deleteMissing - (boolean) Si initialisé à true, les tables de correspondance non présentes dans les données importées seront supprimées de la base de données ; par défaut: false.

Valeurs retournées

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

Exemples

Comparer l'importation d'un modèle

Compare le modèle contenu dans la chaîne XML aux éléments système actuels, et montre ce qui sera changé 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
                   },
                   "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>6.0</version><date>2023-01-01T12:30:00Z</date><groups><group><uuid>7df96b18c230490a9a0a9e2307226338</uuid><name>Templates</name></group></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><dt>Server uptime: (.*)</dt></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)>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"
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

Réponse :

{
           "jsonrpc": "2.0",
           "result": {
               "templates": {
                   "updated": [
                       {
                           "before": {
                               "uuid": "5aef0444a82a4d8cb7a95dc4c0c85330",
                               "template": "New template",
                               "name": "New template"
                           },
                           "after": {
                               "uuid": "5aef0444a82a4d8cb7a95dc4c0c85330",
                               "template": "New template",
                               "name": "New template"
                           },
                           "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.