1. 通知中心

1.1. 通知对接

通知中心支持短信和邮件预警,对接支持两种方式对接。

A 以下阐述短信通知对接方式

1、使用NTC内置通知模块方式

img

该种方式NTC产生的预警通知信息通过eventbus发送到sevices-sms模块,再由模块发送至行内短信银行。(应用方自行实现和行内短信银行对接)

1、使用应用内置通知模块方式(推荐)

img

该方式NTC产生的预警通知信息先通过JMX发送到应用方,由应用方实现和行内短信银行对接方式。

Ø 该方式需要在系统管理-系统规则配置通知内容发送哪个应用实例,如下:

1590636889783

Ø 应用方需要定义接收通知信息类

在spring容器中定义应用通知类,示例

<bean id="alarmNoticeRev" class="com.csii.demo.alarm.notice.AlarmNoticeRev">
</bean>

AlarmNoticeRev参考类:

AlarmNoticeRev类
package com.csii.demo.alarm.notice;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import com.csii.next.alarm.AlarmNotice;

import com.csii.next.container.NextAutowired;

import com.csii.next.eventbus.EventBus;

import com.csii.next.eventbus.NextListen;

public class AlarmNoticeRev {

private static final Log log = LogFactory.getLog(AlarmNoticeRev.class);

@NextAutowired

private EventBus eventBus;



@NextListen

public void notice(AlarmNotice ah) {

log.debug("接收预警通知信息:" + ah.toString());

}

}

Ø 定义处理通知信息逻辑方法

@NextListen

public void notice(AlarmNotice ah) {

log.debug("接收预警通知信息:" + ah.toString());

//该处实现和行内短信银行对接逻辑

}

1.2. 通知事件

1.2.1. 说明

以下事件通知类型都分有默认通知和实时通知,通知方式有NTC内置邮件通知和对接第三方系统通知。

其中第三方系统通知NTC将预警消息推送至指定群组中任意实例,应用方通过该实例对接行内其他平台,进行预警消息通知。

公共组成部分

  1. 通知类型-noticeType

    默认通知|实时通知

  2. 通知方式-noticeWays

    这里的通知方式为最终要是通知的通知方式(有些开关关闭的不在这里展示)

    3、通知人列表信息-notifiers

    是个map对象,key为通知方式对象,value为该通知通知额联系人list

    包含:姓名、电话号码、邮箱地址、信息备注、更新时间、创建时间

    4、预警内容-alarmContent 事件摘要

    见具体以下不同类型不同描述

    5、备注信息-remark

    6、规则名称-ruleName

    7、预警类型-alarmType

    类型如下分类

    8、故障点-source

    包含具体产品、群组、实例信息

    9、预警发生时间-happenDate

    10、预警详细描述-ruleDesc

    11、预警上下文 - context

    不同的预警类型由不同的预警上下文信息,如下描述

具体对象信息如下:

AlarmNotice类
package com.csii.next.alarm;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;


/**
 * 预警通知对象 (用户第三方平台或者邮件通知) NTC会将通知中心的预警消息通知到应用端,应用端可以用于发送其他系统<br>
 *
 * @author chenwenhuang@csii.com.cn
 * @date 2019年3月29日
 */
public class AlarmNotice implements Serializable {

    private static final long serialVersionUID = 845127670293694728L;

    /**
     * 通知类型<br/>
     * 默认发送;实时发送
     */
    private String noticeType;

    /**
     * 通知方式key集合
     */
    private List<String> noticeWays;

    /**
     * 联系人列表
     */
    private Map<AlarmNoticeWayItem, List<AlarmNotifier>> notifiers;

    /**
     * CONSTOM_ALARM-自定义预警,LOG_ALARM-日志预警 ,TRACE_ALARM-链路预警, HEALTH_ALARM-健康检查预警, APPSECURITY_ALARM
     * -应用安全预警 ,JOB_ALARM-任务调度预警,AID_ALARM-应用自检预警
     */
    private String alarmType;

