configuration.importcompare
Description
array configuration.importcompare(object parameters)
Cette méthode permet de comparer un fichier d’importation avec les éléments actuels du système et indique ce qui sera modifié 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 User roles pour plus d’informations.
Paramètres
(object) Paramètres contenant les données possibles à importer et les règles définissant la manière dont les données doivent être traitées.
| Paramètre | Type | Description |
|---|---|---|
| format | string | Format de la chaîne sérialisée. Valeurs possibles : yaml - YAML ;xml - XML ;json - JSON.Comportement du paramètre : - obligatoire |
| source | string | Chaîne sérialisée contenant les données de configuration. Comportement du paramètre : - obligatoire |
| rules | object | Règles définissant comment les objets nouveaux et existants doivent être comparés. Les utilisateurs de type Admin et User peuvent comparer les nouveaux objets uniquement avec les objets existants pour lesquels ils disposent d'une autorisation 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 : - obligatoire |
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 ; tous les autres seront considérés comme « nouveaux ».
L'objet rules prend en charge les paramètres suivants.
| Paramètre | Type | Description |
|---|---|---|
| discoveryRules | object | Règles définissant comment importer les règles LLD. Paramètres pris en charge : createMissing - (boolean) si défini sur true, de nouvelles règles LLD seront créées ; par défaut : false ;updateExisting - (boolean) si défini sur true, les règles LLD existantes seront mises à jour ; 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 ; par défaut : false. |
| graphs | object | Règles définissant comment importer les graphiques. Paramètres pris en charge : createMissing - (boolean) si défini sur true, de nouveaux graphiques seront créés ; par défaut : false ;updateExisting - (boolean) si défini sur true, les graphiques existants seront mis à jour ; 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 ; par défaut : false. |
| host_groups | object | Règles définissant comment importer les 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 ; par défaut : false ;updateExisting - (boolean) si défini sur true, les groupes d'hôtes existants seront mis à jour ; par défaut : false. |
| template_groups | object | Règles définissant comment importer les 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 ; par défaut : false ;updateExisting - (boolean) si défini sur true, les groupes de modèles existants seront mis à jour ; par défaut : false. |
| hosts | object | Règles définissant comment importer les hôtes. Paramètres pris en charge : createMissing - (boolean) si défini sur true, de nouveaux hôtes seront créés ; par défaut : false ;updateExisting - (boolean) si défini sur true, les hôtes existants seront mis à jour ; par défaut : false.Ce paramètre ne fera aucune différence dans la sortie. Il est autorisé uniquement pour assurer la cohérence avec configuration.import. |
| httptests | object | Règles définissant comment importer les scénarios web. Paramètres pris en charge : createMissing - (boolean) si défini sur true, de nouveaux scénarios web seront créés ; par défaut : false ;updateExisting - (boolean) si défini sur true, les scénarios web existants seront mis à jour ; 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 ; par défaut : false. |
| images | object | Règles définissant comment importer les images. Paramètres pris en charge : createMissing - (boolean) si défini sur true, de nouvelles images seront créées ; par défaut : false ;updateExisting - (boolean) si défini sur true, les images existantes seront mises à jour ; par défaut : false.Ce paramètre ne fera aucune différence dans la sortie. Il est autorisé uniquement pour assurer la cohérence avec configuration.import. |
| items | object | Règles définissant comment importer les éléments de données. Paramètres pris en charge : createMissing - (boolean) si défini sur true, de nouveaux éléments de données seront créés ; par défaut : false ;updateExisting - (boolean) si défini sur true, les éléments de données existants seront mis à jour ; par défaut : false ;deleteMissing - (boolean) si défini sur true, les éléments de données absents des données importées seront supprimés de la base de données ; par défaut : false. |
| maps | object | Règles définissant comment importer les cartes. Paramètres pris en charge : createMissing - (boolean) si défini sur true, de nouvelles cartes seront créées ; par défaut : false ;updateExisting - (boolean) si défini sur true, les cartes existantes seront mises à jour ; par défaut : false.Ce paramètre ne fera aucune différence dans la sortie. Il est autorisé uniquement pour assurer la cohérence avec configuration.import. |
| mediaTypes | object | Règles définissant comment importer les 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 ; par défaut : false ;updateExisting - (boolean) si défini sur true, les types de média existants seront mis à jour ; par défaut : false.Ce paramètre ne fera aucune différence dans la sortie. Il est autorisé uniquement pour assurer la cohérence avec configuration.import. |
| templateLinkage | object | Règles définissant comment importer les 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 ; 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 de données, déclencheurs, etc.) héritées des modèles dissociés ; par défaut : false. |
| templates | object | Règles définissant comment importer les modèles. Paramètres pris en charge : createMissing - (boolean) si défini sur true, de nouveaux modèles seront créés ; par défaut : false ;updateExisting - (boolean) si défini sur true, les modèles existants seront mis à jour ; par défaut : false. |
| templateDashboards | object | Règles définissant comment importer les tableaux de bord de modèles. Paramètres pris en charge : createMissing - (boolean) si défini sur true, de nouveaux tableaux de bord de modèles seront créés ; par défaut : false ;updateExisting - (boolean) si défini sur true, les tableaux de bord de modèles existants seront mis à jour ; par défaut : false ;deleteMissing - (boolean) si défini sur true, les tableaux de bord de modèles absents des données importées seront supprimés de la base de données ; par défaut : false. |
| triggers | object | Règles définissant comment importer les déclencheurs. Paramètres pris en charge : createMissing - (boolean) si défini sur true, de nouveaux déclencheurs seront créés ; par défaut : false ;updateExisting - (boolean) si défini sur true, les déclencheurs existants seront mis à jour ; 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 ; par défaut : false. |
| valueMaps | object | Règles définissant comment importer les correspondances de valeurs d'hôte ou de modèle. Paramètres pris en charge : createMissing - (boolean) si défini sur true, de nouvelles correspondances de valeurs seront créées ; par défaut : false ;updateExisting - (boolean) si défini sur true, les correspondances de valeurs existantes seront mises à jour ; par défaut : false ;deleteMissing - (boolean) si défini sur true, les correspondances de valeurs absentes des 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
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é.
{
"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><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"
},
"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.