From 4ad7972956349000d9729ec3eedbf6a8919662cc Mon Sep 17 00:00:00 2001 From: huacheng <1252532896@qq.com> Date: Tue, 5 Apr 2022 22:11:24 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BB=A3=E7=A0=81=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20#huacheng?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/alerter/DispatchAlarm.java | 78 ++++++++++++------- ...kWebHookDto.java => WxWorkWebHookDto.java} | 12 ++- 2 files changed, 58 insertions(+), 32 deletions(-) rename manager/src/main/java/com/usthe/manager/pojo/dto/{WeWorkWebHookDto.java => WxWorkWebHookDto.java} (78%) diff --git a/manager/src/main/java/com/usthe/manager/component/alerter/DispatchAlarm.java b/manager/src/main/java/com/usthe/manager/component/alerter/DispatchAlarm.java index 3383b73..08c0828 100644 --- a/manager/src/main/java/com/usthe/manager/component/alerter/DispatchAlarm.java +++ b/manager/src/main/java/com/usthe/manager/component/alerter/DispatchAlarm.java @@ -7,7 +7,7 @@ import com.usthe.common.entity.alerter.Alert; import com.usthe.alert.service.AlertService; import com.usthe.manager.pojo.dto.DingTalkWebHookDto; import com.usthe.manager.pojo.dto.FlyBookWebHookDto; -import com.usthe.manager.pojo.dto.WeWorkWebHookDto; +import com.usthe.manager.pojo.dto.WxWorkWebHookDto; import com.usthe.common.util.CommonConstants; import com.usthe.common.entity.manager.Monitor; import com.usthe.common.entity.manager.NoticeReceiver; @@ -31,6 +31,7 @@ import java.util.List; /** * 告警信息入库分发 + * * @author tom * @date 2021/12/10 12:58 */ @@ -107,9 +108,9 @@ public class DispatchAlarm { } } else { // 若是恢复告警 需对监控状态进行恢复 - if (alert.getStatus() == CommonConstants.ALERT_STATUS_CODE_RESTORED) { - monitorService.updateMonitorStatus(alert.getMonitorId(), CommonConstants.AVAILABLE_CODE); - } + if (alert.getStatus() == CommonConstants.ALERT_STATUS_CODE_RESTORED) { + monitorService.updateMonitorStatus(alert.getMonitorId(), CommonConstants.AVAILABLE_CODE); + } } // 告警落库 alertService.addAlert(alert); @@ -122,22 +123,37 @@ public class DispatchAlarm { for (NoticeReceiver receiver : receivers) { switch (receiver.getType()) { // todo 短信通知 - case 0: break; - case 1: sendEmailAlert(receiver, alert); break; - case 2: sendWebHookAlert(receiver, alert); break; - case 3: sendWeChatAlert(receiver, alert); break; - case 4: sendWeWorkRobotAlert(receiver, alert); break; - case 5: sendDingTalkRobotAlert(receiver, alert); break; - case 6: sendFlyBookAlert(receiver,alert); break; - default: break; + case 0: + break; + case 1: + sendEmailAlert(receiver, alert); + break; + case 2: + sendWebHookAlert(receiver, alert); + break; + case 3: + sendWeChatAlert(receiver, alert); + break; + case 4: + sendWeWorkRobotAlert(receiver, alert); + break; + case 5: + sendDingTalkRobotAlert(receiver, alert); + break; + case 6: + sendFlyBookAlert(receiver, alert); + break; + default: + break; } } } /** * 通过飞书发送告警信息 + * * @param receiver 接收人 - * @param alert 告警信息 + * @param alert 告警信息 */ private void sendFlyBookAlert(NoticeReceiver receiver, Alert alert) { FlyBookWebHookDto flyBookWebHookDto = new FlyBookWebHookDto(); @@ -184,8 +200,9 @@ public class DispatchAlarm { /** * 通过钉钉机器人发送告警信息 - * @param receiver 通知配置信息 - * @param alert 告警信息 + * + * @param receiver 通知配置信息 + * @param alert 告警信息 */ private void sendDingTalkRobotAlert(NoticeReceiver receiver, Alert alert) { DingTalkWebHookDto dingTalkWebHookDto = new DingTalkWebHookDto(); @@ -217,12 +234,13 @@ public class DispatchAlarm { /** * 通过企业微信发送告警信息 - * @param receiver 通知配置信息 - * @param alert 告警信息 + * + * @param receiver 通知配置信息 + * @param alert 告警信息 */ private void sendWeWorkRobotAlert(NoticeReceiver receiver, Alert alert) { - WeWorkWebHookDto weWorkWebHookDTO = new WeWorkWebHookDto(); - WeWorkWebHookDto.MarkdownDTO markdownDTO = new WeWorkWebHookDto.MarkdownDTO(); + WxWorkWebHookDto wxWorkWebHookDTO = new WxWorkWebHookDto(); + WxWorkWebHookDto.MarkdownDTO markdownDTO = new WxWorkWebHookDto.MarkdownDTO(); StringBuilder content = new StringBuilder(); content.append("[TanCloud探云告警通知]\n告警目标对象 : ") .append(alert.getTarget()).append("\n") @@ -231,16 +249,16 @@ public class DispatchAlarm { if (alert.getPriority() < CommonConstants.ALERT_PRIORITY_CODE_WARNING) { content.append("告警级别 : ") .append(CommonUtil.transferAlertPriority(alert.getPriority())).append("\n"); - }else { + } else { content.append("告警级别 : ") .append(CommonUtil.transferAlertPriority(alert.getPriority())).append("\n"); } content.append("内容详情 : ").append(alert.getContent()); markdownDTO.setContent(content.toString()); - weWorkWebHookDTO.setMarkdown(markdownDTO); - String webHookUrl = WeWorkWebHookDto.WEBHOOK_URL + receiver.getWechatId(); + wxWorkWebHookDTO.setMarkdown(markdownDTO); + String webHookUrl = WxWorkWebHookDto.WEBHOOK_URL + receiver.getWechatId(); try { - ResponseEntity entity = restTemplate.postForEntity(webHookUrl, weWorkWebHookDTO, String.class); + ResponseEntity entity = restTemplate.postForEntity(webHookUrl, wxWorkWebHookDTO, String.class); if (entity.getStatusCode() == HttpStatus.OK) { log.debug("Send weWork webHook: {} Success", webHookUrl); } else { @@ -273,23 +291,23 @@ public class DispatchAlarm { } - private void sendEmailAlert(final NoticeReceiver receiver,final Alert alert){ - try{ + private void sendEmailAlert(final NoticeReceiver receiver, final Alert alert) { + try { MimeMessage mimeMessage = javaMailSender.createMimeMessage(); - MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true,"UTF-8"); + MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8"); messageHelper.setSubject("TanCloud探云-监控告警"); //设置发件人Email messageHelper.setFrom(emailFromUser); //设定收件人Email - messageHelper.setTo(receiver.getEmail()); + messageHelper.setTo(receiver.getEmail()); messageHelper.setSentDate(new Date()); //构建邮件模版 String process = mailService.buildAlertHtmlTemplate(alert); //设置邮件内容模版 - messageHelper.setText(process,true); + messageHelper.setText(process, true); javaMailSender.send(mimeMessage); - }catch (Exception e){ - log.error("[邮箱告警] error,Exception information={}",e.getMessage()); + } catch (Exception e) { + log.error("[邮箱告警] error,Exception information={}", e.getMessage()); } } diff --git a/manager/src/main/java/com/usthe/manager/pojo/dto/WeWorkWebHookDto.java b/manager/src/main/java/com/usthe/manager/pojo/dto/WxWorkWebHookDto.java similarity index 78% rename from manager/src/main/java/com/usthe/manager/pojo/dto/WeWorkWebHookDto.java rename to manager/src/main/java/com/usthe/manager/pojo/dto/WxWorkWebHookDto.java index 0ddb9ad..6e3b358 100644 --- a/manager/src/main/java/com/usthe/manager/pojo/dto/WeWorkWebHookDto.java +++ b/manager/src/main/java/com/usthe/manager/pojo/dto/WxWorkWebHookDto.java @@ -7,6 +7,7 @@ import lombok.NoArgsConstructor; /** * 企业微信机器人请求消息体 + * * @author 花城 * @version 1.0 * @date 2022/2/21 6:55 下午 @@ -15,15 +16,22 @@ import lombok.NoArgsConstructor; @Builder @AllArgsConstructor @NoArgsConstructor -public class WeWorkWebHookDto { +public class WxWorkWebHookDto { public static final String WEBHOOK_URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key="; + /** + * markdown格式 + */ private static final String MARKDOWN = "markdown"; + /** + * 文本格式 + */ + private static final String TEXT = "TEXT"; /** * 消息类型 */ - private String msgtype = MARKDOWN; + private String msgType = MARKDOWN; /** * markdown消息