监控告警
告警监控模块中保存了平台产生的所有离线任务告警信息,同时支持用户自定义告警规则,配置成功后,当监控的任务触发了告警规则后,将以邮件、短信、钉钉或自定义的形式通知相关人员。
告警规则配置
「运维中心->监控告警->告警规则」中点击「创建告警规则」按钮,进行告警规则配置。如下图
任务告警
任务告警支持创建「周期任务告警规则」、「手动任务告警规则」和「基线告警规则」,如下图所示
当告警对象选择为「周期任务」或「手动任务」时
选择任务:
1、支持选择所有已提交的任务,当有新提交的任务,会动态进入这个范围内;若存在已提交的任务下线,则自动移出该范围。
2、支持按照目录批量选择任务。当选中目录后,该目录下有新增任务或移除任务,会动态进入该范围
3、支持根据任务名称选择任务,可搜索范围为当前项目下的所有已提交的任务,支持模糊搜索和多选
当在原监控目录下已经提交过,移动非监控目录下后未提交,则告警不会产生变化。生效条件以提交为准。
任务黑名单:当选择任务方式是「所有任务」或「按目录选择」时,出现任务黑名单选择框,黑名单范围内的任务不纳入告警监控,即不去检查是否触发了告警规则,也不进行告警。
补数据告警:勾选补数据告警后,选中任务在补数据时也会触发告警(告警对象为手动任务时,不存在补数据告警)
触发条件:支持多选,当选中“定时未完成”或“超时未完成”时,选项后展示如下图所示的时间配置。当任务和触发条件都多选时,任一任务触发任一条件将会发送告警
触发方式
失败:任务提交失败或运行失败
停止:任务被手动取消或由于其上游某个父节点任务被取消导致当前节点任务自动被取消
成功:任务执行成功
超时未完成:从任务开始运行计算,超出指定时间范围
定时未完成:从计划时间开始计算,超出定时时间(时分)(告警对象为手动任务时,不存在定时未完成的情况)
资源占用:仅当监控选中任务范围中包含hive sql任务时,出现该触发方式。监控指标为cpu数(单位C)和内存大小(单位M),输入框中可填值的范围为(0,99999]的整数。当hivesql运行过程中cpu数和内存数中的任意一个的资源占用超过此处的限制值时触发告警。
告警方式:支持短信、邮件、钉钉和自定义通道,告警通道需要在控制台进行配置。
告警接受人:选择任一告警方式,会出现告警接受人字段。目前支持选择此任务的责任人、项目组内的其他人员和项目内已经引入的用户组。
告警配置中勾选任务责任人,只有自己作为责任人的任务报错时,才会给任务责任人发送告警信息
当自定义告警jar包支持获取「其他」字段后,此处支持填写自定义告警通道支持的联系人信息,例如手机号、邮箱
自定义告警方法的传递的 envMap 参数中增加两个 key,分别表示接收人的邮箱列表,和其他中配置的邮箱。
- DT_RECEIVER_EMAILS : 接收人的邮箱列表
- EXTERNAL_RECEIVER_EMAILS:其他中配置的邮箱
public class Main implements ICustomizeChannel {
@Override
public R sendCustomizeAlert(Object data, Map<String, Object> extMap) {
// 告警配置的接收人 email
List<String> dtReceiverEmails = (List<String>) extMap.get("DT_RECEIVER_EMAILS");
// 告警配置的其他接收人
List<String> externalReceiverEmails = (List<String>) extMap.get("EXTERNAL_RECEIVER_EMAILS");
return null;
}
}
基线告警配置
告警规则名称
告警对象:基线
选择基线:可搜索范围为当前项目下「基线管理」中所有的基线,支持模糊搜索和多选
触发条件:支持多选,支持选择“完成”“预警”“破线”“出错”“未完成”触发条件
完成:指基线上的实例运行成功;
预警:基线上的实例预计完成时间已达到余量预警条件;
破线:基线上的实例预计无法在承诺时间完成;
出错:指基线所在有效实例链路上存在任务运行失败、提交失败、取消、冻结的情况;
定时未完成:基线上的实例实际没有在承诺时间完成;
- 告警行为:与告警对象为“任务”时一致
告警规则列表
告警规则配置完成后,将展示在如下图中的规则列表中,已创建的告警规则支持「修改」、「删除」、「开启/关闭」。
开启某告警规则,表示平台会按照用户设定的规则监控并发送告警。 关闭告警规则后,立即生效。
告警信息列表
告警记录列表中包括了系统产生的所有任务和基线告警信息,可查看每条告警明细,包含告警发送时间、任务名称和类型、触发方式、任务/基线责任人、告警方式、告警接收人和具体告警内容,目前产生的告警总数等信息。 可根据告警发送时间、任务/基线名称、告警接收人等信息筛选特定的告警记录。
告警通道配置
在「控制台->告警通道->新增告警通道」中可以配置告警通道,如下图所示
点击「新增告警通道」,进入配置页面,支持选择“短信通道”、“邮件通道”、“钉钉通道”、“自定义通道”等通道类型。
一、短信通道
当通道类型选择为“短信通道”时,字段展示如下图所示:
通道模式:短信通道只支持扩展通道,需上传指定jar包。
通道标识:通道标识标识是通道的唯一标识,不能重复
通道配置信息:
className: 表示jar中实现接口ISmsChannel的类的完整类名
通道配置信息客户可以根据开发需求添加字段,该字段不会被处理,在发送告警的时候回封装到extMap字段中传入方法内。
短信扩展插件jar包编写说明
(1)导入jar
maven直接依赖:
<!-- console工程 -->
<dependency>
<groupId>com.dtstack.console</groupId>
<artifactId>console-alert-plugin-sdk</artifactId>
<version>4.0.0-SNAPSHOT</version>
</dependency>
(2)实现接口
短信接口实现
继承接口: com.dtstack.channel.ISmsChannel
public interface ISmsChannel {
/**
* 短信发送
* @param message 短信内容
* @param phones 手机号
* @param extMap 动态参数
* @return
* @throws BizException
*/
public R sendSms(String message, List<String> phones, Map<String, Object> extMap) throws BizException;
}
参数:
参数名 | 类型 | 备注 |
---|---|---|
message | String | 短信内容 |
phones | Array | 手机号列表 |
extMap | Map | 扩展参数:在console页面配置的json。 |
二、邮件通道
当通道类型选择为“邮件通道”时,字段展示如下图所示:
通道模式:邮件通道支持扩展通道和默认邮件通道,选择扩展通道需上传指定jar包。
通道标识:通道标识标识是通道的唯一标识,不能重复
通道配置信息:
扩展通道
- className: 表示jar中实现接口ISmsChannel的类的完整类名(只有客户选择扩展通道才有效)
- 通道配置信息客户可以根据开发需求添加字段,该字段不会被处理,在发送告警的时候回封装到extMap字段中传入方法内。
默认邮件通道
- mail.smtp.host : 邮箱服务商的stmp服务器地址(例如:smtp.yeah.net)
- mail.smtp.port:邮箱服务商的stmp服务器开放的端口(例如:25,465等)
- mail.smtp.ssl.enable: 是否支持ssl加密(如果465端口一般都需要ssl加密,具体配置要按照邮箱服务商的要求)
- mail.smtp.username:邮件发送者账号
- mail.smtp.password:邮件发送者密码
- mail.smtp.from:邮件发送者
通知消息模版:<企业名称>$(message),请及时处理
邮件扩展插件jar包编写说明
(1)导入jar
maven直接依赖:
<!-- console工程 -->
<dependency>
<groupId>com.dtstack.console</groupId>
<artifactId>console-alert-plugin-sdk</artifactId>
<version>4.0.0-SNAPSHOT</version>
</dependency>
(2)实现接口
继承接口:com.dtstack.channel.IMailChannel
public interface IMailChannel {
/**
* 邮箱发送
* @param recipients 邮箱
* @param subject 主题
* @param message 内容
* @param attachFiles 附件(可为空)
* @param extMap 动态参数
* @return
* @throws BizException
*/
public R sendMail(List<String> recipients, String subject, String message, List<File> attachFiles, Map<String, Object> extMap) throws BizException;
}
参数:
参数名 | 类型 | 备注 |
---|---|---|
recipients | Array | 邮箱地址 |
subject | String | 主题 |
message | String | 内容 |
attachFiles | Array[string] | 附件文件地址列表 |
extMap | map | 动态参数 |
三、钉钉通道
该功能仅专业版、旗舰版支持,标准版支持增购
当通道类型选择为“钉钉通道”时,字段展示如下图所示:
通道模式:钉钉通道支持扩展通道和钉钉机器人通道,选择扩展通道需上传指定jar包。
通道标识:通道标识标识是通道的唯一标识,不能重复
通道配置信息:
className: 表示jar中实现接口ISmsChannel的类的完整类名(只有客户选择扩展通道才有效)
通道配置信息客户可以根据开发需求添加字段,该字段不会被处理,在发送告警的时候回封装到extMap字段中传入方法内。
钉钉扩展插件jar包编写说明
(1)导入jar
maven直接依赖:
<!-- console工程 -->
<dependency>
<groupId>com.dtstack.console</groupId>
<artifactId>console-alert-plugin-sdk</artifactId>
<version>4.0.0-SNAPSHOT</version>
</dependency>
(2)实现接口
继承接口:com.dtstack.channel.IDingChannel
public interface IDingChannel {
/**
* 钉钉发送
* @param hookUrls 钉钉机器人的webhook
* @param message 钉钉消息内容
* @param extMap 动态参数
* @return
* @throws BizException
*/
public R sendDing(List<String> hookUrls, String message, Map<String, String> dynamicParams, Map<String, Object> extMap) throws BizException;
/**
* 以markdown格式发送钉钉消息
* @param hookUrls 钉钉机器人的webhook
* @param title 主题
* @param message 钉钉消息内容
* @param extMap 动态参数
* @return
* @throws BizException
*/
public R sendDingWithMarkDown(List<String> hookUrls, String title, String message, Map<String, String> dynamicParams, Map<String, Object> extMap) throws BizException;
}
方法:
sendDing 发送文本形式的钉钉消息
sendDingWithMarkDown 发送MarkDown形式的钉钉消息
四、自定义通道
该功能仅旗舰版支持,标准版、专业版支持增购
当通道类型选择为“自定义通道”时,字段展示如下图所示:
通道模式:自定义通道支持扩展通道,选择扩展通道需上传指定jar包。
通道标识:通道标识标识是通道的唯一标识,不能重复
通道配置信息:
className: 表示jar中实现接口ISmsChannel的类的完整类名
通道配置信息客户可以根据开发需求添加字段,该字段不会被处理,在发送告警的时候回封装到extMap字段中传入方法内。
自定义扩展插件jar包编写说明
(1)导入jar
maven直接依赖:
<!-- console工程 -->
<dependency>
<groupId>com.dtstack.console</groupId>
<artifactId>console-alert-plugin-sdk</artifactId>
<version>4.0.0-SNAPSHOT</version>
</dependency>
(2)实现接口
继承接口:com.dtstack.channel.ICustomizeChannel
public interface ICustomizeChannel {
/**
* 发送自定义告警
*
* @param data 自定义告警数据 data:{"title":"标题","content":"内容","projectId":1}
* @param extMap 扩展参数, 由控制台配置
* @return 发送结果
*/
public R sendCustomizeAlert(Object data,Map<String, Object> extMap);
}
五、告警通道列表
告警通道配置完成后,展示在如下图的告警通道列表中,支持「编辑」、「删除」、「设置默认通道」等操作,一种通道方式仅可存在一种默认通道。
可在告警通道进行维护模式的开关,通常用于环境升级时对告警信息通道进行统一管理。
维护模式开启期间,告警信息将正常记录但不会通过告警通道发送;
维护模式关闭后,产生的告警信息将通过告警通道正常发送;
告警通道配置中存在上传自定义jar包,在运维打包升级过程中,可能会导致jar包丢失,需要重新上传,客户可在「SFTP」配置中配置「SFTP」地址,将jar包存储在FTP上。每次升级jar包不会受到影响。