一、 技术领域
本发明通过业务监控系统发出的告警,实现由告警自动触发业务控制动作的方法,并完成动作的执行。
二、 背景技术
目前在业界的业务监控系统中,监控系统对业务进行监控,发现不正常现象发出告警, 通过不同方式(包括短信、电话、邮件等)提醒责任人,然后责任人再进行处理,这是我们常见监控系统的功能。但是很多时候业务问题发生在夜间,或者责任人收到告警的时候不在现场或不具备处理条件,延误处理时机造成不必要的损失。
三、 发明内容
本发明目的是:为克服当前业务监控系统发现告警通知责任人之后不能及时进行问题处理的问题,本发明提供一种由监控告警自动触发控制动作的实现方法,使得监控告警在通知责任人的同时自动触发控制动作,由业务监控系统在第一时间处理问题,把风险降到最低,同时可以降低人力成本。
本发明的技术方案是:由监控告警自动触发控制动作的实现方法,业务监控系统以消息的方式发布告警信息,由业务监控系统的告警中转器和告警触发动作控制器进行相应动作,告警中转器是通过Java, util. EventListener进行监听告警事件,并把告警事件提交到各个 告警触发动作控制器处理;告警中转器接收发布告警后进行告警接收并触发动作执行,在监控系统中预先配置告警规则表,表中保存告警跟控制动作的对应关系,由告警触发动作控制器接收触发动作执行信息后进行控制动作的告警规则过滤,通过告警过滤获得可执行动作,并根据动作设定可通过telnet或代理agent方式完成对应的控制动作执行。
本发明预先在监控管理系统中配置好告警动作对应关系,每个动作具有ID标识,然后把动作跟告警进行关联,当监控系统发出告警时,告警中转器接收告警,根据告警的代码、告警来源、告警关键字、告警内容进行过滤,结合字符串的最大匹配算法,针对不同业务情况 发出的告警自动触发控制动作。
本发明的有效益果是,可以在告警发出的同时实现业务控制,及时有效的处理业务问题, 降低风险,节省人力成本。
四、 具体实施方式
业务监控系统以消息的方式发布告警信息,由业务监控系统告警中转器和告警触发动作控制器进行如下歩骤-
a)自动触发:告警中转器实现listener (告警接收)和AlarmTranstnitterManager (告警接收并触发动作)接口,监听监控系统所发出的消息事件,接收告警类消息,实现onEvent 方法(产生消息的执行函数),所有具有告警信息标识的事件经中转器接收,中转器实现transmit方法把接收告警提交给各个动作执行控制器进行处理,在transmit中,根据预先配置好的告警和动作的对应关系,把接收到的告警跟配置表中的告警进行比对,找出匹配的动作类别,然后提交给各个控制器,实现告警自动触发动作。
在告警匹配中采用字符串的最大匹配算法。
算法设计:本算法涉及到匹配度的概念,匹配度为字符串间的匹配程度,也就是两个字 符串间的相似程度。对于给定的两个字符串S(源字符串)和T(目标字符串)之间的匹配根据权 值计算匹配度,将S和T按字节分割成独立的字符串单元并分别存放在字符串数组中, 一个字符串对应一个权值。将S和T的权值分别定义为Ws和Wt,字符串单元存放的数组从O开始计数,分别将S和T分割成了 0到m和0到n个单元。Ws=l/m+l, Wt=l/n+l,开始扫描S和T字符串,如果遇到字符串单元相同的时候权值相乘。最后得到一个sum=Ws*Wt,sum即为匹 配度,根据sum的值进行冒泡排序,权值由大到小排列。 算法编码实现:简要代码如下
b)动作执行:告警触发动作控制器完成动作的执行; 一旦有告警提交给告警触发动作控制器,控制器根据告警与动作对应关系得到相匹配的动作列表,选择telnet(远程登录)或agent 代理方式执行,选择telnet方式,则telnet目标主机,设置超时时间5s,超时退出重新生成告警提醒责任人动作执行期间出现超时问题,动作执行失败;无其他异常则完成业务指令执行,选择agent代理方式,只要借助网管监控系统的agent即可实现,由agent执行预先编写好的action来完成动作执行。
(1) 实现进程启停。设置停机数目监控,当停机数达到一定值时,自动停止停机业务进程。 未采用本发明之前,监控系统监控停机数,达到阀值发送短信提醒给责任人,然后责任人登 录系统重新启动停机业务进程,而本发明运用之后,当监控系统发出告警,中转器接收该告 警并提交告警触发动作控制器,执行预先配置好的动作,来完成停机进程的重新启动。根据 经验停机数监控告警一般是凌晨产生,通过本发明负责人不必要凌晨再爬起来处理告警,完 全由告警自动触发动作完成。
(2) 本发明实现表空间自动管理。监控系统实现对数据库表空间使用情况进行监控,表空间使用率达到90%产生告警,本发明通过预先配置动作,设置表空间中使用比较大且能够清理的表,自动完成表空间清理,并根据数据量增长趋势实现自动扩容功能。防止数据库表空间使用率过大出现异常的情况。
(3) 本发明实现日志清理。监控系统设置对日志文件系统大小监控,当该日志文件系统使用率达到一定程度,预先配置清理日志文件系统的动作,由本发明自动触发动作执行,完成自动备份并清理日志功能。防止文件系统撑满,无法续写日志的问题。
算法编码实现:简要代码如下-public float match(String s, String t){
float value = O.Of;int x, y;String ss, tt, ssl, ttl;
〃去除前后空格
ss = s.trim();tt = ttrim();
//全角空格代替半角空格
String st = ss.replaceAll("","");
String sl[] = new String[st.length()];
String tl[] = new String[tt.length()];
for(int i = 0; i < st.length(); i++){
sl[i〗=st.substring(i,i+l);} for(int j = 0; j < st.length(); j++){
tl[j〗=tt.substring(y+l);} float result[] = new float[Math.max(sl.length, tl.length)]; for(x = 0; x < si .length; x++){
result[x] = (float)l/(float)(x + 1);} for(y = 0; y < tl .length; y++){
result[y] = (float) 1/(float)(y + 1);} for(x = 0; x < si .length; x++){ for(y = 0; y < tl.length; y++){ ssl = sl[x]; ttl =tl[y]; if(ssl.equals(ttl))(
value += result[x〗* result〖y];
return value;




