configuration.importcompare
Descripción
array configuration.importcompare(object parameters)
Este método permite comparar un archivo de importación con los elementos actuales del sistema y muestra qué se cambiará si se importa este archivo.
Este método está disponible para usuarios de cualquier tipo. Los permisos para llamar al método pueden ser revocados en la configuración de roles de usuario. Consulte Roles de usuario para más información.
Parámetros
(object) Parámetros que contienen los posibles datos para importar y las reglas sobre cómo deben manejarse los datos.
| Parámetro | Type | Descripción |
|---|---|---|
| format | string | Formato de la cadena serializada. Valores posibles: yaml - YAML;xml - XML;json - JSON.Comportamiento del parámetro: - obligatorio |
| source | string | Cadena serializada que contiene los datos de configuración. Comportamiento del parámetro: - obligatorio |
| rules | object | Reglas sobre cómo deben compararse los objetos nuevos y los existentes. Los usuarios de tipo Admin y User pueden comparar objetos nuevos solo con los objetos existentes para los que tienen permission de solo lectura o lectura-escritura. El parámetro rules se describe en detalle en la tabla siguiente.Comportamiento del parámetro: - obligatorio |
| returnMissingObjects | boolean | Define si el objeto de respuesta debe contener información sobre los objetos faltantes; por defecto: false. |
Si no se proporcionan reglas, no habrá nada que actualizar y el resultado estará vacío.
La comparación se realizará solo para grupos de hosts y templates. Los triggers y gráficos se compararán solo para los templates importados; cualquier otro se considerará "nuevo".
El objeto rules admite los siguientes parámetros.
| Parámetro | Type | Descripción |
|---|---|---|
| dashboards | object | Reglas sobre cómo importar dashboards. Parámetros admitidos: createMissing - (boolean) si se establece en true, se crearán dashboards nuevos; por defecto: false;updateExisting - (boolean) si se establece en true y un dashboard importable concreto está presente en el sistema, se actualizará por completo. Las páginas y los widgets se reescribirán completamente con los nuevos; por defecto: false. |
| discoveryRules | object | Reglas sobre cómo importar reglas LLD. Parámetros admitidos: createMissing - (boolean) si se establece en true, se crearán reglas LLD nuevas; por defecto: false;updateExisting - (boolean) si se establece en true, se actualizarán las reglas LLD existentes; por defecto: 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; por defecto: false. |
| graphs | object | Reglas sobre cómo importar gráficos. Parámetros admitidos: createMissing - (boolean) si se establece en true, se crearán gráficos nuevos; por defecto: false;updateExisting - (boolean) si se establece en true, se actualizarán los gráficos existentes; por defecto: 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; por defecto: false. |
| host_groups | object | Reglas sobre cómo importar grupos de hosts. Parámetros admitidos: createMissing - (boolean) si se establece en true, se crearán grupos de hosts nuevos; por defecto: false;updateExisting - (boolean) si se establece en true, se actualizarán los grupos de hosts existentes; por defecto: false. |
| template_groups | object | Reglas sobre cómo importar grupos de templates. Parámetros admitidos: createMissing - (boolean) si se establece en true, se crearán grupos de templates nuevos; por defecto: false;updateExisting - (boolean) si se establece en true, se actualizarán los grupos de templates existentes; por defecto: false. |
| hosts | object | Reglas sobre cómo importar hosts. Parámetros admitidos: createMissing - (boolean) si se establece en true, se crearán hosts nuevos; por defecto: false;updateExisting - (boolean) si se establece en true, se actualizarán los hosts existentes; por defecto: false.Este parámetro no supondrá ninguna diferencia en la salida. Solo se permite 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 escenarios web nuevos; por defecto: false;updateExisting - (boolean) si se establece en true, se actualizarán los escenarios web existentes; por defecto: 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; por defecto: false. |
| images | object | Reglas sobre cómo importar imágenes. Parámetros admitidos: createMissing - (boolean) si se establece en true, se crearán imágenes nuevas; por defecto: false;updateExisting - (boolean) si se establece en true, se actualizarán las imágenes existentes; por defecto: false.Este parámetro no supondrá ninguna diferencia en la salida. Solo se permite por coherencia con configuration.import. |
| items | object | Reglas sobre cómo importar items. Parámetros admitidos: createMissing - (boolean) si se establece en true, se crearán items nuevos; por defecto: false;updateExisting - (boolean) si se establece en true, se actualizarán los items existentes; por defecto: false;deleteMissing - (boolean) si se establece en true, los items que no estén presentes en los datos importados se eliminarán de la base de datos; por defecto: false. |
| maps | object | Reglas sobre cómo importar mapas. Parámetros admitidos: createMissing - (boolean) si se establece en true, se crearán mapas nuevos; por defecto: false;updateExisting - (boolean) si se establece en true, se actualizarán los mapas existentes; por defecto: false.Este parámetro no supondrá ninguna diferencia en la salida. Solo se permite por coherencia con configuration.import. |
| mediaTypes | object | Reglas sobre cómo importar tipos de medio. Parámetros admitidos: createMissing - (boolean) si se establece en true, se crearán tipos de medio nuevos; por defecto: false;updateExisting - (boolean) si se establece en true, se actualizarán los tipos de medio existentes; por defecto: false.Este parámetro no supondrá ninguna diferencia en la salida. Solo se permite por coherencia con configuration.import. |
| templateLinkage | object | Reglas sobre cómo importar enlaces de templates. Parámetros admitidos: createMissing - (boolean) si se establece en true, los templates que no estén vinculados al host o template que se está importando, pero que estén presentes en los datos importados, se vincularán; por defecto: false;deleteMissing - (boolean) si se establece en true, los templates que estén vinculados al host o template que se está importando, pero que no estén presentes en los datos importados, se desvincularán sin eliminar las entidades (items, triggers, etc.) heredadas de los templates desvinculados; por defecto: false. |
| templates | object | Reglas sobre cómo importar templates. Parámetros admitidos: createMissing - (boolean) si se establece en true, se crearán templates nuevos; por defecto: false;updateExisting - (boolean) si se establece en true, se actualizarán los templates existentes; por defecto: false. |
| templateDashboards | object | Reglas sobre cómo importar dashboards de template. Parámetros admitidos: createMissing - (boolean) si se establece en true, se crearán dashboards de template nuevos; por defecto: false;updateExisting - (boolean) si se establece en true, se actualizarán los dashboards de template existentes; por defecto: false;deleteMissing - (boolean) si se establece en true, los dashboards de template que no estén presentes en los datos importados se eliminarán de la base de datos; por defecto: false. |
| triggers | object | Reglas sobre cómo importar triggers. Parámetros admitidos: createMissing - (boolean) si se establece en true, se crearán triggers nuevos; por defecto: false;updateExisting - (boolean) si se establece en true, se actualizarán los triggers existentes; por defecto: false;deleteMissing - (boolean) si se establece en true, los triggers que no estén presentes en los datos importados se eliminarán de la base de datos; por defecto: false. |
| valueMaps | object | Reglas sobre cómo importar mapas de valores de host o template. Parámetros admitidos: createMissing - (boolean) si se establece en true, se crearán mapas de valores nuevos; por defecto: false;updateExisting - (boolean) si se establece en true, se actualizarán los mapas de valores existentes; por defecto: 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; por defecto: false. |
Valores de retorno
(array) Devuelve un array con los cambios en la configuración que se realizarán.
Ejemplos
Comparar la importación de una template
Compara la template contenida en la cadena XML con los elementos actuales del sistema y muestra lo que se cambiará si se importa esta template.
{
"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
}
Respuesta:
{
"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
}
Fuente
CConfiguration::importcompare() en ui/include/classes/api/services/CConfiguration.php.