    /**
     * 规则名称
     */
    private String ruleName;

    /**
     * 预警规则详细描述
     */
    private String ruleDesc;

    /**
     * 预警故障点,表示发送预警的资源点
     */
    private String source;

    /**
     * 预警发生时间 ,yyyy-MM-dd hh:mm:ss
     */
    private Date happenDate;

    /**
     * 预警历史內容,不同通知方式和通知内容
     */
    private Map<String, String> alarmContents;

    /**
     * 备注内容
     */
    private String remark;

    /**
     * 预警历史上下文,一些其他关键信息,KV形式
     */
    private Map<String, Object> context;

    public String getNoticeType() {
        return noticeType;
    }

    public void setNoticeType(String noticeType) {
        this.noticeType = noticeType;
    }

    public Map<AlarmNoticeWayItem, List<AlarmNotifier>> getNotifiers() {
        return notifiers;
    }

    public void setNotifiers(Map<AlarmNoticeWayItem, List<AlarmNotifier>> notifiers) {
        this.notifiers = notifiers;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getRuleName() {
        return ruleName;
    }

    public void setRuleName(String ruleName) {
        this.ruleName = ruleName;
    }

    public String getAlarmType() {
        return alarmType;
    }

    public void setAlarmType(String alarmType) {
        this.alarmType = alarmType;
    }

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public Date getHappenDate() {
        return happenDate;
    }

    public void setHappenDate(Date happenDate) {
        this.happenDate = happenDate;
    }

    public Map<String, Object> getContext() {
        return context;
    }

    public void setContext(Map<String, Object> context) {
        this.context = context;
    }

    public String getRuleDesc() {
        return ruleDesc;
    }

    public void setRuleDesc(String ruleDesc) {
        this.ruleDesc = ruleDesc;
    }

    public List<String> getNoticeWays() {
        return noticeWays;
    }

    public void setNoticeWays(List<String> noticeWays) {
        this.noticeWays = noticeWays;
    }

    public Map<String, String> getAlarmContents() {
        return alarmContents;
    }

    public void setAlarmContents(Map<String, String> alarmContents) {
        this.alarmContents = alarmContents;
    }

    @Override
    public String toString() {
        return "AlarmNotice{" +
                "noticeType='" + noticeType + '\'' +
                ", noticeWays=" + noticeWays +
                ", notifiers=" + notifiers +
                ", alarmType='" + alarmType + '\'' +
                ", ruleName='" + ruleName + '\'' +
                ", ruleDesc='" + ruleDesc + '\'' +
                ", source='" + source + '\'' +
                ", happenDate=" + happenDate +
                ", alarmContents=" + alarmContents +
                ", remark='" + remark + '\'' +
                ", context=" + context +
                '}';
    }
}
AlarmNotifier类
package com.csii.next.alarm;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 预警通知人
 *
 * @author chenwenhuang
 * @date 2019/03/07
 */
public class AlarmNotifier implements Serializable {

    private static final long serialVersionUID = -4141935812659475265L;

    private String _id;
    /**
     * 姓名
     */
    private String name;
    /**
     * 电话
     */
    private String phone;
    /**
     * 邮箱
     */
    private String email;
    /**
     * 信息备注
     */
    private String desc;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 自定义通知开关
     */
    private boolean isCustomNotice;

    /**
     * 通知方式
     */
    private List<AlarmNoticeWayItem> noticeWays;

    public String get_id() {
        return _id;
    }

