Linha 1:
Linha 1:
Esta instrução demonstra como fazer com que o Dude monitore os jobs que foram agendados no ERP. O monitoramento em si é feito via TBC: o Dude irá executar uma consulta pré-definida (via TBC) e um alerta será gerado caso o status do job esteja inconsistente.
Esta instrução demonstra como fazer com que o Dude monitore os jobs que foram agendados no ERP. O monitoramento em si é feito via TBC: o Dude irá executar uma consulta pré-definida (via TBC) e um alerta será gerado caso o status do job esteja inconsistente.
+
+
Os testes estão configurados para serem executados a cada 2 minutos (assim, as consultas são executadas a cada 2 minutos via TBC). Como ele precisa que 3 testes seguidos dêem erro para que um serviço seja considerado como "Não funcional", a notificação será gerada depois de aproximadamente 6 minutos do erro ter ocorrido efetivamente.
== O processo ==
== O processo ==
Linha 5:
Linha 7:
=== 1 - Agendamento do job, pelo ERP ===
=== 1 - Agendamento do job, pelo ERP ===
−
Inicialmente, faça o agendamento do job, pelo ERP, definindo a recorrência desejada. Anote o ID do job, pois ele será necessário para os próximos passos
+
Inicialmente, faça o agendamento do job, pelo ERP, definindo a recorrência desejada. Anote o ID do job, pois ele será necessário para os próximos passos.
+
+
[[File:ClipCapIt-190320-084808.PNG]]
=== 2 - Geração do link para acesso ao TBC ===
=== 2 - Geração do link para acesso ao TBC ===
Linha 11:
Linha 15:
Gere o link que será utilizado para a fazer os testes. Ajuste-o para o job que será utilizado:
Gere o link que será utilizado para a fazer os testes. Ajuste-o para o job que será utilizado:
−
<code>http://dude-adapter.fahor.com.br/ConsultaTBC.py?codcoligada=7&codaplicacao=S&codsentenca=FAHOR.TBC.025&scalar=True¶metros=IDJOB%3D812274%3BTIMEOUTINICIO%3D15%3BTIMEOUTFIM%3D15</code>
+
<code>http://dude-adapter.fahor.com.br/ConsultaTBC.py?codcoligada=7&codaplicacao=S&codsentenca=FAHOR.TBC.025&scalar=True¶metros=IDJOB%3D<strong>ID_JOB</strong>%3BTIMEOUTINICIO%3D<strong>TIMEOUT_DE_INICIO</strong>%3BTIMEOUTFIM%3D<strong>TIMEOUT_DE_FIM</strong></code>
+
+
Os parâmetros que precisam ser informados:
+
+
; ID_JOB
+
: ID do job que foi agendado (e que foi obtido no passo anterior)
+
; TIMEOUT_DE_INICIO
+
: Prazo que o job tem para iniciar, depois do agendamento, em minutos. Se o job não iniciar no horário planejado, será aguardado o tempo especificado aqui antes de considerá-lo como um erro. Sugestão de valor: 15.
+
; TIMEOUT_DE_FIM
+
: Prazo que o job tem para concluir a execução, depois que ela for iniciada, em minutos. Se um job iniciado não concluir no tempo especificado aqui, será gerado um alerta. Sugestão de valor: 15.
+
+
O objetivo dos parâmetros relacionados à timeout é detectar casos em que o servidor de jobs trava ou não está em execução:
+
+
* O timeout de início detecta que o servidor de jobs não está em execução. Neste caso, o job encontra-se agendado, porém, por não ter nenhum servidor em execução, ele não é executado no horário especificado. Assim, se ele demorar mais tempo para iniciar do que o especificado aqui, um alerta será gerado. Sugere-se deixá-lo como 15 minutos para que, caso existam outros jobs concorrentes para execução, não sejam gerados alertas caso ele atrase alguns minutos para iniciar a execução.
+
* O timeout de fim detecta que o servidor de jobs travou enquanto o job estava em execução. Neste caso, o job ficaria com o status "Executando" mas, como o servidor de jobs teria travado (ou reiniciado), ele permaneceria neste status. Assim, caso ele demore mais tempo do que o especificado neste parâmetro, será gerado um alerta. A sugestão de valor para este parâmetro também é 15 minutos; entretanto, caso o job possa demorar mais tempo do que isso para executar, pode-se aumentar este tempo.
+
+
=== 3 - Criação da função no Dude ===
+
+
No Dude, a função será responsável por executar o comando para chamar uma URL e devolver o resultado. Cada job monitorado precisa ter a própria função porque não é possível especificar parâmetros quando esta função é chamada.
+
+
Para isso, no Dude, dê dois cliques no painel '''Functions''' (1) e clique em '''Add''' (2).
+
+
[[File:ClipCapIt-190320-091633.PNG]]
+
+
Na tela de criação da função, especifique um nome no campo '''name''', uma descrição para ela no campo '''description'''. O nome não pode ter espaços e caracteres especiais, e a descrição é só um texto informativo sobre o que a função faz (tanto o nome quanto a descrição são exibidos na visão que tem a lista de funções). No campo '''code''', informe o seguinte (lembrando de substituir o destaque pelo link criado no passo anterior):
+
+
<code>ros_command(":local result [ /tool fetch url=\"<strong>URL</strong>\" as-value output=user ]; :put ($result->\"data\");")</code>
+
+
[[File:ClipCapIt-190319-191513.PNG]]
+
+
Dê um '''Ok''' nesta tela para finalizar a criação da função.
+
+
=== 4 - Criação do probe no Dude ===
+
+
O probe é responsável por chamar a função e, com base no resultado fornecido por ela, determinar se um serviço seria considerado como "funcionando" ou "não funcionando".
−
=== 3 - Criação da função ===
+
Para criar o probe, dê dois cliques no item '''Probes''' (1) do painel da esquerda e clique em '''Add''' (2).
−
:[[File:ClipCapIt-190319-191513.PNG]]
+
[[File:ClipCapIt-190320-093422.PNG]]
−
<code>
+
Na tela de criação do probe, defina os seguintes campos:
−
ros_command(":local result [ /tool fetch url=\"http://dude-adapter.fahor.com.br/ConsultaTBC.py?codcoligada=7&codaplicacao=S&codsentenca=FAHOR.TBC.025&scalar=True¶metros=IDJOB%3D812274%3BTIMEOUTINICIO%3D15%3BTIMEOUTFIM%3D60\" as-value output=user ]; :put ($result->\"data\");")
−
</code>
−
=== 4 - Criação do probe ===
+
; Name
+
: Defina o nome para ela. Neste nome, é importante deixar claro o que o job faz, pois é este nome que estará nos alertas emitidos pelo Dude caso a execução do processo falhe. Uma sugestão é colocar "Job [o que o job faz] - [Agendamento]".
+
; Type
+
: Selecione '''Function'''.
+
; Available
+
: Código que será executado para identificar se o serviço está funcional ou não. True indica que o serviço está funcional; false indica que ele está com problemas.<p>Utilize o código a seguir, substituindo o '''FUNCAO''' pela função criada no passo anterior (repare que há um "()" no final, que deve ser mantido):</p><p><code>string_find(<strong>FUNCAO</strong>(), "Ok") = 0</code></p><p>Obs: O teste é feito utilizando-se a função <code>string_find</code> porque a função de comparação de strings do Dude possuía bugs e não funcionava corretamente em versões antigas (não foram feitos testes nas versões mais novas para ver se o bug já foi corrigido ou não).</p>
+
; Error
+
: Código que será executado para retornar a mensagem de erro nos alertas.<p>Utilize o código a seguir, substituíndo '''FUNCAO''' pela função criada no passo anterior (lembrando de deixar o "()" no final dela):</p><p><code>if(string_find(<strong>FUNCAO</strong>(), "Ok") = 0, "", <strong>FUNCAO</strong>())</code></p>
−
:[[File:ClipCapIt-190319-191730.PNG]]
+
[[File:ClipCapIt-190319-191730.PNG]]
−
<code>
+
Dê um '''Ok''' na tela para concluir a criação do probe.
−
Available: string_find(tbc_job_fechamento_fahor_diario_01h30min(), "Ok") = 0
−
Error: if(string_find(tbc_job_fechamento_fahor_diario_01h30min(), "Ok") = 0, "", tbc_job_fechamento_fahor_diario_01h30min())
−
</code>
=== 5 - Vínculo com o "equipamento ERP" ===
=== 5 - Vínculo com o "equipamento ERP" ===
−
:[[File:ClipCapIt-190319-191933.PNG]]
+
Para que o probe seja executado, deve-se vinculá-lo à um equipamento. Para isso, dê dois cliques em '''Devices''' para abrir o painel de equipamentos e dê dois cliques no equipamento '''ERP''' para abrí-lo.
+
+
[[File:ClipCapIt-190320-095240.PNG]]
+
+
Na aba '''Services''', clique em '''Add'''.
+
+
[[File:ClipCapIt-190319-191933.PNG]]
+
+
Na aba '''General''', informe o probe criado no passo anterior no campo '''Probe'''. Demais campos podem ser mantidos com a opção padrão.
+
+
[[File:ClipCapIt-190319-192049.PNG]]
+
+
Na aba '''Notifications''', marque a opção '''Use notifications''' e marque apenas a opção '''Serviços 24x7'''.
+
+
[[File:ClipCapIt-190319-192229.PNG]]
+
+
Na aba '''History''', desmarque a opção '''Graph poll times''', para que não sejam salvas no banco de dados as estatísticas de quanto tempo cada teste está levando para ser executado (reduzindo a quantidade de registos no banco de dados).
−
:[[File:ClipCapIt-190319-192049.PNG]]
+
[[File:ClipCapIt-190319-192527.PNG]]
−
:[[File:ClipCapIt-190319-192229.PNG]]
+
Por fim, dê um '''Ok''' nas telas que ficaram abertas.
−
:[[File:ClipCapIt-190319-192527.PNG]]
+
[[Categoria:CI]]