设备监控与告警
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;