API SOAP OpMon

 

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.

get_avail

Descrição: Retorna os dados referente a disponibilidade dos elementos passados por parâmetro

Parâmetros:

reportType (string): Tipo do relatório que será gerado, valores possíveis: simplified, detailed or tabular;
objectType (string): Tipo de objeto que será selecionado, valores possíveis: host, service, servicecatalog, hostgroup, servicegroup;
timeCutName (string): Nome do timecut cadastrado no opmon. ex: 24×7, 8×5 e etc;
reportPeriod (string): Período dos dados a serem coletados, valores possíveis: thishour, thisweek, thismonth, thisyear, today, yesterday, last24hours, lastweek, lastmonth, lastyear, last7days, last31days, {“last”: {“counter”: , “unit”: <days|hours|weeks|months>} ou {“custom”: {“start”: , “end”: }”;
selectedItens (string): String no formato json que contêm os elementos dos quais deseja-se obter o dados.

Exemplos:
hosts => “[‘opmon’, ‘windows’]”,
services => “[‘opmon!Load’]”,
servicecatalog => “[‘test’]”,
hostgroup => “[‘Linux’]”,
servicegroup => “[‘other’]”

advancedOptions (string): String no formato json representando um array com as informações que serão setadas. Os valores que o array pode conter são: “showThreshold”, “schedAsOk”, “breachAsOk” ou “softStates”. (opcional)

Exemplo:
“[‘showThreshold’, ‘schedAsOk’]”

Retorno: string no formato json com os dados solicitados.

Exceções:

Caso alguns dos parâmetros não for informado ou for inválido uma exception é lançada;

get_avail_by_report_name

Descrição: Retorna os dados referente a disponibilidade dos elementos baseando-se em um relatório salvo.

Parâmetros:
reportName (string): Nome do relatório salvo na interface do relatório de disponibilidade.

Retorno:
string no formato json com os dados solicitados.

//"reportType": "simplified|detailed|tabular",
$reportType = 'detailed';

//"objectType": "host|service|hostgroup|servicegroup|servicecatalog",
$objectType = 'service';

$advancedOptions = json_encode(array("showThreshold", "schedAsOk", "breachAsOk", "softStates"));

$timeCutName = '24x7';

//"reportPeriod": "thishour|thisweek|thismonth|thisyear|today|yesterday|
//last24hours|lastweek|lastmonth|lastyear|last7days|last31days|{last: {counter: 1, unit: days|hours|weeks|months}|
//custom: {start: dd-mm-yyyy HH:MM, end: dd-mm-yyyy HH:MM}",
$reportPeriod = json_encode(array('custom' => array('start' => '29-08-2016 23:59', 'end' => '31-08-2014 23:59')));

$selectedItens = json_encode(array('opmon!Load', 'opmon!Disk_/'));

$args = array(
    'reportType' => $reportType,
    'objectType' => $objectType,
    'timeCutName' => $timeCutName,
    'reportPeriod' => $reportPeriod,
    'selectedItens' => $selectedItens
    'advancedOptions' => $advancedOptions
);

// Coletando dados
echo ($client->call('get_avail', $args));

//Coletando dados utilizando um relatório salvo
echo ($client->call('get_avail_by_report_name', array('reportName' => 'test')));

 

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 >';
?>

Updated on 31/08/2021

Esse artigo foi útil para você?

Ficou com alguma dúvida?

Perguntas & Respostas

Participe da nossa comunidade e tire dúvidas ou compartilhe respostas e ideias.

Participar

Professional Support

Não encontrou a resposta que procura? Não se preocupe, estamos aqui para ajudar!

Abrir chamado

Treinamento Online

Através da plataforma Udemy, você encontra todos os treinamentos das nossas soluções.

Inscreva-se