configuration.importcompare

Descrizione

array configuration.importcompare(object parameters)

Questo metodo consente di confrontare il file di importazione con gli elementi correnti del sistema e mostra cosa verrà modificato se questo file di importazione verrà importato.

Questo metodo è disponibile per utenti di qualsiasi tipo. Le autorizzazioni per chiamare il metodo possono essere revocate nelle impostazioni del ruolo utente. Per ulteriori informazioni, vedere User roles.

Parametri

(object) Parametri contenenti i possibili dati da importare e le regole su come i dati devono essere gestiti.

Parameter Type Description
format string Formato della stringa serializzata.

Valori possibili:
yaml - YAML;
xml - XML;
json - JSON.

Parameter behavior:
- required
source string Stringa serializzata contenente i dati di configurazione.

Parameter behavior:
- required
rules object Regole su come confrontare gli oggetti nuovi ed esistenti.

Gli utenti di tipo Admin e User possono confrontare i nuovi oggetti solo con quelli esistenti per i quali dispongono di autorizzazione read-only o read-write permission.

Il parametro rules è descritto in dettaglio nella tabella seguente.

Parameter behavior:
- required
returnMissingObjects boolean Regole per stabilire se l'oggetto di risposta debba contenere informazioni sugli oggetti mancanti; default: false.

Se non vengono fornite regole, non ci sarà nulla da aggiornare e il risultato sarà vuoto.

Il confronto verrà eseguito solo per i gruppi host e i template. I trigger e i grafici verranno confrontati solo per i template importati; tutti gli altri saranno considerati "nuovi".

L'oggetto rules supporta i seguenti parametri.

Parameter Type Description
dashboards object Regole su come importare i dashboard.

Parametri supportati:
createMissing - (boolean) se impostato su true, i nuovi dashboard verranno creati; default: false;
updateExisting - (boolean) se impostato su true e un particolare dashboard importabile è presente nel sistema, verrà aggiornato completamente. Le pagine e i widget verranno completamente sovrascritti con quelli nuovi; default: false.
discoveryRules object Regole su come importare le regole LLD.

Parametri supportati:
createMissing - (boolean) se impostato su true, le nuove regole LLD verranno create; default: false;
updateExisting - (boolean) se impostato su true, le regole LLD esistenti verranno aggiornate; default: false;
deleteMissing - (boolean) se impostato su true, le regole LLD non presenti nei dati importati verranno eliminate dal database; default: false.
global_regexes object Regole su come importare le espressioni regolari globali.

Parametri supportati:
createMissing - (boolean) se impostato su true, le nuove espressioni regolari globali verranno create; default: false;
updateExisting - (boolean) se impostato su true, le espressioni regolari globali esistenti verranno aggiornate, con le relative sottoespressioni completamente sovrascritte; default: false.
graphs object Regole su come importare i grafici.

Parametri supportati:
createMissing - (boolean) se impostato su true, i nuovi grafici verranno creati; default: false;
updateExisting - (boolean) se impostato su true, i grafici esistenti verranno aggiornati; default: false;
deleteMissing - (boolean) se impostato su true, i grafici non presenti nei dati importati verranno eliminati dal database; default: false.
host_groups object Regole su come importare i gruppi host.

Parametri supportati:
createMissing - (boolean) se impostato su true, i nuovi gruppi host verranno creati; default: false;
updateExisting - (boolean) se impostato su true, i gruppi host esistenti verranno aggiornati; default: false.
httptests object Regole su come importare gli scenari web.

Parametri supportati:
createMissing - (boolean) se impostato su true, i nuovi scenari web verranno creati; default: false;
updateExisting - (boolean) se impostato su true, gli scenari web esistenti verranno aggiornati; default: false;
deleteMissing - (boolean) se impostato su true, gli scenari web non presenti nei dati importati verranno eliminati dal database; default: false.
images object Regole su come importare le immagini.

