254 lines
8.4 KiB
XML
254 lines
8.4 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<Package>
|
|
<Function name="PreWarning"><!--将告警信息插入发布信息并SMS/Email发布-->
|
|
<Input>ALM_ID|ALM_TM|ACT_ID|SND_STS|FAL_CNT|ACT_TYP|SEND_OBJ|ALM_MSG
|
|
</Input>
|
|
<Output>Rsp_CD|RSP_MSG</Output>
|
|
<DynSentence name="UpdSmsSndSts">
|
|
<Sentence>
|
|
update MONTSNDLST set SND_STS=?,FAL_CNT=? WHERE ALM_ID=?
|
|
</Sentence>
|
|
<Fields>SND_STS|FAL_CNT|ALM_ID</Fields>
|
|
</DynSentence>
|
|
<Process>
|
|
<Exec func="PUB:InsertRecord" error="IGNORE">
|
|
<Arg name="TblNam" value="MONTSNDLST" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:GWAAddMsg">
|
|
<!-- @msg {1},请稍后再试! -->
|
|
<Arg name="MsgCd" value="MON10001" />
|
|
<Arg name="MsgDat" value="数据库系统正在维护中" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
<Set>Type=$ACT_TYP</Set>
|
|
<If condition="STRCMP($Type,S)=0"><!--动作类型为SMS-->
|
|
<Set>SendObj=$SEND_OBJ</Set>
|
|
<Set>ALMMsg=$ALM_MSG</Set>
|
|
<Exec func="MON:SendSMS" error="IGNORE">
|
|
<Arg name="Sendto" value="$SendObj" />
|
|
<Arg name="MESSAGE" value="$ALMMsg" />
|
|
</Exec>
|
|
<If condition="~RetCod=0">
|
|
<Set>SND_STS=2</Set>
|
|
<Set>FAL_CNT=0</Set>
|
|
</If>
|
|
<Else>
|
|
<Set>SND_STS=3</Set>
|
|
<Set>FAL_CNT=ADD($FAL_CNT,1)</Set>
|
|
</Else>
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdSmsSndSts" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:GWAAddMsg">
|
|
<!-- @msg {1},请稍后再试! -->
|
|
<Arg name="MsgCd" value="MON10001" />
|
|
<Arg name="MsgDat" value="数据库系统正在维护中" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
</If>
|
|
<If condition="STRCMP($Type,M)=0"><!--动作类型为EMAIL-->
|
|
<Set>SendObj=$SEND_OBJ</Set>
|
|
<Set>ALM_TM=$ALM_TM</Set>
|
|
<Set>ALM_VALUE=$ALM_MSG</Set>
|
|
<Set>GRP_1.ALM_TM=$ALM_TM</Set>
|
|
<Set>GRP_1.ALM_VALUE=$ALM_MSG</Set>
|
|
<Exec func="PUB:DumpETF" />
|
|
<Set>from="hisuntech@163.com"</Set>
|
|
<Exec func="MON:SendMailImpl" error="IGNORE">
|
|
<Arg name="receiver" value="$SendObj" /> <!--接收人-->
|
|
<Arg name="subject" value="告警信息" /> <!--主题-->
|
|
<Arg name="template"
|
|
value="STRCAT(GETENV(HWORKDIR),/app/mon/template/send_list.html)" /> <!--发送邮件模板-->
|
|
<Arg name="host" value="SMTP.163.com" /> <!--发送服务器IP-->
|
|
<Arg name="port" value="25" />
|
|
<Arg name="user" value="$from" /> <!--发送人-->
|
|
<Arg name="passwd" value="techhisun" />
|
|
<Arg name="from" value="$from" /> <!--发送人-->
|
|
<Arg name="name" value="$from" />
|
|
</Exec>
|
|
<If condition="~RetCod=0">
|
|
<Set>SND_STS=2</Set>
|
|
<Set>FAL_CNT=0</Set>
|
|
</If>
|
|
<Else>
|
|
<Set>SND_STS=3</Set>
|
|
<Set>FAL_CNT=ADD($FAL_CNT,1)</Set>
|
|
</Else>
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdSmsSndSts" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:GWAAddMsg">
|
|
<!-- @msg {1},请稍后再试! -->
|
|
<Arg name="MsgCd" value="MON10001" />
|
|
<Arg name="MsgDat" value="数据库系统正在维护中" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
</If>
|
|
|
|
</Process>
|
|
</Function>
|
|
|
|
<!-- add by banpaia 7.29 -->
|
|
<Function name="AcceptReEvtInfo"><!--探针采集事件信息入流水表-->
|
|
<Set>EVTRECORD_COUNT=$MNT_DATA.EVTRECORD_COUNT</Set>
|
|
|
|
<Set>CNT1=$EVTRECORD_COUNT</Set>
|
|
<Set>Num1=1</Set>
|
|
<While condition="INTCMP($Num1,2,$CNT1)">
|
|
<Set>BUS_CNL=$MNT_DATA.EVTRECORD[$Num1].BUSCNL</Set>
|
|
<Set>SYS_CNL=$MNT_DATA.EVTRECORD[$Num1].SYSCNL</Set>
|
|
<Set>MSG_ID=$MNT_DATA.EVTRECORD[$Num1].MSGID</Set>
|
|
<Set>MOD_NM=$MNT_DATA.EVTRECORD[$Num1].MODNM</Set>
|
|
<Set>SRV_NM=$MNT_DATA.EVTRECORD[$Num1].SVRNM</Set>
|
|
<Set>TXN_CD=$MNT_DATA.EVTRECORD[$Num1].TXNCD</Set>
|
|
<Set>SYS_TM=$MNT_DATA.EVTRECORD[$Num1].SYSTM</Set>
|
|
<Set>SYS_DT=$MNT_DATA.EVTRECORD[$Num1].SYSDT</Set>
|
|
<Set>EVT_LVL=$MNT_DATA.EVTRECORD[$Num1].MSGLVL</Set>
|
|
<Set>EVT_TYP=$MNT_DATA.EVTRECORD[$Num1].EVTTYP</Set>
|
|
<Set>EVT_CTT=$MNT_DATA.EVTRECORD[$Num1].EVTCTT</Set>
|
|
|
|
<Set>INP_DAT.AC_TYP=1</Set>
|
|
<Exec func="MON:getCurMil">
|
|
<Arg name="_I_INP_DAT" value="INP_DAT" />
|
|
<Arg name="_O_OUT_DAT" value="OUT_DAT" />
|
|
</Exec>
|
|
<Set>Cur_Mil=@O.OUT_DAT.CUR_MIL</Set>
|
|
<Set>CUR_TM=$Cur_Mil</Set><!--得到当前日期的毫秒数 -->
|
|
<Set>REC_TM=$CUR_TM</Set>
|
|
|
|
<!-- get Evt ID -->
|
|
<Exec func="PUB:GetUniqueNo">
|
|
<Arg name="Len" value="18" />
|
|
</Exec>
|
|
<Set>LOG_NO=$ID</Set>
|
|
|
|
|
|
<!--插入探针流水表-->
|
|
<Exec func="PUB:InsertRecord" error="IGNORE">
|
|
<Arg name="TblNam" value="MONTEVTJNL" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:GWAAddMsg">
|
|
<!-- @msg {1},请稍后再试! -->
|
|
<Arg name="MsgCd" value="MON10001" />
|
|
<Arg name="MsgDat" value="数据库系统正在维护中" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
<Delete>BUS_CNL</Delete>
|
|
<Delete>SYS_CNL</Delete>
|
|
<Delete>MSG_ID</Delete>
|
|
<Delete>MOD_NM</Delete>
|
|
<Delete>SRV_NM</Delete>
|
|
<Delete>TXN_CD</Delete>
|
|
<Delete>SYS_TM</Delete>
|
|
<Delete>SYS_DT</Delete>
|
|
<Delete>EVT_LVL</Delete>
|
|
<Delete>EVT_TYP</Delete>
|
|
<Delete>EVT_CTT</Delete>
|
|
<Delete>LOG_NO</Delete>
|
|
<Set>Num1=ADD($Num1,1)</Set>
|
|
</While>
|
|
</Function>
|
|
|
|
|
|
|
|
<Function name="AnalyzeToAlarm"><!--分析数据入告警表-->
|
|
<DynSentence name="queryattrnm">
|
|
<Sentence>
|
|
Select ATTR_NM FROM MNGTMNTATTR WHERE MNT_ID=? and
|
|
RES_TYP=?
|
|
</Sentence>
|
|
<Fields>MNT_ID|RES_TYP|</Fields>
|
|
</DynSentence>
|
|
|
|
<Process>
|
|
<!-- 资源数据数目 -->
|
|
<Exec func="PUB:GetValue" error="IGNORE">
|
|
<Arg name="SourName" value="STRCAT(MNT_DATA.,$RES_TYP,_COUNT)" />
|
|
<Arg name="DestName" value="CNT" />
|
|
</Exec>
|
|
<Set>cccc=$CNT</Set>
|
|
<If condition="STRCMP($FLG,1)=0">
|
|
<Set>Num1=1</Set>
|
|
<Exec func="PUB:QueryInGroup" error="IGNORE">
|
|
<Arg name="SqlCmd" value="queryattrnm" />
|
|
<Arg name="RecordName" value="GROUP" />
|
|
</Exec>
|
|
<If condition="~RetCod=2">
|
|
<Exec func="PUB:GWAAddMsg">
|
|
<!-- @msg {1},请稍后再试! -->
|
|
<Arg name="MsgCd" value="MON20001" />
|
|
<Arg name="MsgDat" value="无该探针的告警信息" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
<ElseIf condition="~RetCod!=0">
|
|
<Exec func="PUB:GWAAddMsg">
|
|
<!-- @msg {1},请稍后再试! -->
|
|
<Arg name="MsgCd" value="MON10001" />
|
|
<Arg name="MsgDat" value="数据库系统正在维护中" />
|
|
</Exec>
|
|
<Return />
|
|
</ElseIf>
|
|
<Set>ATTR_CNT=$GROUP_NUM</Set>
|
|
<While condition="INTCMP($Num1,2,$CNT)">
|
|
<Set>ATTR_Num=1</Set>
|
|
<!-- 根据资源属性名和属性值拼接传入参数 -->
|
|
<While condition="INTCMP($ATTR_Num,2,$ATTR_CNT)">
|
|
<Set>ATTR_NM=$GROUP[$ATTR_Num].ATTR_NM</Set>
|
|
<Exec func="PUB:GetValue" error="IGNORE">
|
|
<Arg name="SourName" value="STRCAT(MNT_DATA.,$RES_TYP,_,$Num1,.,$ATTR_NM)" />
|
|
<Arg name="DestName" value="ATTR_VALUE" /><!--对于属性名采集的数值-->
|
|
</Exec>
|
|
<Set>bbbb=$ATTR_VALUE</Set>
|
|
<Set>multi_check=STRCAT($multi_check,|,$ATTR_NM,=,$ATTR_VALUE)
|
|
</Set>
|
|
<Set>ATTR_Num=ADD($ATTR_Num,1)</Set>
|
|
</While>
|
|
<Exec func="MON:CheckDataByRule">
|
|
<Arg name="MONT_ID" value="$MNT_ID" />
|
|
<Arg name="REGION" value="$REGION" />
|
|
<Arg name="NOD_NM" value="$NOD_NM" />
|
|
<Arg name="MULTI_CHECK" value="$multi_check" />
|
|
</Exec>
|
|
<Delete>ATTR_Num</Delete>
|
|
<Delete>multi_check</Delete>
|
|
<Set>Num1=ADD($Num1,1)</Set>
|
|
</While>
|
|
</If>
|
|
|
|
<ElseIf condition="STRCMP($FLG,4)=0">
|
|
<Set>Num1=1</Set>
|
|
<Set>ALM_LVL=3</Set><!--告警级别-->
|
|
<Set>ALARMFLAG=$FLG</Set><!--告警方式-->
|
|
<Set>ALM_RES=$RES_TYP</Set><!--告警资源-->
|
|
<Set>ALM_RMK=</Set><!--备注-->
|
|
<While condition="INTCMP($Num1,2,$CNT)">
|
|
<Exec func="PUB:GetValue" error="IGNORE">
|
|
<Arg name="SourName" value="STRCAT(MNT_DATA.,$RES_TYP,_,$Num1,.ALMMSG)" />
|
|
<Arg name="DestName" value="ALM_VALUE" /><!--告警值-->
|
|
</Exec>
|
|
<Set>aaaaa=$ALM_VALUE</Set>
|
|
<Set>attrName=STRCAT(ALM_RES=,$ALM_RES,|ALM_VALUE=,$ALM_VALUE,|ALM_LVL=,$ALM_LVL)
|
|
</Set>
|
|
<Exec func="MON:CheckDataByRule"><!--调用组件插入告警表 -->
|
|
<Arg name="MONT_ID" value="$MNT_ID" />
|
|
<Arg name="REGION" value="$REGION" />
|
|
<Arg name="NOD_NM" value="$NOD_NM" />
|
|
<Arg name="CHECK_FLAG" value="$FLG" />
|
|
<Arg name="MULTI_CHECK" value="$attrName" />
|
|
</Exec>
|
|
<Set>Num1=ADD($Num1,1)</Set>
|
|
</While>
|
|
</ElseIf>
|
|
</Process>
|
|
</Function>
|
|
|
|
</Package> |