configuração.importcompare

Descrição

configuração de matriz.importcompare(parâmetros de objeto)

Este método permite comparar o arquivo de importação com os elementos atuais do sistema e mostra o que será alterado se este arquivo de importação for importado.

Este método está disponível para usuários de qualquer tipo. Permissões para chamar o método pode ser revogado nas configurações de função do usuário. Veja Usuário funções Para maiores informações.

Parâmetros

(object) Parâmetros contendo os dados possíveis para importar e regras como os dados devem ser tratados.

Parâmetro Tipo Descrição
formato
(obrigatório)
string Formato da string serializada.

Valores possíveis:
yaml - YAML;
xml - XML;<br >json - JSON.
source
(obrigatório)
string String serializada contendo os dados de configuração.
rules
(obrigatório)
object Regras sobre como objetos novos e existentes devem ser importados.

O parâmetro rules é descrito em detalhes na tabela abaixo.

::: dica Se nenhuma regra for fornecida, não haverá nada para atualizar e o resultado estará vazio. :::

::: dica A comparação vai ser feito apenas para grupos de hosts e modelos. Triggers e gráficos serão comparado apenas para templates importados, qualquer outro será considerado como "novo". :::

O objeto rules suporta os seguintes parâmetros.

Parâmetro Tipo Descrição
discoveryRules object Regras sobre como importar regras LLD.

Parâmetros suportados:
createMissing - (boolean) se definido como true, novas regras LLD serão criadas; default: false;
updateExisting - (boolean) se definido como true, as regras LLD existentes serão atualizadas; default: false;
deleteMissing - (boolean) se definido como true, as regras LLD não presentes nos dados importados serão excluídas do banco de dados; padrão: falso.
graphs object Regras sobre como importar gráficos.

Parâmetros suportados:
createMissing - (boolean) se definido como true, novos gráficos serão criados; default: false;
updateExisting - (boolean) se definido como true, os gráficos existentes serão atualizados; default: false;
deleteMissing - (boolean) se definido como true, os gráficos não presentes nos dados importados serão excluídos do banco de dados; padrão: falso.
groups object Regras sobre como importar grupos de hosts.

Parâmetros suportados:
createMissing - (boolean) se definido como true, novos grupos de hosts serão criados; default: false;
updateExisting - (boolean) se definido como true, os grupos de hosts existentes serão atualizados; padrão: falso.
hosts object Regras sobre como importar hosts.

Parâmetros suportados:
createMissing - (boolean) se definido como true, novos hosts serão criados; default: false;
updateExisting - (boolean) se definido como true, os hosts existentes serão atualizados; default: false.

Este parâmetro não fará diferença na saída. É permitido apenas para consistência com configuration.import.
httptests object Regras sobre como importar cenários da web.

Parâmetros suportados:
createMissing - (boolean) se definido como true, novos cenários da web serão criados; default: false;
updateExisting - (boolean) se definido como true, os cenários da web existentes serão atualizados; default: false;
deleteMissing - (boolean) se definido como true, os cenários da web não presentes nos dados importados serão excluídos do banco de dados; padrão: falso.
images object Regras sobre como importar imagens.

Parâmetros suportados:
createMissing - (boolean) se definido como true, novas imagens serão criadas; default: false;
updateExisting - (boolean) se definido como true, as imagens existentes serão atualizadas; default: false.

Este parâmetro não fará diferença na saída. É permitido apenas para consistência com configuration.import.
items object Regras sobre como importar itens.

Parâmetros suportados:
createMissing - (boolean) se definido como true, novos itens serão criados; default: false;
updateExisting - (boolean) se definido como true, os itens existentes serão atualizados; default: false;
deleteMissing - (boolean) se definido como true, os itens não presentes nos dados importados serão excluídos do banco de dados; padrão: falso.
maps object Regras sobre como importar mapas.

Parâmetros suportados:
createMissing - (boolean) se definido como true, novos mapas serão criados; default: false;
updateExisting - (boolean) se definido como true, os mapas existentes serão atualizados; default: false.

Este parâmetro não fará diferença na saída. É permitido apenas para consistência com configuration.import.
mediaTypes object Regras sobre como importar tipos de mídia.

Parâmetros suportados:
createMissing - (boolean) se definido como true, novos tipos de mídia serão criados; default: false;
updateExisting - (boolean) se definido como true, os tipos de mídia existentes serão atualizados; default: false.

Este parâmetro não fará diferença na saída. É permitido apenas para consistência com configuration.import.
templateLinkage object Regras sobre como importar links de modelo.

Parâmetros suportados:
createMissing - (boolean) se definido como true, novos links entre os modelos e o host serão criados ; padrão: falso;
deleteMissing - (boolean) se definido como true, os links de modelo não presentes nos dados importados serão excluídos do banco de dados; padrão: falso.
templates object Regras sobre como importar modelos.

Parâmetros suportados:
createMissing - (boolean) se definido como true, novos modelos serão criados; default: false;
updateExisting - (boolean) se definido como true, os modelos existentes serão atualizados; padrão: falso.
templateDashboards object Regras sobre como importar painéis de modelo.

Parâmetros suportados:
createMissing - (boolean) se definido como true, novos painéis de modelo serão criados; default: false;
updateExisting - (boolean) se definido como true, os painéis de modelos existentes serão atualizados; default: false;
deleteMissing - (boolean) se definido como true, os painéis de modelo não presentes nos dados importados serão excluídos do banco de dados; padrão: falso.
triggers object Regras sobre como importar gatilhos.

