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.

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

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

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

Il parametro rules è descritto in dettaglio nella tabella seguente.

Parameter behavior:
- required

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

Il confronto verrà eseguito solo per host group e template. I trigger e i graph saranno confrontati solo per i template importati; qualsiasi altro sarà considerato come "nuovo".

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 graph.

Parametri supportati:
createMissing - (boolean) se impostato su true, verranno creati nuovi graph; predefinito: false;
updateExisting - (boolean) se impostato su true, i graph esistenti verranno aggiornati; predefinito: false;
deleteMissing - (boolean) se impostato su true, i graph 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 template.

Parametri supportati:
createMissing - (boolean) se impostato su true, verranno creati nuovi gruppi template; predefinito: false;
updateExisting - (boolean) se impostato su true, i gruppi 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 media.

Parametri supportati:
createMissing - (boolean) se impostato su true, verranno creati nuovi tipi di media; predefinito: false;
updateExisting - (boolean) se impostato su true, i tipi di media 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 non collegati all'host o al template in fase di importazione, ma 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 i dashboard dei template.

Parametri supportati:
createMissing - (boolean) se impostato su true, verranno creati nuovi dashboard dei template; predefinito: false;
updateExisting - (boolean) se impostato su true, i dashboard dei template esistenti verranno aggiornati; predefinito: false;
deleteMissing - (boolean) se impostato su true, i dashboard dei template non presenti nei dati importati verranno eliminati 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 i value map di host o template.

Parametri supportati:
createMissing - (boolean) se impostato su true, verranno creati nuovi value map; predefinito: false;
updateExisting - (boolean) se impostato su true, i value map esistenti verranno aggiornati; predefinito: false;
deleteMissing - (boolean) se impostato su true, i value map non presenti nei dati importati verranno eliminati 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 cosa verrà modificato se questo template verrà importato.

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.4</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
}

Response:

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