Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Sim, é possível enviar e-mail na falha de tarefa com o Qlik Sense. E mais impressionante, sem uso de softwares adicionais.
O log do Qlik Sense Enterprise é baseado no log4net framework, onde podemos fazer algumas customizações com os appenders.
Para isso é necessário seguir alguns passos.
1-Criar o arquivo LocalLogConfig.xml
Para isso, basta copiar XML e colar em seu editor preferido.
Nesse exemplo foi utilizado a configuração do gmail, recomendo utilizar de sua empresa.
<?xml version="1.0"?>
<configuration>
<!-- Mail appender-->
<appender name="MailAppender" type="log4net.Appender.SmtpAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<param name="levelMax" value="ERROR" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<evaluator type="log4net.Core.LevelEvaluator">
<param name="threshold" value="ERROR"/>
</evaluator>
<param name="to" value="fernando@tonial.xyz" /> <!-- informe o e-mail de quem receberá -->
<param name="cc" value="" />
<param name="from" value="SuaContaGmail@gmail.com" /> <!-- informe o e-mail remetente -->
<param name="subject" value="[QSPCENTRAL] - Qlik Sense - Falha Tarefa!!!" />
<param name="smtpHost" value="smtp.gmail.com" />
<param name="username" value="SuaContaGmail@gmail.com" /> <!-- informe seu login SMTP -->
<param name="password" value="SuaSenhaGmail" /> <!-- informe sua senha SMTP -->
<param name="port" value="587" /> <!-- informe a porta SMTP (25, 465, 567)-->
<param name="EnableSsl" value="true" /> <!-- Pode ser false -->
<param name="Authentication" value="Basic" /> <!-- Pode ser none caso seu SMPT aceite (None Basic NTML) -->
<param name="bufferSize" value="0" /> <!-- Defina como 0 para envio a cada Erro -->
<param name="lossy" value="true" />
<layout type="log4net.Layout.PatternLayout">
<!-- Você pode alterar o valor abaixo caso deseje personalisar a mensagem-->
<param name="conversionPattern" value="%newline%date %-5level %newline%property{TaskName}%newline%property{AppName}%newline%message%newline%newline%newline" />
</layout>
</appender>
<!--Send mail on task failure-->
<logger name="System.Scheduler.Scheduler.Slave.Tasks.ReloadTask"> <!-- Filtrar que tipo de exceção será capturado -->
<appender-ref ref="MailAppender" />
</logger>
</configuration>
2-Salve o arquivo no local correto
Vamos salvar o aquivo criado anteriormente na local correto. É importante destacar, caso você tenha ambiente multi-node, é necessário fazer esse passo e o passo 3 em todos o nodes que possuem o serviço do SCHEDULER habilitado, mais detalhes de como habilitar ou desabilitar um serviço em seu node, veja aqui. Veja também exemplos de ambiente muiti-node.
Acesse o servidor que executa as tarefas e coloque o arquivo LocalLogConfig.xml na seguinte pasta C:\ProgramData\Qlik\Sense\Scheduler, mais detalhes no manual do Qlik Sense, clique aqui.
3- Reinicie o Serviço Qlik Sense Scheduler Service
4-Execute uma Tarefa que gere um erro.
Você pode criar um aplicativo Qlik Sense que gere um erro, por exemplo, ler um campo que não existe na tabela de origem.
Com isso você terá um e-mail em sua caixa de entrada informando o erro da tarefa.
Esse documento foi feito com a ajuda do Clever do Anjos cuv, no qual fez o documento original em inglês, muito obrigado.
Don't worry, be Qlik.
Abraços.
Tonial
Muito top!
Muito obrigado, estava mesmo precisando disso.
Tonial,
Excelente tutorial, muito útil.
Alguém conseguiu funcionar na versão June 2018? Tentei por aqui de várias formas e configurações sem sucesso. E-mail não e disparado, não existe sinais no log da pasta \Scheduler que indique a tentativa de disparo.
Inclusive, testei de duas maneiras: Salvando o arquivo como LocalLogConfig.xml e também como LocalConfig.xml (Fiquei na dúvida sobre qual dos nomes deve ser seguido). cuv fernando.tonial
Estou utilizando a versão June 2018 e funciona normalmente.
Talvez vc tenha que configurar o log de seu Scheduler. Meu caso todos estão Info.
Realmente havia um erro no nome do arquivo no texto, corrigido para o nome correto LocalLogConfig.xml.
Obrigado Douglas
Oi Douglas,
Você está utilizando e-mail corporativo? Caso sim, faça um teste com outro e-mail. Ex. um e-mail do "Gmail". Se ainda não der, confira se a porta de saída esta correta.
Pessoal,
Minhas configurações no Server estão idênticas as do Fernando (Imagem abaixo).
Já experimentei usar Tanto domínio corporativo, quando GMAIL.
No Gmail, testei portas diferentes, 25,587,465, também reduzi a segurança da Conta, deixando autenticação em apenas uma etapa, e também confiando em aplicativos "Menos" Seguros.
Ainda sem sucesso! Alguma outra verificação recomendada?
Obrigado pelo apoio.
Abraço.
Configuração do QCM ABAIXO.
Segue um exemplo que testei aqui e funcionou. Veja se o seu esta assim: (altere as linhas 13,14,16,17,20 e 21.)
<?xml version="1.0"?>
<configuration>
<!-- Mail appender-->
<appender name="MailAppender" type="log4net.Appender.SmtpAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<param name="levelMin" value="WARN" />
<param name="levelMax" value="ERROR" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<evaluator type="log4net.Core.LevelEvaluator">
<param name="threshold" value="ERROR"/>
</evaluator>
<param name="to" value="nome@seudominio.com.br" />
<param name="from" value="nome@seudominio.com.br" />
<param name="subject" value="Qlik Sense Task Alert" />
<param name="smtpHost" value="smtp.cwb.terra.com.br" />
<param name="port" value="587" /> <!-- 25, 465, 567 -->
<param name="EnableSsl" value="False" /> <!-- True False -->
<param name="Authentication" value="Basic" /> <!-- None Basic NTML -->
<param name="username" value="nome@seudominio.com.br" />
<param name="password" value="suasenha" />
<param name="bufferSize" value="0" /> <!-- Set this to 0 to make sure an email is sent on every error -->
<param name="lossy" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="conversionPattern" value="The Task '%property{TaskName}' failed at %date with the Errorlevel '%-5level' %newline%newlineThe App Name is '%property{AppName}' %newline%newlineThe Message was '%message' %newline%newline%newline" />
</layout>
</appender>
<!--Send mail on task failure-->
<logger name="System.Scheduler.Scheduler.Slave.Tasks.ReloadTask">
<appender-ref ref="MailAppender" />
</logger>
</configuration>
Pessoal, consegui resolver meu caso ajustando as configurações do XML para:
Gmail: Porta 465, stmp.gmail.com, ENABLE SSL = TRUE.
Vale ressaltar que a rotina funcionou somente para TASKS agendadas, então, fica o alerta, se disparar a task via "Start", o server não envia o e-mail. (Se estiver errado por favor me corrijam aqui)!
Muito obrigado a todos! Excelente funcionalidade, muito útil!
Bom dia!
Estou tentando configurar o envio de email, porém sem sucesso, estou usando email corporativo. Tem algum lugar que eu consigo visualizar o log para ver o possível erro?