configuration.importcompare

Descrizione

array configuration.importcompare(object parameters)

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

Questo metodo è disponibile per utenti di qualsiasi tipo. Le autorizzazioni per chiamare il metodo possono essere revocate nelle impostazioni dei ruoli utente. Consultare Ruoli utente per ulteriori informazioni.

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.

Comportamento del parametro:
- obbligatorio
source string Stringa serializzata contenente i dati di configurazione.

Comportamento del parametro:
- obbligatorio
rules object Regole su come devono essere confrontati 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 del permesso di sola lettura o lettura-scrittura.

Il parametro rules è descritto in dettaglio nella tabella seguente.

Comportamento del parametro:
- obbligatorio

Se non viene fornita alcuna regola, 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
discoveryRules object Regole su come importare le regole LLD.

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

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

Parametri supportati:
createMissing - (boolean) se impostato su true, verranno creati nuovi gruppi host; predefinito: false;
updateExisting - (boolean) se impostato su true, i gruppi host esistenti verranno aggiornati; predefinito: false.
template_groups object Regole su come importare i gruppi di template.

Parametri supportati:
createMissing - (boolean) se impostato su true, verranno creati nuovi gruppi di template; predefinito: false;
updateExisting - (boolean) se impostato su true, i gruppi di template esistenti verranno aggiornati; predefinito: false.
hosts object Regole su come importare gli host.

Parametri supportati:
createMissing - (boolean) se impostato su true, verranno creati nuovi host; predefinito: false;
updateExisting - (boolean) se impostato su true, gli host esistenti verranno aggiornati; predefinito: false.

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

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

Parametri supportati:
createMissing - (boolean) se impostato su true, verranno create nuove immagini; predefinito: false;
updateExisting - (boolean) se impostato su true, le immagini esistenti verranno aggiornate; predefinito: 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, verranno creati nuovi item; predefinito: false;
updateExisting - (boolean) se impostato su true, gli item esistenti verranno aggiornati; predefinito: false;
deleteMissing - (boolean) se impostato su true, gli item non presenti nei dati importati verranno eliminati dal database; predefinito: false.
maps object Regole su come importare le mappe.

Parametri supportati:
createMissing - (boolean) se impostato su true, verranno create nuove mappe; predefinito: false;
updateExisting - (boolean) se impostato su true, le mappe esistenti verranno aggiornate; predefinito: 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 supporto.

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

Questo parametro non farà alcuna differenza nell'output. È consentito solo per coerenza con configuration.import.
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 sono presenti nei dati importati, verranno collegati; predefinito: 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; predefinito: false.
templates object Regole su come importare i template.

Parametri supportati:
createMissing - (boolean) se impostato su true, verranno creati nuovi template; predefinito: false;
updateExisting - (boolean) se impostato su true, i template esistenti verranno aggiornati; predefinito: false.
templateDashboards object Regole su come importare le dashboard dei template.

Parametri supportati:
createMissing - (boolean) se impostato su true, verranno create nuove dashboard dei template; predefinito: false;
updateExisting - (boolean) se impostato su true, le dashboard dei template esistenti verranno aggiornate; predefinito: false;
deleteMissing - (boolean) se impostato su true, le dashboard dei template non presenti nei dati importati verranno eliminate dal database; predefinito: false.
triggers object Regole su come importare i trigger.

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

Parametri supportati:
createMissing - (boolean) se impostato su true, verranno create nuove mappe dei valori; predefinito: false;
updateExisting - (boolean) se impostato su true, le mappe dei valori esistenti verranno aggiornate; predefinito: false;
deleteMissing - (boolean) se impostato su true, le mappe dei valori non presenti nei dati importati verranno eliminate dal database; predefinito: 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.