qqmailplugin是什么(qqmailplugin是什么文件夹可以删除吗3)干货分享
Azkaban是一个工作流任务调度系统,可以以特定的顺序执行一组命令,轻量级且方便使用。本文将为大家介绍如何使用邮件和电话报警让工作流自动调度更
Azkaban是一个工作流任务调度系统,可以以特定的顺序执行一组命令,轻量级且方便使用本文将为大家介绍如何使用邮件和电话报警让工作流自动调度更加万无一失邮件报警注册一个126邮箱,并在邮箱的账号管理中开启SMTP服务,开启SMTP服务后,页面会显示一个授权密码,这个密码一定记住,因为只会出现这一次。
后续配置步骤如下:1、在azkaban-web节点上编辑azkaban-web/conf/azkaban.properties,添加如下内容:#这里设置邮件发送服务器,需要申请邮箱,切开通stmp服务,以下只是例子
mail.sender=helloworld@126.com mail.host=smtp.126.com mail.user=helloworld@126.com mail.password=用邮箱的授权码
#这里设置工作流成功或者失败默认向哪里发送服务job.failure.email=helloworld@126.com job.success.email=helloworld@126.com2、保存并重启web-server
$bin/shutdown-web.sh $bin/start-web.sh3、 编辑basic.flow,加入如下属性:nodes: - name: jobA type: command
config: command: echo "This is an emailtest." failure.emails: helloworld@126.com success.
emails: helloworld@126.com notify.emails: helloworld@126.com4、 将azkaban.project和basic.flow压缩成email.zip
5、 创建工程→上传文件→执行作业→查看结果6、 观察邮箱,发现执行成功或失败的邮件自定义报警有时任务执行失败后邮件报警接收不及时,需要自定义报警装置,比如电话报警此时需要首先找一个电话通知服务商,比如http://www.onealert.com/,购买相应服务后,获取通知API。
然后进行MailAlter二次开发1、 onealert官网注册一个账号,配置告警RestAPI,步骤如下:
2、 配置分派策略和通知策略,步骤如下:
3、 开发自定义告警插件新建一个普通的java项目,命名为alerter,在项目的lib里添加4个jar包,,并将4个jar包 Add as Library,如下图。
新建PhoneAlerter类,实现azkaban.alert.Alerter接口,代码如下:packagecom.atguigu; importazkaban.alert.Alerter; importazkaban.executor.ExecutableFlow; importazkaban.executor.Executor; importazkaban.executor.ExecutorManagerException; importazkaban.sla.SlaOption; importazkaban.utils.Props; importcom.google.gson.JsonObject; importorg.apache.log4j.Logger; importjava.util.List; publicclass PhoneAlterter implements Alerter {
privatestaticfinal Logger logger =Logger.getLogger(PhoneAlterter.class); private String appKey;
private String url; publicPhoneAlterter(Props props){ appKey = props.getString("my.alert.appKey"
,""); url =props.getString("my.alert.url", ""); logger.info("Appkey: " +appKey); logger.info(
"URL: " + url); } /** * 成功的通知 * * @param exflow * @throws Exception */
@OverridepublicvoidalertOnSuccess(ExecutableFlowexflow)throws Exception { } /** * 出现问题的通知 * *
@param exflow * @param extraReasons * @throws Exception */@OverridepublicvoidalertOnError
(ExecutableFlowexflow, String... extraReasons)throws Exception { //一般来说网络电话服务都是通过HTTP请求发送的,这里可以调用shell发送HTTP请求
JsonObject alert = new JsonObject(); alert.addProperty("app",appKey); alert.addProperty(
"eventId",exflow.getId()); alert.addProperty("eventType", "trigger"); alert.addProperty(
"alarmContent", exflow.getId() + "fails!"); alert.addProperty("priority","2"); String[] cmd =
new String[8]; cmd[0] = "curl"; cmd[1] = "-H"; cmd[2] = "Content-type:application/json"
; cmd[3] = "-X"; cmd[4] = "POST"; cmd[5] = "-d"; cmd[6] = alert.toString(); cmd[
7] = url; logger.info("Sending phonealert!"); Runtime.getRuntime().exec(cmd); }
/** * 首次出现问题的通知 * * @param exflow * @throws Exception */@OverridepublicvoidalertOnFirstError
(ExecutableFlow exflow)throws Exception { } @OverridepublicvoidalertOnSla(SlaOption slaOption,String slaMessage)
throws Exception { } @OverridepublicvoidalertOnFailedUpdate(Executorexecutor, List executions, ExecutorManagerException e)
{ } }新建azkaban-web/plugin/alerter/phone-alerter文件夹,并在内部新建conf和lib两个目录在新建的conf目录里,新建plugin.properties文件,添加内容如下:。
#name一定要设置email,用以覆盖默认的邮件报警alerter.name=email alerter.external.classpaths=lib alerter.class=com.atguigu.PhoneAlterter
#这两个参数和你使用的AlertAPI有关系my.alert.appKey=xxxxxx-xxxxxxxxxxxx my.alert.url=xxxxx将代码jar包上传到azkaban-web/lib文件夹,并重启web服务。
$bin/shutdown-web.sh $bin/start-web.sh中4、 测试,执行任务,等待报警。4、 测试,执行任务,等待报警。
大数据和云计算的关系大数据技术生态体系大数据的切片机制有哪些大数据JUC面试题
- 标签:
- 编辑:李松一
- 相关文章
-
驱动精灵 2009(驱动精灵下载驱动很慢需要开会员)一篇读懂
上网一查是显卡驱动问题,网上给的解决办法卸载显卡,卸载了我咋用独显,我更新一下驱动,下载驱动精灵,更新尼玛,蜗牛一般的速度,都21世纪了…
-
使命召唤9不能玩(使命召唤为啥不能玩了)硬核推荐
IT之家 6 月 23 日消息,动视宣布将于 9 月 21 日关闭《使命召唤 ®:战争地带™ 火山岛》游戏,以便于将开发重心放在新体验上。…
- 朱自清散文《匆匆》简述幼儿散文的特点丰子恺散文《童年》
- 散文杂谈怎么写范文图片大全高中生散文有哪几种现代知名散文作家
- 散文摘抄张爱玲散文集散文杂谈好书推荐理由50字左右
- 散文构成散文杂谈手抄报图片简单又漂亮大全
- 散文家有哪些散文杂谈好书推荐语50字怎么写散文杂谈怎么写范文图片