configuration.importcompare

Apraksts

array configuration.importcompare(object parameters)

Šī metode ļauj salīdzināt importēšanas failu ar pašreizējiem sistēmas elementiem un parāda, kas tiks mainīts, ja šis importēšanas fails tiks importēts.

Šī metode ir pieejama jebkura tipa lietotājiem. Atļaujas izsaukt šo metodi var tikt atsauktas lietotāja lomas iestatījumos. Plašāku informāciju skatiet sadaļā Lietotāju lomas.

Parametri

(object) Parametri, kas satur iespējamos importējamos datus un noteikumus, kā šie dati jāapstrādā.

Parameter Type Description
format string Serializētās virknes formāts.

Iespējamās vērtības:
yaml - YAML;
xml - XML;
json - JSON.

Parametra uzvedība:
- required
source string Serializēta virkne, kas satur konfigurācijas datus.

Parametra uzvedība:
- required
rules object Noteikumi, kā salīdzināt jaunus un esošus objektus.

Admin un User tipa lietotāji var salīdzināt jaunus objektus tikai ar esošajiem, kuriem tiem ir read-only vai read-write atļauja.

Parametrs rules ir detalizēti aprakstīts tabulā zemāk.

Parametra uzvedība:
- required

Ja netiek norādīti noteikumi, nebūs ko atjaunināt, un rezultāts būs tukšs.

Salīdzināšana tiks veikta tikai host grupām un veidnēm. Trigeri un grafiki tiks salīdzināti tikai importētajām veidnēm, visi pārējie tiks uzskatīti par "jauniem".

Objekts rules atbalsta šādus parametrus.

Parameter Type Description
discoveryRules object Noteikumi, kā importēt LLD noteikumus.

Atbalstītie parametri:
createMissing - (boolean) ja iestatīts uz true, tiks izveidoti jauni LLD noteikumi; noklusējums: false;
updateExisting - (boolean) ja iestatīts uz true, esošie LLD noteikumi tiks atjaunināti; noklusējums: false;
deleteMissing - (boolean) ja iestatīts uz true, LLD noteikumi, kas nav importētajos datos, tiks dzēsti no datubāzes; noklusējums: false.
graphs object Noteikumi, kā importēt grafikus.

Atbalstītie parametri:
createMissing - (boolean) ja iestatīts uz true, tiks izveidoti jauni grafiki; noklusējums: false;
updateExisting - (boolean) ja iestatīts uz true, esošie grafiki tiks atjaunināti; noklusējums: false;
deleteMissing - (boolean) ja iestatīts uz true, grafiki, kas nav importētajos datos, tiks dzēsti no datubāzes; noklusējums: false.
host_groups object Noteikumi, kā importēt host grupas.

Atbalstītie parametri:
createMissing - (boolean) ja iestatīts uz true, tiks izveidotas jaunas host grupas; noklusējums: false;
updateExisting - (boolean) ja iestatīts uz true, esošās host grupas tiks atjauninātas; noklusējums: false.
template_groups object Noteikumi, kā importēt veidņu grupas.

Atbalstītie parametri:
createMissing - (boolean) ja iestatīts uz true, tiks izveidotas jaunas veidņu grupas; noklusējums: false;
updateExisting - (boolean) ja iestatīts uz true, esošās veidņu grupas tiks atjauninātas; noklusējums: false.
hosts object Noteikumi, kā importēt hosts.

Atbalstītie parametri:
createMissing - (boolean) ja iestatīts uz true, tiks izveidoti jauni hosts; noklusējums: false;
updateExisting - (boolean) ja iestatīts uz true, esošie hosts tiks atjaunināti; noklusējums: false.

Šim parametram nebūs nekādas ietekmes uz izvadi. Tas ir atļauts tikai saderībai ar configuration.import.
httptests object Noteikumi, kā importēt tīmekļa scenārijus.

Atbalstītie parametri:
createMissing - (boolean) ja iestatīts uz true, tiks izveidoti jauni tīmekļa scenāriji; noklusējums: false;
updateExisting - (boolean) ja iestatīts uz true, esošie tīmekļa scenāriji tiks atjaunināti; noklusējums: false;
deleteMissing - (boolean) ja iestatīts uz true, tīmekļa scenāriji, kas nav importētajos datos, tiks dzēsti no datubāzes; noklusējums: false.
images object Noteikumi, kā importēt attēlus.

Atbalstītie parametri:
createMissing - (boolean) ja iestatīts uz true, tiks izveidoti jauni attēli; noklusējums: false;
updateExisting - (boolean) ja iestatīts uz true, esošie attēli tiks atjaunināti; noklusējums: false.

