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 a importar y las reglas sobre cómo se deben gestionar los datos.

Parameter Type Description
format string Formato de la cadena serializada.

Valores posibles:
yaml - YAML;
xml - XML;
json - JSON.

Comportamiento del parámetro:
- required
source string Cadena serializada que contiene los datos de configuración.

Comportamiento del parámetro:
- required
rules object Reglas sobre cómo se deben comparar los objetos nuevos y existentes.

Los usuarios de tipo Admin y User pueden comparar objetos nuevos solo con aquellos existentes para los que tienen permiso de solo lectura o lectura y escritura.

El parámetro rules se describe en detalle en la tabla siguiente.

Comportamiento del parámetro:
- required

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 host y templates. Los triggers y los gráficos se compararán solo para los templates importados; cualquier otro se considerará "nuevo".

El objeto rules admite los siguientes parámetros.

Parameter Type Description
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; valor predeterminado: false;
updateExisting - (boolean) si se establece en true, se actualizarán las reglas LLD existentes; valor 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; valor predeterminado: false.
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; valor predeterminado: false;
updateExisting - (boolean) si se establece en true, se actualizarán los gráficos existentes; valor 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; valor predeterminado: false.
host_groups object Reglas sobre cómo importar grupos de host.

Parámetros admitidos:
createMissing - (boolean) si se establece en true, se crearán nuevos grupos de host; valor predeterminado: false;
updateExisting - (boolean) si se establece en true, se actualizarán los grupos de host existentes; valor predeterminado: 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 nuevos grupos de templates; valor predeterminado: false;
updateExisting - (boolean) si se establece en true, se actualizarán los grupos de templates existentes; valor predeterminado: false.
hosts object Reglas sobre cómo importar hosts.

Parámetros admitidos:
createMissing - (boolean) si se establece en true, se crearán nuevos hosts; valor predeterminado: false;
updateExisting - (boolean) si se establece en true, se actualizarán los hosts existentes; valor predeterminado: false.

Este parámetro no hará 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 nuevos escenarios web; valor predeterminado: false;
updateExisting - (boolean) si se establece en true, se actualizarán los escenarios web existentes; valor 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; valor predeterminado: false.
images object Reglas sobre cómo importar imágenes.

Parámetros admitidos:
createMissing - (boolean) si se establece en true, se crearán nuevas imágenes; valor predeterminado: false;
updateExisting - (boolean) si se establece en true, se actualizarán las imágenes existentes; valor predeterminado: false.

Este parámetro no hará 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 nuevos items; valor predeterminado: false;
updateExisting - (boolean) si se establece en true, se actualizarán los items existentes; valor predeterminado: 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; valor predeterminado: false.
maps object Reglas sobre cómo importar mapas.

Parámetros admitidos:
createMissing - (boolean) si se establece en true, se crearán nuevos mapas; valor predeterminado: false;
updateExisting - (boolean) si se establece en true, se actualizarán los mapas existentes; valor predeterminado: false.

Este parámetro no hará ninguna diferencia en la salida. Solo se permite 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; valor predeterminado: false;
updateExisting - (boolean) si se establece en true, se actualizarán los tipos de medios existentes; valor predeterminado: false.

Este parámetro no hará 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, se enlazarán los templates que no estén vinculados al host o template que se está importando, pero que estén presentes en los datos importados; valor predeterminado: false;
deleteMissing - (boolean) si se establece en true, se desvincularán los templates que estén vinculados al host o template que se está importando, pero que no estén presentes en los datos importados, sin eliminar las entidades (items, triggers, etc.) heredadas de los templates desvinculados; valor predeterminado: false.
templates object Reglas sobre cómo importar templates.

Parámetros admitidos:
createMissing - (boolean) si se establece en true, se crearán nuevos templates; valor predeterminado: false;
updateExisting - (boolean) si se establece en true, se actualizarán los templates existentes; valor predeterminado: false.
templateDashboards object Reglas sobre cómo importar paneles de templates.

Parámetros admitidos:
createMissing - (boolean) si se establece en true, se crearán nuevos paneles de templates; valor predeterminado: false;
updateExisting - (boolean) si se establece en true, se actualizarán los paneles de templates existentes; valor predeterminado: false;
deleteMissing - (boolean) si se establece en true, los paneles de templates que no estén presentes en los datos importados se eliminarán de la base de datos; valor predeterminado: false.
triggers object Reglas sobre cómo importar triggers.

Parámetros admitidos:
createMissing - (boolean) si se establece en true, se crearán nuevos triggers; valor predeterminado: false;
updateExisting - (boolean) si se establece en true, se actualizarán los triggers existentes; valor predeterminado: 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; valor predeterminado: 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 nuevos mapas de valores; valor predeterminado: false;
updateExisting - (boolean) si se establece en true, se actualizarán los mapas de valores existentes; valor 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; valor predeterminado: false.

Valores de retorno

(array) Devuelve un array con los cambios en la configuración que se realizarán.

Ejemplos

Comparando la importación de un template

Compare el template contenido en la cadena XML con los elementos actuales del sistema, y muestre qué cambiará si se importa este template.

Request:

{
    "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>7.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>&lt;dt&gt;Server uptime: (.*)&lt;/dt&gt;</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)&gt;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.