    public void set_id(String id) {
        this._id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public boolean isCustomNotice() {
        return isCustomNotice;
    }

    public void setCustomNotice(boolean customNotice) {
        isCustomNotice = customNotice;
    }

    public List<AlarmNoticeWayItem> getNoticeWays() {
        return noticeWays;
    }

    public void setNoticeWays(List<AlarmNoticeWayItem> noticeWays) {
        this.noticeWays = noticeWays;
    }

    @Override
    public String toString() {
        return "AlarmNotifier{" +
                "_id='" + _id + '\'' +
                ", name='" + name + '\'' +
                ", phone='" + phone + '\'' +
                ", email='" + email + '\'' +
                ", desc='" + desc + '\'' +
                ", updateTime=" + updateTime +
                ", createTime=" + createTime +
                ", isCustomNotice=" + isCustomNotice +
                ", noticeWays=" + noticeWays +
                '}';
    }
}

邮箱标题:

NTC平台通知中心发生预警,规则名称:任务调度 预警故障点:-,发生时间2022-10-08 14:50:00

日志预警

通知事件为日志预警类型(LOG_ALARM),由【日志中心-日志预警管理】中日志预警规则触发。具体触发规则要看日志预警规则设置。

预警详情包含以下字段:

“logNo-流水号”“logInfo-预警内容”“contentList-日志内容列表”

短信
AlarmNotice[
    noticeType=DYMAMICNOTICE,
    notifiers=[
        AlarmNotifier[
            _id=63368d93ccbcd322dbf88e44,
            name=chen,
            phone=18159249623,
            email=18159249623@163.com,
            desc=备注内容,
            updateTime=FriSep3014: 32: 51CST2022,
            createTime=FriSep3014: 32: 51CST2022
        ]
    ],
    alarmType=LOG_ALARM,
    ruleName=日志预警001,
    ruleDesc=在日志级别为: [
        INFO,
        WARN,
        ERROR,
        DEBUG
    ]中内容包含: 简单访问,
    source=Java||,
    happenDate=FriSep3014: 54: 15CST2022,
    alarmContent=在日志级别为: [
        INFO,
        WARN,
        ERROR,
        DEBUG
    ]中内容包含: 简单访问,
    remark=邮件内容备注,
    context={
        logNo=893148739650387969,
        logInfo=2022-09-3014: 54: 13|http-nio-8080-exec-7|INFO|com.csii.demo.trace.action.TemplateAction|893148739650387969|1||web|192.168.1.35|web192168001035|SimpleTrace|||简单访问...,
        contentList=[
            简单访问
        ]
    }
]

资源不明确

邮箱

应用安全预警

通知事件为应用安全预警类型(APPSECURITY_ALARM),由【应用中心-应用安全】中安全规则触发。通知中心会定时每间隔一分钟检查是否有应用安全问题,有问题触发预警事件。

预警详情中无其他信息

短信
[
    noticeType=DYMAMICNOTICE,
    notifiers=[
        AlarmNotifier[
            _id=63368d93ccbcd322dbf88e44,
            name=chen,
            phone=18159249623,
            email=18159249623@163.com,
            desc=备注内容,
            updateTime=FriSep3014: 32: 51CST2022,
            createTime=FriSep3014: 32: 51CST2022
        ]
    ],
    alarmType=APPSECURITY_ALARM,
    ruleName=应用安全,
    ruleDesc=每间隔一分钟检查是否有应用安全问题,
    source=||,
    happenDate=FriSep3015: 29: 00CST2022,
    alarmContent=2022-09-3015: 28: 062022-09-3015: 28: 06web存在耗时检查风险,
    详见应用安全,
    安全列表,
    remark=应用安全通知备注,
    context=null
]
邮箱

健康检查预警

通知事件为健康检查预警类型(HEALTH_ALARM),由【监控中心-健康检查】触发。通知中心会定时每间隔一分钟检查所有检查器,校验服务器、应用健康情况,有问题触发预警事件。

预警详情包含以下字段:

“errorServerList-异常服务器列表” “warnServerList-警告实例列表” “unKnownServerList-未知服务器列表”

“errorInstList-异常实例列表” “warnInstList-警告实例列表” “unknownInstList-未知实例列表”

短信
[
    noticeType=DYMAMICNOTICE,
    notifiers=[
        AlarmNotifier[
            _id=63368d93ccbcd322dbf88e44,
            name=chen,
            phone=18159249623,
            email=18159249623@163.com,
            desc=备注内容,
            updateTime=FriSep3014: 32: 51CST2022,
            createTime=FriSep3014: 32: 51CST2022
        ]
    ],
    alarmType=HEALTH_ALARM,
    ruleName=健康检查,
    ruleDesc=每间隔一分钟检查所有检查器,校验服务器、应用健康情况,
    source=||,
    happenDate=FriSep3015: 38: 29CST2022,
    alarmContent=服务器(正常),应用(异常-2:web192168001035,web192168213135),软件、组件(正常)。,
    remark=健康检查备注,
    context={
        warnServerList=[

        ],
        errorInstList=[
            com.csii.services.health.HecAlarmResource@dc179da,
            com.csii.services.health.HecAlarmResource@dcbb0ec,
            com.csii.services.health.HecAlarmResource@2e88ce8f,
            com.csii.services.health.HecAlarmResource@dec3e8a
        ],
        warnInstList=[

        ],
        unknownInstList=[

        ],
        errorServerList=[

        ],
        unKnownServerList=[

        ]
    }
]
邮箱

自定义预警

通知事件为自定义预警类型(CONSTOM_ALARM),由【通知中心-预警规则】中触发。具体触发规则要看预警规则中规则设置。

预警详情无其他信息。自定义预警类型包含了服务器、应用、第三方软件等上百项监控项,详细见监控指标说明。

短信
[
    noticeType=DYMAMICNOTICE,
    notifiers=[
        AlarmNotifier[
            _id=63368d93ccbcd322dbf88e44,
            name=chen,
            phone=18159249623,
            email=18159249623@163.com,
            desc=备注内容,
            updateTime=FriSep3014: 32: 51CST2022,
            createTime=FriSep3014: 32: 51CST2022
        ]
    ],
    alarmType=CONSTOM_ALARM,
    ruleName=内存监控,
    ruleDesc=【应用内存监控|使用堆大小】连续1次满足规则:在1分钟时间内只要有一次>=1MB,
    source=Java|web|web192168001035,
    happenDate=FriSep3015: 43: 39CST2022,
    alarmContent=【应用内存监控|使用堆大小】连续1次满足规则:在1分钟时间内只要有一次>=1MB,
    remark=内存监控,
    context={
        alarmValue=332.30MB
    }
]
邮箱

故障恢复短信

发送短信AlarmNotice[
    noticeType=DYMAMICNOTICE,
    notifiers=[
        AlarmNotifier[
            _id=63368d93ccbcd322dbf88e44,
            name=chen,
            phone=18159249623,
            email=18159249623@163.com,
            desc=备注内容,
            updateTime=FriSep3014: 32: 51CST2022,
            createTime=FriSep3014: 32: 51CST2022
        ]
    ],
    alarmType=CONSTOM_ALARM,
    ruleName=cpu测试,
    ruleDesc=【应用cpu监控|进程Cpu】连续1次满足规则:在1分钟时间内只要有一次>=30%,
    source=Java|web|,
    happenDate=SatOct0816: 02: 54CST2022,
    alarmContent=【【应用cpu监控|进程Cpu】连续1次满足规则:在1分钟时间内只要有一次>=30%】故障点恢复,持续01分钟59秒,发生时间:2022-10-0816: 00: 54,
    remark=beizhu,
    context=null
]

故障恢复邮箱

该版本故障恢复功能是否去除?

