Authored by qinchao

发送告警到钉钉

... ... @@ -25,5 +25,5 @@ public interface AlarmMsgService {
* @param mobile
* @return
*/
boolean sendSmsNo(String type, String content, String alarmInfo, String mobile);
//boolean sendSmsNo(String type, String content, String alarmInfo, String mobile);
}
... ...
package com.monitor.common.service;
/**
* Created by craig.qin on 2017/10/23.
*/
public interface DingDingService {
String insertMsg(String content);
}
... ...
... ... @@ -41,6 +41,9 @@ public class AlarmMsgServiceImpl implements AlarmMsgService {
@Autowired
private ZkClientUtil zkClient;
@Autowired
private DingDingServiceImpl dingDingService;
private Logger logger = LoggerFactory.getLogger(AlarmMsgServiceImpl.class);
... ... @@ -86,7 +89,8 @@ public class AlarmMsgServiceImpl implements AlarmMsgService {
logger.error("Send msg type get ZK_PATH smsSendSwitch error",e);
}
if(StringUtils.isNotBlank(open)&&"false".equals(open)){
return false;//短信开关关掉了,不再发送短信
dingDingService.insertMsg("yhops短信告警(短信通知暂时关闭):"+content);
return true;//短信开关关掉了,不再发送短信
}
//无需发送
... ... @@ -122,7 +126,7 @@ public class AlarmMsgServiceImpl implements AlarmMsgService {
* @param mobile
* @return
*/
@Override
/* @Override
public boolean sendSmsNo(String type, String content, String alarmInfo, String mobile) {
logger.info("Send msg type {} content {} alarmInfo {} moniole {}...", type, content, alarmInfo, mobile);
if (StringUtils.isBlank(content)) {
... ... @@ -141,7 +145,7 @@ public class AlarmMsgServiceImpl implements AlarmMsgService {
}
return sendStatus;
}
}*/
/**
* 发送短信
... ... @@ -164,6 +168,8 @@ public class AlarmMsgServiceImpl implements AlarmMsgService {
qcloudSms.setMsg("故障:"+content);
qcloudSms.setSig(MD5Util.encryption(sendsmsConfig.getQcloudSmsKey() + mobile));
String result = httpRestClientService.doPostStringJson(sendsmsConfig.getQcloudSmsUrl(), JSON.toJSONString(qcloudSms));
dingDingService.insertMsg("yhops短信告警:"+content);
return result;
} catch (Exception e) {
logger.error("send sms failed", e);
... ...
package com.monitor.common.service.impl;
import com.alibaba.fastjson.JSON;
import com.monitor.common.service.DingDingService;
import com.monitor.common.service.HttpRestClientService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
/**
* Created by craig.qin on 2017/10/23.
*/
@Service
public class DingDingServiceImpl implements DingDingService {
final String ddRobotUrl="https://oapi.dingtalk.com/robot/send?access_token=31cf1a526c98862b7945e561c5a0d857a069350dbee0e807074b83b39fa1e1af";
@Autowired
private HttpRestClientService httpRestClientService;
public final Logger logger = LoggerFactory.getLogger(getClass());
@Override
public String insertMsg(String content){
String rtn="";
try{
Map<String,Object> ddValueTmp=new HashMap<String,Object>();
ddValueTmp.put("msgtype","text");
Map<String,String> tmpContent=new HashMap<String,String>();
tmpContent.put("content",content);
ddValueTmp.put("text",tmpContent);
rtn=httpRestClientService.doPostStringJson(ddRobotUrl, JSON.toJSONString(ddValueTmp));
}catch (Exception e){
logger.error("ding ding insert message error",e);
rtn="ding ding insert message error";
}
return rtn;
}
}
... ...
... ... @@ -36,6 +36,9 @@ public class VoiceMsgServiceImpl implements VoiceMsgService {
@Autowired
private ZkClientUtil zkClient;
@Autowired
private DingDingServiceImpl dingDingService;
public final Logger DEBUG = LoggerFactory.getLogger(getClass());
private String ZK_PATH = "/yh/config/";
... ... @@ -70,6 +73,11 @@ public class VoiceMsgServiceImpl implements VoiceMsgService {
@Override
public void sendVoiceAlarm(String mobile,String content) throws UnsupportedEncodingException {
String promptfile = "请及时处理故障:紧急故障";
if (content != null){
promptfile = "请及时处理故障:"+content;
}
//根据zk的开关判断是否需要发送数据
String open="";
try{
... ... @@ -79,15 +87,13 @@ public class VoiceMsgServiceImpl implements VoiceMsgService {
DEBUG.error("Send msg type get ZK_PATH smsVoiceSendSwitch error",e);
}
if(StringUtils.isNotBlank(open)&&"false".equals(open)){
dingDingService.insertMsg("yhops语音告警(语音告警已关闭):"+promptfile);
return ;//开关关掉了,不再发送语音
}
try {
VoiceSmsNotice voiceSms = new VoiceSmsNotice();
String promptfile = "请及时处理故障:紧急故障";
if (content != null){
promptfile = "请及时处理故障:"+content;
}
voiceSms.setPromptfile(promptfile);
voiceSms.setExt("nothing");
String[] mobiles = mobile.split(",");
... ... @@ -102,6 +108,7 @@ public class VoiceMsgServiceImpl implements VoiceMsgService {
monitorAlarmMapper.insertAlarmMsg(InfluxDBContants.AWS, "voice", promptfile, "null", result!=null ? "successed" : "faild", result,mobile);
}
dingDingService.insertMsg("yhops语音告警:"+promptfile);
} catch (Exception e) {
DEBUG.error("sendVoide notice error ", e);
}
... ...