array configuration.importcompare(object parameters)
Este método permite comparar el archivo de importación con los elementos actuales del sistema y muestra qué se cambiará si se importa este archivo de importación.
Este método está disponible para usuarios de cualquier tipo. Los permisos para llamar al método se pueden revocar en la configuración de roles de usuario. Consulte Roles de usuario para obtener más información.
(objeto)
Parámetros que contienen los posibles datos a importar y reglas sobre cómo se deben manejar los datos.
Parámetro | Tipo | Descripción |
---|---|---|
format (obligatorio) |
cadena | Formato de la cadena serializada. Valores posibles: yaml - YAML;xml - XML;<br >json - JSON. |
source (obligatorio) |
cadena | Cadena serializada que contiene los datos de configuración. |
rules (obligatorio) |
objeto | Reglas sobre cómo se deben importar los objetos nuevos y existentes. El parámetro reglas se describe en detalle en la siguiente tabla. |
Si no se proporcionan reglas, no habrá nada que actualizar y el resultado estará vacío.
La comparación se realizará únicamente para grupos de equipos y plantillas. Los iniciadores y gráficos se compararán sólo para las plantillas importadas, cualquier otro se considerará "nuevo".
El objeto rules
admite los siguientes parámetros.
Parámetro | Tipo | Descripción |
---|---|---|
discoveryRules | object | Reglas sobre cómo importar reglas LLD. Parámetros admitidos: createMissing - (boolean) si se establece en true , se crearán nuevas reglas LLD; predeterminado: false ;updateExisting - (boolean) si se establece en true , las reglas LLD existentes se actualizarán; predeterminado: false ;deleteMissing - (boolean) si se establece en true , las reglas LLD que no estén presentes en los datos importados se eliminarán de la base de datos; predeterminado: falso . |
graphs | object | Reglas sobre cómo importar gráficos. Parámetros admitidos: createMissing - (boolean) si se establece en true , se crearán nuevos gráficos; predeterminado: false ;updateExisting - (boolean) si se establece en true , los gráficos existentes se actualizarán; predeterminado: false ;deleteMissing - (boolean) si se establece en true , los gráficos que no estén presentes en los datos importados se eliminarán de la base de datos; predeterminado: falso . |
groups | objeto | Reglas sobre cómo importar grupos de equipos. Parámetros admitidos: createMissing - (booleano) si se establece en true , se crearán nuevos grupos de hosts; predeterminado: false ;updateExisting - (boolean) si se establece en true , los grupos de hosts existentes se actualizarán; predeterminado: falso . |
hosts | objeto | Reglas sobre cómo importar equipos. Parámetros admitidos: createMissing - (boolean) si se establece en true , se crearán nuevos hosts; predeterminado: false ;updateExisting - (boolean) si se establece en true , los hosts existentes se actualizarán; predeterminado: false .Este parámetro no hará ninguna diferencia en la salida. Está permitido sólo por coherencia con configuration.import . |
httptests | object | Reglas sobre cómo importar escenarios web. Parámetros admitidos: createMissing - (boolean) si se establece en true , se crearán nuevos escenarios web; predeterminado: false ;updateExisting - (boolean) si se establece en true , los escenarios web existentes se actualizarán; predeterminado: false ;deleteMissing - (boolean) si se establece en true , los escenarios web que no estén presentes en los datos importados se eliminarán de la base de datos; predeterminado: falso . |
images | objeto | Reglas sobre cómo importar imágenes. Parámetros admitidos: createMissing - (boolean) si se establece en true , se crearán nuevas imágenes; predeterminado: false ;updateExisting - (boolean) si se establece en true , las imágenes existentes se actualizarán; predeterminado: false .Este parámetro no hará ninguna diferencia en la salida. Está permitido sólo por coherencia con configuration.import . |
items | object | Reglas sobre cómo importar métricas. Parámetros admitidos: createMissing - (boolean) si se establece en true , se crearán nuevas métricas; predeterminado: false ;updateExisting - (boolean) si se establece en true , las métricas existentes se actualizarán; predeterminado: false ;deleteMissing - (boolean) si se establece en true , las métricas que no estén presentes en los datos importados se eliminarán de la base de datos; predeterminado: falso . |
maps | object | Reglas sobre cómo importar mapas. Parámetros admitidos: createMissing - (boolean) si se establece en true , se crearán nuevos mapas; predeterminado: false ;updateExisting - (boolean) si se establece en true , los mapas existentes se actualizarán; predeterminado: false .Este parámetro no hará ninguna diferencia en la salida. Está permitido sólo por coherencia con configuration.import . |
mediaTypes | object | Reglas sobre cómo importar tipos de medios. Parámetros admitidos: createMissing - (boolean) si se establece en true , se crearán nuevos tipos de medios; predeterminado: false ;updateExisting - (boolean) si se establece en true , los tipos de medios existentes se actualizarán; predeterminado: false .Este parámetro no hará ninguna diferencia en la salida. Está permitido sólo por coherencia con configuration.import . |
templateLinkage | object | Reglas sobre cómo importar enlaces de plantillas. Parámetros admitidos: createMissing - (boolean) si se establece en true , plantillas que no están vinculadas al host o La plantilla que se importa, pero que está presente en los datos importados, se vinculará; predeterminado: falso ;deleteMissing - (booleano) si se establece en verdadero , templos late que están vinculados al host o plantilla que se importan, pero que no están presentes en los datos importados, se desvincularán sin eliminar entidades (elementos, activadores, etc.) heredados de las plantillas desvinculadas; predeterminado: falso . |
templates | object | Reglas sobre cómo importar plantillas. Parámetros admitidos: createMissing - (boolean) si se establece en true , se crearán nuevas plantillas; predeterminado: false ;updateExisting - (boolean) si se establece en true , las plantillas existentes se actualizarán; predeterminado: falso . |
templateDashboards | object | Reglas sobre cómo importar plantillas de tableros. Parámetros admitidos: createMissing - (booleano) si se establece en true , se crearán nuevas plantillas de tableros; predeterminado: false ;updateExisting - (boolean) si se establece en true , las plantillas de tableros existentes se actualizarán; predeterminado: false ;deleteMissing - (boolean) si se establece en true , las plantillas de tableros que no estén presentes en los datos importados se eliminarán de la base de datos; predeterminado: falso . |
triggers | object | Reglas sobre cómo importar iniciadores. Parámetros admitidos: createMissing - (boolean) si se establece en true , se crearán nuevos iniciadores; predeterminado: false ;updateExisting - (boolean) si se establece en true , los iniciadores existentes se actualizarán; predeterminado: false ;deleteMissing - (boolean) si se establece en true , los iniciadores que no estén presentes en los datos importados se eliminarán de la base de datos; predeterminado: falso . |
valueMaps | object | Reglas sobre cómo importar mapas de valores de equipo o plantilla. Parámetros admitidos: createMissing - (boolean) si se establece en true , se crearán nuevos mapas de valores ; predeterminado: false ;updateExisting - (boolean) si se establece en true , los mapas de valores existentes se actualizarán; predeterminado: false ;deleteMissing - (boolean) si se establece en true , los mapas de valores que no estén presentes en los datos importados se eliminarán de la base de datos; predeterminado: falso . |
(matriz)
Devuelve una matriz con los cambios en la configuración que se realizarán.
Compare la plantilla contenida en la cadena XML con los elementos actuales del sistema y muestre qué se cambiará si se importa esta plantilla.
Solicitud:
{
"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
}
Respuesta:
{
"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() en ui/include/classes/api/services/CConfiguration.php.