Objetivo
Descrever sobre as funcionalidades disponíveis na API SOAP do OpMon.
Público alvo
Administradores da plataforma OpMon que necessitam fazer integração entre sistemas que utilizam o protocolo SOAP e o OpMon.
Sobre o SOAP
SOAP (Simple Object Access Protocol) é um protocol de comunicação baseado em XML que permite a comunicação de mensagens entre aplicações via HTTP.
Utilização
O acesso descritivo da interface SOAP OpMon pode ser feito pela url:
https://[servidor]/opmon/ws
O arquivo WSDL pode ser acessado em:
https://[servidor]/opmon/ws/index.php?wsdl
Toda a execução de método deve ser feita de forma autenticada utilizando um usuário existente no sistema OpMon.
Funcionalidades
soap_opmon_export
Descrição: Este WebServices é capaz de executar o export das configurações do opmon.
Parâmetros: nenhum.
Retorno: string no formato json indicando sucesso.
soap_clone_host
Descrição: Este WebServices é utilizado para criar hosts no OpMon utilizando um outro como base.
Parâmetros:
src_hostname (string): Nome do host que será utilizado como base;
dst_hostname (string): Nome que o host clone irá assumir;
dst_host_description (string): Descrição que o host clone irá assumir;
dst_host_address (string): Endereço (FQDN/IP) que o host clone irá assumir.
Retorno: string no formato json indicando sucesso.
Exceções:
Caso alguns dos parâmetros não for informado uma exception é lançada;
Caso o usuário utilizado não seja opmonadmin uma exception é lançada;
Caso o opmon não consiga alocar recursos para clonar o host uma exception é lançada.
soap_delete_host
Descrição: Este WebServices tem como finalidade deletar um host da plataforma OpMon.
Parâmetros:
hostname_or_id (string): Nome ou ID do host que o usuário deseja deletar.
Retorno: string no formato json indicando sucesso.
Exceções:
Caso o usuário utilizado não seja opmonadmin uma exception é lançada;
Caso o host não seja encontrado no OpMon uma exception é lançada.
soap_create_host_from_template
Descrição: Este WebServices é utilizado para criar hosts no OpMon utilizando um template como base.
Parâmetros:
template_name (string): Nome do template que será utilizado como base;
dst_hostname (string): Nome que o novo host irá assumir;
dst_host_description (string): Descrição que o novo host irá assumir;
dst_host_address (string): Endereço (FQDN/IP) que o novo host irá assumir.
Retorno: string no formato json indicando sucesso.
Exceções:
Caso alguns dos parâmetros não for informado uma exception é lançada;
Caso o usuário utilizado não seja opmonadmin uma exception é lançada;
Caso o host ja exista no monitoramento uma exception é lançada;
Caso o template não seja encontrado no OpMon uma exception é lançada;
Caso o opmon não consiga alocar recursos para clonar o host uma exception é lançada;
get_host_services_status
Descrição: Status de host e serviços.
Parâmetros:
host_name (string) : nome do host (obrigatório).
Retorno:
Objeto formatado em json contendo os serviços do host, seus estados e dados de performance.
soap_get_hosts_by_services
Descrição: Retorna todos os hosts e serviços do sistema.
Parâmetros: Nenhum.
Retorno:
Objeto formatado em json contendo todos os hosts e seus serviços.
soap_get_hostgroups
Descrição: Retorna todos os grupos de hosts e seus membros.
Parâmetros: Nenhum.
Retorno: Objeto formatado em json contendo todos os grupos de hosts e seus membros.
soap_get_servicegroups
Descrição: Retorna todos os grupos de serviços e seus membros.
Parâmetros: Nenhum.
Retorno: Objeto formatado em json contendo todos os grupos de serviços e seus membros.
soap_add_scheduled_downtime
Descrição: Adiciona uma parada agendada.
Parâmetros:
id (string): Id do host/serviço (host_id!service_id)/hostgroup_id/servicegroup_id (obrigatório);
comment (string) : Comentário (obrigatório);
start_time (int) : Data inicial em formato unix timestamp (obrigatório);
end_time (int): Data final em formato unix timestamp (obrigatório);
type (int): 1 = fixa, 0 = flexível (padrão = 1);
child_hosts (int): 0 = ignora, 1 = agenda uma parada programada, 2 = agenda uma parada não programada (padrão: 0);
triggered_by (int): downtime_id (padrão: vazio);
hour_duration (int): Duração em horas caso tipo seja flexível (padrão: 2);
minute_duration (int): Duração em minutos caso tipo seja flexível (padrão: 0);
force_utf8 (booleano): Força encodificação utf8 (padrão: false);
obj_type (int): 0 = HOST, 1 = SERVICE, 2 = HOSTGROUP, 3 = SERVICEGROUP (padrão: 0).
Retorno: Objeto formatado em json contendo o status da operação.
soap_add_scheduled_downtimes
Descrição: Adiciona uma parada agendada em múltiplos elementos.
Parâmetros:
ids (array string): Array de Ids de hosts/serviços;
(host_id!service_id)/hostgroup_id/servicegroup_id (obrigatório);
comment (string) : Comentário (obrigatório);
start_time (int) : Data inicial em formato unix timestamp (obrigatório);
end_time (int): Data final em formato unix timestamp (obrigatório);
type (int): 1 = fixa, 0 = flexível (padrão = 1);
child_hosts (int): 0 = ignora, 1 = agenda uma parada programada, 2 = agenda uma parada não programada (padrão: 0);
triggered_by (int): downtime_id (padrão: vazio);
hour_duration (int): Duração em horas caso tipo seja flexível (padrão: 2);
minute_duration (int): Duração em minutos caso tipo seja flexível (padrão: 0);
force_utf8 (booleano): Força encodificação utf8 (padrão: false);
obj_type (int): 0 = HOST, 1 = SERVICE, 2 = HOSTGROUP, 3 = SERVICEGROUP (padrão: 0);
Retorno: Objeto formatado em json contendo o status da operação.
soap_get_scheduled_downtime
Descrição: Lista as paradas agendadas do sistema associadas a um determinado elemento.
Parâmetros:
id (string): Id do host/serviço (host_id!service_id)/hostgroup_id/servicegroup_id (padrão: vazio);
comment (string) : Filtra por comentário (padrão: vazio);
force_utf8 (booleano): força encodificação utf8 (padrão: false);
obj_type (int): 0 = HOST, 1 = SERVICE, 2 = HOSTGROUP, 3 = SERVICEGROUP (padrão: 0).
Retorno: Objeto formatado em json contendo paradas agendadas de todos os elementos associados.
OBS: Paradas com a propriedade type igual a 1102 e 1103 são consideradas abertas e paradas com type igual a 1104 são consideradas encerradas.
soap_remove_scheduled_downtime
Descrição: Remove uma parada agendada quando o argumento downtime_id for usado ou todas as paradas de um determinado elemento.
Parâmetros:
id (string): Id do host/serviço (host_id!service_id)/hostgroup_id/servicegroup_id (obrigatório);
downtime_id (int): Id da parada (opcional, caso seja usado somente uma parada será removida);
obj_type (int): 0 = HOST, 1 = SERVICE, 2 = HOSTGROUP, 3 = SERVICEGROUP (padrão: 0).
Retorno: Objeto formatado em json contendo o status da operação
soap_remove_scheduled_downtimes
Descrição: Remove todas as paradas agendas de um grupo de elementos de um mesmo tipo.
Parâmetros:
ids (array string): Array de Ids de hosts/serviços (host_id!service_id)/hostgroup_id/servicegroup_id (obrigatório);
obj_type (int): 0 = HOST, 1 = SERVICE, 2 = HOSTGROUP, 3 = SERVICEGROUP (padrão: 0).
Retorno: Objeto formatado em json contendo o status da operação.
soap_remove_scheduled_downtimes_by_comment
Descrição: Remove todas as paradas agendas de um grupo de elementos de um mesmo tipo usando o comentário como filtro.
Parâmetros:
ids (array string): Array de Ids de hosts/serviços (host_id!service_id)/hostgroup_id/servicegroup_id (obrigatório);
comment (string) : Filtra por comentário (padrão: vazio);
force_utf8 (booleano): força encodificação utf8 (padrão: false);
obj_type (int): 0 = HOST, 1 = SERVICE, 2 = HOSTGROUP, 3 = SERVICEGROUP (padrão: 0);
Retorno: Objeto formatado em json contendo o status da operação.
Exemplos:
Seguem alguns exemplos de uso da API em PHP usando a biblioteca NuSOAP
<?php //error_reporting(E_ALL); require "nusoap/lib/nusoap.php"; //host onde esta rodando o servidor opmon $service = "https://localhost/opmon/ws/"; $client = new nusoap_client($service); $client->soap_defencoding = 'UTF-8'; $client->decode_utf8 = false; //Usuário e senha do opmon $client->setCredentials("opmonadmin","opservices"); //Retorna todas as paradas agendadas ativas ou não do serviço ID 187!60522 $rs = $client->call('soap_get_scheduled_downtime', array('187!60522','',false,1)); var_dump($rs); //adiciona uma parada agendada para todos os serviços de um grupo com ID 1 $rs = $client->call('soap_add_scheduled_downtimes', array(array(1),'nova parada,time()+1,time()+60,1,0,0,2,0,false,3)); //Remove todas a paradas ativas do host ID 2 $rs = $client->call('soap_remove_scheduled_downtime',array('2',null,0)); //Remove todas a paradas ativas filtradas pelo comentário "test" do grupo de serviço com ID 1 $rs = $client->call('soap_remove_scheduled_downtimes_by_comment', array(array('1'),'test',false,0,3)); //Saida de API echo 'Response'; echo '< pre >' . htmlspecialchars($client->response, ENT_QUOTES) . '< /pre >'; echo 'Fault'; echo '< pre >' . htmlspecialchars($client->fault, ENT_QUOTES) . '< /pre >'; ? >