Parametri supportati:
createMissing - (boolean) se impostato su true, le nuove immagini verranno create; default: false;
updateExisting - (boolean) se impostato su true, le immagini esistenti verranno aggiornate; default: false.

Questo parametro non farà alcuna differenza nell'output. È consentito solo per coerenza con configuration.import.
items object Regole su come importare gli item.

Parametri supportati:
createMissing - (boolean) se impostato su true, i nuovi item verranno creati; default: false;
updateExisting - (boolean) se impostato su true, gli item esistenti verranno aggiornati; default: false;
deleteMissing - (boolean) se impostato su true, gli item non presenti nei dati importati verranno eliminati dal database; default: false.
maps object Regole su come importare le mappe.

Parametri supportati:
createMissing - (boolean) se impostato su true, le nuove mappe verranno create; default: false;
updateExisting - (boolean) se impostato su true, le mappe esistenti verranno aggiornate; default: false.

Questo parametro non farà alcuna differenza nell'output. È consentito solo per coerenza con configuration.import.
mediaTypes object Regole su come importare i tipi di media.

Parametri supportati:
createMissing - (boolean) se impostato su true, i nuovi tipi di media verranno creati; default: false;
updateExisting - (boolean) se impostato su true, i tipi di media esistenti verranno aggiornati; default: false.

Questo parametro non farà alcuna differenza nell'output. È consentito solo per coerenza con configuration.import.
templateDashboards object Regole su come importare i dashboard del template.

Parametri supportati:
createMissing - (boolean) se impostato su true, i nuovi dashboard del template verranno creati; default: false;
updateExisting - (boolean) se impostato su true, i dashboard del template esistenti verranno aggiornati; default: false;
deleteMissing - (boolean) se impostato su true, i dashboard del template non presenti nei dati importati verranno eliminati dal database; default: false.
template_groups object Regole su come importare i gruppi template.

Parametri supportati:
createMissing - (boolean) se impostato su true, i nuovi gruppi template verranno creati; default: false;
updateExisting - (boolean) se impostato su true, i gruppi template esistenti verranno aggiornati; default: false.
templateLinkage object Regole su come importare i collegamenti dei template.

Parametri supportati:
createMissing - (boolean) se impostato su true, i template che non sono collegati all'host o al template in fase di importazione, ma che sono presenti nei dati importati, verranno collegati; default: false;
deleteMissing - (boolean) se impostato su true, i template collegati all'host o al template in fase di importazione, ma non presenti nei dati importati, verranno scollegati senza rimuovere le entità (item, trigger, ecc.) ereditate dai template scollegati; default: false.
templates object Regole su come importare i template.

Parametri supportati:
createMissing - (boolean) se impostato su true, i nuovi template verranno creati; default: false;
updateExisting - (boolean) se impostato su true, i template esistenti verranno aggiornati; default: false.
triggers object Regole su come importare i trigger.

Parametri supportati:
createMissing - (boolean) se impostato su true, i nuovi trigger verranno creati; default: false;
updateExisting - (boolean) se impostato su true, i trigger esistenti verranno aggiornati; default: false;
deleteMissing - (boolean) se impostato su true, i trigger non presenti nei dati importati verranno eliminati dal database; default: false.
valueMaps object Regole su come importare i value map di host o template.

Parametri supportati:
createMissing - (boolean) se impostato su true, i nuovi value map verranno creati; default: false;
updateExisting - (boolean) se impostato su true, i value map esistenti verranno aggiornati; default: false;
deleteMissing - (boolean) se impostato su true, i value map non presenti nei dati importati verranno eliminati dal database; default: false.

Valori restituiti

(array) Restituisce un array con le modifiche nella configurazione che verranno apportate.

Esempi

Confronto dell'importazione di un template

Confronta il template contenuto nella stringa XML con gli elementi correnti del sistema e mostra quali modifiche verranno apportate se questo template verrà importato.

Richiesta:

{
    "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
}

Risposta:

{
    "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
}

Sorgente

CConfiguration::importcompare() in ui/include/classes/api/services/CConfiguration.php.