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]] |