设备监控与告警

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设备监控告警设计与开发

采用IMB的MQ服务器(Websphere MQ),进行设计开发。

服务器的建立属于工程维护,或者说是服务器

运行的工作组进行配置,开发人员,对此是透明的,只要基本设计参数就行了。

1、脚本运行;

IBM服务器AIX运行的是Unix系统,那么使用的脚本自然就是用SHELL命令编写的。

脚本CPU.sh实例程序:

#!/bin/bash

#editor qiuzhiwei

#date 140520

cur_PERCENT_log1=`df -k|grep "/dev/hd1"|grep "home"|awk '{print $4}'|cut -f 1 -d %`

cur_PERCENT_app1=`df -k|grep "/dev/hd12app"|awk '{print $4}'|cut -f 1 -d %`

cur_PERCENT_log2=`ssh wasadmin@192.168.60.134 df -k|grep "/dev/hd1"|grep "home"|awk '{print $4}'|cut -f 1 -d %` cur_PERCENT_app2=`ssh wasadmin@192.168.60.134 df -k|grep "/dev/hd12app"|awk '{print $4}'|cut -f 1 -d %`

cur_PERCENT_flowdata=`df -k|grep "/flowdata"|awk '{print $4}'|cut -f 1 -d %`

if [ $cur_PERCENT_log1 ] && [ $cur_PERCENT_log1 -ge 80 ];then

echo "APPServer1服务器日志目录使用率超过80%!"

fi

if [ $cur_PERCENT_app1 ] && [ $cur_PERCENT_app1 -ge 80 ];then

echo "APPServer1服务器应用目录使用率超过80%!"

fi

if [ $cur_PERCENT_log1 ] && [ $cur_PERCENT_log2 -ge 80 ];then

echo "APPServer2服务器日志目录使用率超过80%!"

fi

if [ $cur_PERCENT_app2 ] && [ $cur_PERCENT_app2 -ge 80 ];then

echo "APPServer2服务器应用目录使用率超过80%!"

fi

if [ $cur_PERCENT_flowdata ] && [ $cur_PERCENT_flowdata -ge 80 ];then

echo "APPServer服务器附件及缓存目录使用率超过80%!"

fi

2、数据封装

Java程序,执行脚本的完整程序。

关键的方法:Process.getRuntime.exec(filePath);

public class ScriptJob {

//执行脚本通用方法

public void actionScript(String fileName,String tag){

try {

//执行脚本

Process pro=Runtime.getRuntime().exec(fileName);

String ret=IOUtils.toString(pro.getInputStream(), "UTF-8");

if(ret!=null){

MqProcessBO mq=(MqProcessBO) SpringContextUtil.getBean("MqProcessBO");

mq.parseContent(ret,tag);

}

System.out.println("脚本["+fileName+"]执行完成");

} catch (Exception e) {

System.out.println("执行脚本文件["+fileName+"]出现错误"+e.getMessage());

e.printStackTrace();

}

}

}

3、报文发送

public class MqProcessBO {

public void parseContent(String ret,String tag){

String[] packs=ret.split("\r\n");

for(int i=0;i

String ip=packs[i];

String content=packs[i+1];

(ip+"******************"+content);

send(ip,content,tag);

}

}

public void send(String ip, String content,String tag) { String xml=packageContent(ip,content,tag);

MQQueueManager qMgr;

MQEnvironment.hostname = "10.201.36.9";

MQEnvironment.port = 21004;

MQEnvironment.channel = "CHANNEL1";

SID = 1208;

String mgrName = "QM_FM";

String qname = "Q_FM_IPNET_WGALARM";

try {

qMgr = new MQQueueManager(mgrName);

int openOptions = MQC.MQMT_REQUEST | MQC.MQPMO_NEW_MSG_ID | MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING

| MQC.MQOO_INPUT_AS_Q_DEF;

("*******************QUEUE NAME INFO:"+qname);

MQQueue queue = qMgr.accessQueue(qname, openOptions);

MQPutMessageOptions pmo = new MQPutMessageOptions();

("------------------SEND INFO:["+xml+"]");

MQMessage msg = new MQMessage();

msg.messageId = "MSGID".getBytes();

msg.messageType = MQC.MQMT_REQUEST;

msg.replyToQueueName = qname;

msg.messageSequenceNumber = 1;

相关文档
最新文档