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消息