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.
(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` ; 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. 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. configuration.import.| |mediaTypes|object|Règles sur la façon d'importer des types de médias. 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. configuration.import.| |templateLinkage|object|Règles sur la façon d'importer les liens de modèles. - (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` ; 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. - (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 . |
(array)
Renvoie un tableau avec les changements de configuration qui seront effectués.
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
}
CConfiguration::importcompare() dans ui/include/classes/api/services/CConfiguration.php.