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 deben manejarse los datos.

Parámetro Tipo 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 existentes.

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

El parámetro rules se describe en detalle en la tabla a continuación.

Comportamiento del parámetro:
- obligatorio

Si no se especifican reglas, no habrá nada que actualizar y el resultado estará vacío.

La comparación solo se realizará para grupos de hosts y templates. Los triggers y gráficos solo se compararán para los templates importados, cualquier otro se considerará como "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 soportados:
createMissing - (boolean) si se establece en true, se crearán nuevas reglas LLD; 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 soportados:
createMissing - (boolean) si se establece en true, se crearán nuevos gráficos; 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 soportados:
createMissing - (boolean) si se establece en true, se crearán nuevos grupos de hosts; 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 soportados:
createMissing - (boolean) si se establece en true, se crearán nuevos grupos de templates; 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 soportados:
createMissing - (boolean) si se establece en true, se crearán nuevos hosts; por defecto: false;
updateExisting - (boolean) si se establece en true, se actualizarán los hosts existentes; por defecto: false.

Este parámetro no tendrá ningún efecto en la salida. Solo se permite por coherencia con configuration.import.
httptests object Reglas sobre cómo importar escenarios web.

Parámetros soportados:
createMissing - (boolean) si se establece en true, se crearán nuevos escenarios web; 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 soportados:
createMissing - (boolean) si se establece en true, se crearán nuevas imágenes; por defecto: false;
updateExisting - (boolean) si se establece en true, se actualizarán las imágenes existentes; por defecto: false.

Este parámetro no tendrá ningún efecto en la salida. Solo se permite por coherencia con configuration.import.
items object Reglas sobre cómo importar items.

Parámetros soportados:
createMissing - (boolean) si se establece en true, se crearán nuevos items; 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 soportados:
createMissing - (boolean) si se establece en true, se crearán nuevos mapas; por defecto: false;
updateExisting - (boolean) si se establece en true, se actualizarán los mapas existentes; por defecto: false.

Este parámetro no tendrá ningún efecto en la salida. Solo se permite por coherencia con configuration.import.
mediaTypes object Reglas sobre cómo importar tipos de medios.

Parámetros soportados:
createMissing - (boolean) si se establece en true, se crearán nuevos tipos de medios; por defecto: false;
updateExisting - (boolean) si se establece en true, se actualizarán los tipos de medios existentes; por defecto: false.

Este parámetro no tendrá ningún efecto en la salida. Solo se permite por coherencia con configuration.import.
templateLinkage object Reglas sobre cómo importar enlaces de templates.

Parámetros soportados:
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 soportados:
createMissing - (boolean) si se establece en true, se crearán nuevos templates; 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 templates.

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

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
            },
            "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>&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.