  1. 系统无法判断故障恢复是属于波动还是运维介入恢复
  2. 恢复通知是否和通知方式关联(只发送一次、间隔发送、每次都发送)
  3. 预警通知失败的情况下,恢复通知是否发送

交易链路预警

通知事件为交易链路预警类型(TRACE_ALARM),由【链路跟踪-链路预警】中触发。具体触发规则要看交易链路预警中规则设置。

预警详情包含以下字段:

“traceId-全局流水号”“trace-链路对象”

短信
[
    noticeType=DYMAMICNOTICE,
    notifiers=[
        AlarmNotifier[
            _id=63368d93ccbcd322dbf88e44,
            name=chen,
            phone=18159249623,
            email=18159249623@163.com,
            desc=备注内容,
            updateTime=FriSep3014: 32: 51CST2022,
            createTime=FriSep3014: 32: 51CST2022
        ]
    ],
    alarmType=TRACE_ALARM,
    ruleName=链路预警-默认规则,
    ruleDesc=链路满足条件:结果等于失败&类型为服务端&是起始链路&交易耗时大于10000毫秒;,
    source=||,
    happenDate=FriSep3015: 46: 48CST2022,
    alarmContent=检测到链路满足条件:结果等于失败&类型为服务端&是起始链路&交易耗时大于10000毫秒;,
    remark=交易链路,
    context={
        traceId=893161931285921793,
        trace=com.csii.next.bean.Trace@61494155
    }
]
邮箱

任务调度预警

通知事件为任务调度预警类型(JOB_ALARM),由【任务中心】中触发。通知中心会每间隔1分钟查询日志表,有失败的任务进行预警。

预警详情包含以下字段:

失败任务对象集合,key为“失败任务列表”,具体失败任务对象字段有

“alarmContent-预警内容”“jobId-任务ID”“alarmType-预警类型”“jobGroup-任务群组”“jobDesc-任务描述”

短信
发送短信AlarmNotice[
    noticeType=DYMAMICNOTICE,
    notifiers=[
        AlarmNotifier[
            _id=63368d93ccbcd322dbf88e44,
            name=chen,
            phone=18159249623,
            email=18159249623@163.com,
            desc=备注内容,
            updateTime=FriSep3014: 32: 51CST2022,
            createTime=FriSep3014: 32: 51CST2022
        ]
    ],
    alarmType=JOB_ALARM,
    ruleName=任务调度,
    ruleDesc=每间隔1分钟查询日志表,有失败的任务进行预警,
    source=|Job|,
    happenDate=SatOct0814: 45: 00CST2022,
    alarmContent=任务(异常-147,
    remark=任务调度通知备注,
    context={
        失败任务列表=[
            {
                alarmContent=AlarmJobLogId=3353956<br>TriggerMsg=<br>任务触发类型:手动触发<br>调度机器:192.168.1.248<br>执行器-注册方式:手动录入<br>执行器-地址列表:[
                    http: //192.168.1.1: 8888
                ]<br>路由策略:第一个<br>阻塞处理策略:单机串行<br>任务超时时间:1<br>剩余失败重试次数:0<br><br><spanstyle="color:#00c0ef;">>>>>>>>>>>>触发调度<<<<<<<<<<<</span><br>触发调度:<br>address:http: //192.168.1.1: 8888<br>code:500<br>msg:xxl-rpcremotingerror(拒绝连接(Connectionrefused)),
                forurl: http: //192.168.1.1: 8888/run,
                jobId=47,
                alarmType=调度失败,
                jobGroup=49,
                jobDesc=glq测试
            }
        ]
    }
]
邮箱

应用自检预警

通知事件为应用自检预警类型(AID_ALARM),由【智能诊断-应用自检】中触发。通知中心每间隔1分钟查询日志表,有失败的任务进行预警。

预警详情包含以下字段:

“data-异常自检数据”

短信
发送短信AlarmNotice[
    noticeType=DYMAMICNOTICE,
    notifiers=[
        AlarmNotifier[
            _id=63368d93ccbcd322dbf88e44,
            name=chen,
            phone=18159249623,
            email=18159249623@163.com,
            desc=备注内容,
            updateTime=FriSep3014: 32: 51CST2022,
            createTime=FriSep3014: 32: 51CST2022
        ]
    ],
    alarmType=AID_ALARM,
    ruleName=智能诊断,
    ruleDesc=每间隔一分钟检查自检数据,有警告或者错误进行预警,
    source=||,
    happenDate=SatOct0814: 36: 50CST2022,
    alarmContent=警告数0错误数1,
    remark=智能诊断备注,
    context={
        list=[
            GroupReport[
                groupId=web,
                createTime=1665210960000,
                config=false,
                serviceConifg=false,
                instances=[
                    InstanceReport[
                        idc=default,
                        instanceId=web192168001035,
                        resourceType=Java,
                        createTime=1665210960000,
                        groupId=web,
                        modules=[
                            ModuleReport[
                                moduleId=app.resourceAid,
                                name=资源,
                                type=app,
                                createTime=1665210960000,
                                groupId=web,
                                idc=default,
                                instanceId=web192168001035,
                                state=error,
                                stateName=null,
                                hisWarns=0,
                                hisErrors=0,
                                serviceNames=null,
                                errorLog=null,
                                probeDump=null,
                                probeDumpStr=null,
                                ntcDump=null,
                                ntcDumpStr=null,
                                items=[
                                    ItemReport[
                                        createTime=1665210960000,
                                        code=030702,
                                        name=线程数增长,
                                        desc=线程数增长异常,线程数增长为79个。,
                                        state=error,
                                        stateName=null,
                                        rule=线程数一分钟增长大于等于50个时异常,
                                        solution=null,
                                        detail=线程数增长了79],
                                    ItemReport[
                                        createTime=1665210960000,
                                        code=030602,
                                        name=jvmcrash,
                                        desc=jvmcrash异常,新增jvmcrash文件,数量为60个。,
                                        state=error,
                                        stateName=null,
                                        rule=上一分钟生成或启动时存在hs_err_pid.log文件时异常,
                                        solution=null,
                                        detail=扫描路径为: D: \it_software\IDE\eclipse-jee最近一次的jvmcrash文件路径: D: \it_software\IDE\eclipse-jee\hs_err_pid12752.log,
                                        创建时间: 2018-05-1410: 32: 34文件超过1万行时只采集最后1万行
                                    ]
                                ]
                            ]
                        ],
                        warns=0,
                        errors=1,
                        hisWarns=0,
                        hisErrors=0,
                        closeWarns=0,
                        closeErrors=0,
                        laterMin=0,
                        summary=null
                    ]
                ],
                modules=[

                ],
                summary=null,
                warns=0,
                errors=1,
                laters=0,
                hisWarns=0,
                hisErrors=0,
                closeWarns=0,
                closeErrors=0,
                loseWarns=0,
                loseErrors=0
            ]
        ]
    }
]
邮箱

服务预警

通知事件为应用服务预警类型(TRANS_ALARM),由【服务治理-服务预警】中触发。通知中心每间隔1分钟定时检查服务是否存在异常情况,包括耗时、错误和并发情况

预警详情包含以下字段:

“histories-历史内容”

短信
发送短信AlarmNotice[
    noticeType=DYMAMICNOTICE,
    notifiers=[
        AlarmNotifier[
            _id=63368d93ccbcd322dbf88e44,
            name=小红,
            phone=18159249623,
            email=18159249623@163.com,
            desc=备注内容,
            updateTime=SunOct0911: 33: 37CST2022,
            createTime=FriSep3014: 32: 51CST2022
        ],
        AlarmNotifier[
            _id=63424129853a9a4d7bf776fa,
            name=小明,
            phone=18159249568,
            email=18159249568@163.com,
            desc=null,
            updateTime=SunOct0911: 34: 01CST2022,
            createTime=SunOct0911: 34: 01CST2022
        ],
        AlarmNotifier[
            _id=63424136853a9a4d7bf776fc,
            name=小天,
            phone=18159249588,
            email=18159249588@163.com,
            desc=null,
            updateTime=SunOct0911: 34: 14CST2022,
            createTime=SunOct0911: 34: 14CST2022
        ]
    ],
    alarmType=TRANS_ALARM,
    ruleName=服务预警,
    ruleDesc=定时检查服务是否存在异常情况,包括耗时、错误和并发情况,
    source=||,
    happenDate=MonOct1014: 10: 20CST2022,
    alarmContent=检测到触发服务预警1,
    通知1,
    通知规则:[
        服务预警001
    ]异常服务多达:7,
    异常服务: [
        web
    ]LongConsumingTrace、[
        web
    ]DubboTrace、[
        web
    ]SimpleTrace、[
        web
    ]DBTrace、[
        web
    ]DubboTraceDouble、[
        web
    ]fullTrace、[
        web
    ]PacketTrace、,
    详见【服务治理-服务预警】,
    remark=备注,
    context={
        histories=[
            TransAlarmHistory[
                ruleName=服务预警001,
                ruleId=6343b6b33ca0d27fd1f27eb0,
                groupId=web,
                alarmTime=MonOct1014: 10: 20CST2022,
                startTime=MonOct1014: 09: 00CST2022,
                step=60,
                manualHandleState=false,
                desc=14: 0914: 10请求数超过阀值17,
                noticeLevel=NOTICE,
                details=[
                    com.csii.services.trans.TransAlarmDetail@2bdf13de,
                    com.csii.services.trans.TransAlarmDetail@fb9adf,
                    com.csii.services.trans.TransAlarmDetail@185ffa9b,
                    com.csii.services.trans.TransAlarmDetail@5833e8af,
                    com.csii.services.trans.TransAlarmDetail@1e3d2fdc,
                    com.csii.services.trans.TransAlarmDetail@48e3c223,
                    com.csii.services.trans.TransAlarmDetail@4ab93aa3
                ]
            ]
        ]
    }
]
邮件

第三方系统预警

其他接入预警类型

1.3. 通知接入

说明

第三方预警通知接入,预警类型统一为【第三方系统预警】,总体流程为创建类型为类型为第三方系统预警类型预警规则,修改预警通知配置,然后推送相应的预警事件。

创建规则

接口地址,方式为POST

http://NTC地址:NTC端口(默认为8888)/next/custAlarmRule/simpleCreate.do

参数说明

key为rule,value为AlarmRuleRequest 对象

返回结果为插入成功的规则ID(后续推送预警事件需要上送该字段)

AlarmRuleRequest 说明如下

AlarmRuleRequest 类
 /**
   * 预警名称 - 必输
   */
  private String ruleName;
  /**
   * 预警类型
   */
  private AlarmType alarmType = AlarmType.OTHER_ALARM;
  /**
   * 预警级别 NOTICE -  通知级别,WARNNING -警告级别,ERROR-错误级别,DAGRON - 致命级别 - 必输
   */
  private AlarmLevel alarmLevel;
  /**
   * 预警描述
   */
  private String alarmDesc;

  /**
   * 预警内容 不存在置空
   */
  private CustomAlarmRuleContent content;
  /**
   * 是否该类型唯一规则 - 必输
   */
  private boolean isOnly;

参数示例

{
    "rule": {
        "ruleName" : "第三方系统预警",
        "alarmLevel" : "DAGRON",
        "alarmDesc" : "第三方系统预警描述",
        "isOnly" : true
    }
}

返回结果

61307248631c69125bb01fa5

到此新增规则成功

配置通知配置

至 【监控中心 - 监控预警】,过滤预警类型为”第三方扩展“,点击该规则修改按钮,在弹出的配置中修改通知配置。

至 【通知中心 - 通知配置 - 通知设置】 修改实时通知配置,将“其他类型预警”预警利息加入,以及通知级别加入。

推送预警事件

接口地址,方式为POST

http://NTC地址:NTC端口(默认为8888)/next/noticeHistory/push.do

参数说明

ruleId : 规则ID(新增成功之后返回的规则ID)

content :预警内容

context :预警上下文(map类型)需要推送的其他信息

返回结果:无

参数示例

{
      "ruleId" : "规则ID",
      "content" : "预警内容",
      "context" : {
           "key1" : "val1",
           "key2" : "val2"
        }
}

返回结果

查看预警事件

至 【通知中心 - 预警历史】过滤类型为“其他系统”预警历史

results matching ""

    No results matching ""