Šim parametram nebūs nekādas ietekmes uz izvadi. Tas ir atļauts tikai saderībai ar configuration.import.
items object Noteikumi, kā importēt vienumus.

Atbalstītie parametri:
createMissing - (boolean) ja iestatīts uz true, tiks izveidoti jauni vienumi; noklusējums: false;
updateExisting - (boolean) ja iestatīts uz true, esošie vienumi tiks atjaunināti; noklusējums: false;
deleteMissing - (boolean) ja iestatīts uz true, vienumi, kas nav importētajos datos, tiks dzēsti no datubāzes; noklusējums: false.
maps object Noteikumi, kā importēt kartes.

Atbalstītie parametri:
createMissing - (boolean) ja iestatīts uz true, tiks izveidotas jaunas kartes; noklusējums: false;
updateExisting - (boolean) ja iestatīts uz true, esošās kartes tiks atjauninātas; noklusējums: false.

Šim parametram nebūs nekādas ietekmes uz izvadi. Tas ir atļauts tikai saderībai ar configuration.import.
mediaTypes object Noteikumi, kā importēt multivides tipus.

Atbalstītie parametri:
createMissing - (boolean) ja iestatīts uz true, tiks izveidoti jauni multivides tipi; noklusējums: false;
updateExisting - (boolean) ja iestatīts uz true, esošie multivides tipi tiks atjaunināti; noklusējums: false.

Šim parametram nebūs nekādas ietekmes uz izvadi. Tas ir atļauts tikai saderībai ar configuration.import.
templateLinkage object Noteikumi, kā importēt veidņu saites.

Atbalstītie parametri:
createMissing - (boolean) ja iestatīts uz true, veidnes, kas nav saistītas ar importējamo hostu vai veidni, bet ir importētajos datos, tiks saistītas; noklusējums: false;
deleteMissing - (boolean) ja iestatīts uz true, veidnes, kas ir saistītas ar importējamo hostu vai veidni, bet nav importētajos datos, tiks atsaistītas, nenoņemot no atsaistītajām veidnēm mantotos objektus (vienumus, trigerus utt.); noklusējums: false.
templates object Noteikumi, kā importēt veidnes.

Atbalstītie parametri:
createMissing - (boolean) ja iestatīts uz true, tiks izveidotas jaunas veidnes; noklusējums: false;
updateExisting - (boolean) ja iestatīts uz true, esošās veidnes tiks atjauninātas; noklusējums: false.
templateDashboards object Noteikumi, kā importēt veidņu paneļus.

Atbalstītie parametri:
createMissing - (boolean) ja iestatīts uz true, tiks izveidoti jauni veidņu paneļi; noklusējums: false;
updateExisting - (boolean) ja iestatīts uz true, esošie veidņu paneļi tiks atjaunināti; noklusējums: false;
deleteMissing - (boolean) ja iestatīts uz true, veidņu paneļi, kas nav importētajos datos, tiks dzēsti no datubāzes; noklusējums: false.
triggers object Noteikumi, kā importēt trigerus.

Atbalstītie parametri:
createMissing - (boolean) ja iestatīts uz true, tiks izveidoti jauni trigeri; noklusējums: false;
updateExisting - (boolean) ja iestatīts uz true, esošie trigeri tiks atjaunināti; noklusējums: false;
deleteMissing - (boolean) ja iestatīts uz true, trigeri, kas nav importētajos datos, tiks dzēsti no datubāzes; noklusējums: false.
valueMaps object Noteikumi, kā importēt host vai veidnes vērtību kartējumus.

Atbalstītie parametri:
createMissing - (boolean) ja iestatīts uz true, tiks izveidoti jauni vērtību kartējumi; noklusējums: false;
updateExisting - (boolean) ja iestatīts uz true, esošie vērtību kartējumi tiks atjaunināti; noklusējums: false;
deleteMissing - (boolean) ja iestatīts uz true, vērtību kartējumi, kas nav importētajos datos, tiks dzēsti no datubāzes; noklusējums: false.

Atgrieztās vērtības

(array) Atgriež masīvu ar izmaiņām konfigurācijā, kas tiks veiktas.

Piemēri

Veidnes importēšanas salīdzināšana

Salīdziniet XML virknē ietverto veidni ar pašreizējiem sistēmas elementiem un parādiet, kas tiks mainīts, ja šī veidne tiks importēta.

Pieprasījums:

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

Atbilde:

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

Avots

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