Parâmetros suportados:
createMissing - (boolean) se definido como true, novos gatilhos serão criados; default: false;
updateExisting - (boolean) se definido como true, os gatilhos existentes serão atualizados; default: false;
deleteMissing - (boolean) se definido como true, triggers não presentes nos dados importados serão excluídos do banco de dados; padrão: falso.
valueMaps object Regras sobre como importar mapas de valor de host ou modelo.

Parâmetros suportados:
createMissing - (boolean) se definido como true, novos mapas de valor serão criados ; default: false;
updateExisting - (boolean) se definido como true, os mapas de valores existentes serão atualizados; default: false;
deleteMissing - (boolean) se definido como true, os mapas de valores não presentes nos dados importados serão excluídos do banco de dados; padrão: falso.

Valores de retorno

(array) Retorna um array com mudanças na configuração, que serão fez.

Exemplos

Importando hosts e itens

Importa o template e itens contidos na string YAML. Se qualquer item estiver faltando no YAML, ele será mostrado como excluído e todo o resto permanecerá inalterado.

Requisição:

{
    "jsonrpc": "2.0",
    "method": "configuration.import",
    "params": {
        "format": "xml",
        "rules": {
            "groups": {
                "createMissing": true,
                "updateExisting": true
            },
            "templates": {
                "createMissing": true,
                "updateExisting": true
            },
            "items": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "triggers": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "discoveryRules": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "valueMaps": {
                "createMissing": true,
                "updateExisting": false
            }
        },
        "source": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><zabbix_export><version>5.4</version><date>2021-05-27T07:12:07Z</date><groups><group><uuid>6f6799aa69e844b4b3918f779f2abf08</uuid><name>Zabbix servers</name></group></groups><templates><template><uuid>e1bde9bf2f0544f5929f45b82502e744</uuid><template>Export template</template><name>Export template</name><groups><group><name>Zabbix servers</name></group></groups><items><item><uuid>3237bc89226e42ed8207574022470e83</uuid><name>Item</name><key>item.key</key><delay>30s</delay><valuemap><name>Host status</name></valuemap><triggers><trigger><uuid>bd1ed0089e4b4f35b762c9d6c599c348</uuid><expression>last(/Export template/item.key)=0</expression><name>Trigger</name></trigger></triggers></item></items><discovery_rules><discovery_rule><uuid>c91616bcf4a44f349539a1b40cb0979d</uuid><name>Discovery rule</name><key>rule.key</key><item_prototypes><item_prototype><uuid>7e164881825744248b3039af3435cf4b</uuid><name>Item prototype</name><key>prototype.key</key></item_prototype></item_prototypes></discovery_rule></discovery_rules><valuemaps><valuemap><uuid>7e666857c5df4af3a338349586f2afc3</uuid><name>Host status</name><mappings><mapping><value>0</value><newvalue>Up</newvalue></mapping><mapping><value>2</value><newvalue>Unreachable</newvalue></mapping></mappings></valuemap></valuemaps></template></templates></zabbix_export>"
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}

Resposta:

{
   "jsonrpc":"2.0",
   "result":{
      "templates":{
         "updated":[
            {
               "before":{
                  "uuid":"e1bde9bf2f0544f5929f45b82502e744",
                  "template":"Export template",
                  "name":"Export template"
               },
               "after":{
                  "uuid":"e1bde9bf2f0544f5929f45b82502e744",
                  "template":"Export template",
                  "name":"Export template"
               },
               "items":{
                  "added":[
                     {
                        "after":{
                           "uuid":"3237bc89226e42ed8207574022470e83",
                           "name":"Item",
                           "key":"item.key",
                           "delay":"30s",
                           "valuemap":{
                              "name":"Host status"
                           }
                        },
                        "triggers":{
                           "added":[
                              {
                                 "after":{
                                    "uuid":"bd1ed0089e4b4f35b762c9d6c599c348",
                                    "expression":"last(/Export template/item.key)=0",
                                    "name":"Trigger"
                                 }
                              }
                           ]
                        }
                     }
                  ],
                  "removed":[
                     {
                        "before":{
                           "uuid":"bd3e7b28b3d544d6a83ed01ddaa65ab6",
                           "name":"Old Item",
                           "key":"ite_old.key",
                           "delay":"30s",
                           "valuemap":{
                              "name":"Host status"
                           }
                        }
                     }
                  ]
               },
               "discovery_rules":{
                  "updated":[
                     {
                        "before":{
                           "uuid":"c91616bcf4a44f349539a1b40cb0979d",
                           "name":"Discovery rule",
                           "key":"rule.key"
                        },
                        "after":{
                           "uuid":"c91616bcf4a44f349539a1b40cb0979d",
                           "name":"Discovery rule",
                           "key":"rule.key"
                        },
                        "item_prototypes":{
                           "updated":[
                              {
                                 "before":{
                                    "uuid":"7e164881825744248b3039af3435cf4b",
                                    "name":"Old item prototype",
                                    "key":"prototype_old.key"
                                 },
                                 "after":{
                                    "uuid":"7e164881825744248b3039af3435cf4b",
                                    "name":"Item prototype",
                                    "key":"prototype.key"
                                 }
                              }
                           ]
                        }
                     }
                  ]
               }
            }
         ]
      }
   },
   "id":1
}

Fonte

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