Qlik
December 4, 2023
Получаем ошибки выполнения заданий из Qlik Sense в почту
Привет! Уже не однократно было описано в разных местах, но я повторюсь.
Есть вариант отправки уведомлений в почту, если у вас какое либо задание упало с ошибкой в Qlik Sense, и всё это без стороннего вмешательства, нам нужно лишь создать правильный конфиг файл для log4net.
Создаем файл LocalLogConfig.xml
и помещаем его на сервер Qlik Sense в папку C:\ProgramData\Qlik\Sense\Scheduler\
, если у вас кластер – то файлик нужно закинуть на каждую ноду. Для отличий, чтобы понимать с какого сервера приходят письма – я указываю имя сервера в теме письма.
<?xml version="1.0"?> <configuration> <appender name="sendMailQlik" type="log4net.Appender.SmtpAppender"> <evaluator type="log4net.Core.LevelEvaluator"> <param name="threshold" value="ERROR"/> </evaluator> <!-- Указываем получателя, если их несколько - то через запятую, это важно! --> <param name="to" value="qlikteam@mydomain.com" /> <!-- Указываем отправителя --> <param name="from" value="qlik@mydomain.com" /> <!-- Почтовый сервер --> <param name="smtpHost" value="mail.mydomain.com" /> <!-- Порт на почтовом сервере --> <param name="port" value="25" /> <!-- При использовании SSL, можно комментировать, необязательный параметр--> <param name="EnableSsl" value="true" /> <!-- Можно указывать 3 варианта - NTLM, None, Basic При None - авторизации не будет NTLM - авторизация будет от службы которая запускает QS сервер Basic - авторизация по логину и паролю --> <param name="Authentication" value="Basic" /> <!-- Если авторизации нет - то можно закомментировать 2 следующие строки--> <param name="username" value="XXXXX" /> <param name="password" value="YYYYY" /> <param name="bufferSize" value="0" /> <!-- обязательный параметр --> <param name="lossy" value="true" /> <!-- обязательный параметр --> <!-- тут указываем тему письма --> <param name="subject" value="Qlik Sense Server: App reload failed" /> <layout type="log4net.Layout.PatternLayout"> <!-- Дальше с шаблоном можно строить что угодно, для примера --> <param name="conversionPattern" value="Date: %date %newline Task Name: %property{TaskName}%newline AppName: %property{AppName}%newline AppId: %property{AppId}%newline Error Message: %message%newline%newline%newline Task link: https://QS1/qmc/tasks?ID=%property{TaskId}" /> </layout> </appender> <!-- Какой тип события проверяется для нашего письма --> <logger name="System.Scheduler.Scheduler.Slave.Tasks.ReloadTask"> <!-- тут название должно быть таким же как и в строке <appender name="sendMailQlik" --> <appender-ref ref="sendMailQlik" /> </logger> <!-- вот тут я не увидел разницы, работает и на событии "Slave" --> <!-- <logger name="System.Scheduler.Scheduler.Master.Tasks.ReloadTask"> <appender-ref ref="sendMailQlik" /> </logger> --> </configuration>