
SkyWalking实现服务的监控告警通知内容编辑主要通过修改`config/alarm-settings.yml`文件中的告警规则和Webhook配置来实现。以下是具体步骤:
SkyWalking的告警规则定义在`config/alarm-settings.yml`文件中,分为两部分:
例如,以下是一个预定义的告警规则,当服务平均响应时间在过去3分钟内超过1秒时触发:
yaml
rules:
service_resp_time_rule:
metrics-name: service_resp_time
op: “>
threshold: 1000
period: 10
count: 3
silence-period: 5
message: Response time of service {name} is more than 1000ms in 3 minutes of last 10 minutes.
在这个规则中:
SkyWalking通过Webhook将告警消息发送到指定的服务接口。Webhook的配置也在`config/alarm-settings.yml`文件中。例如:
yaml
webhooks:
这将把告警消息发送到本地的`9134`端口的`/alarm/receive`接口。
要编辑告警通知内容,可以通过修改`message`字段来实现。例如:
yaml
message: 服务 {name} 的响应时间在过去10分钟内的3分钟内超过了1000毫秒,请及时检查!
在这个消息中,`{name}`是一个占位符,将在实际触发告警时替换为服务的名称。
SkyWalking本身不支持直接向邮箱发送告警信息,但可以通过在Webhook接口中实现邮件发送功能来达到目的。以下是一个基于Spring Boot实现邮件告警的示例:
xml
yaml
spring:
mail:
host: smtp.
username:
password: 你的邮箱服务密钥
default-encoding: utf-8
port: 465
protocol: smtp
properties:
mail:
debug: false
smtp:
socketFactory:
class: .ssl.SSLSocketFactory
java
@Slf4j
@RestController
@RequestMapping(“/alarm”)
public class SwAlarmController {
private final JavaMailSender sender;
private final String from;
public SwAlarmController(JavaMailSender sender, @Value(“${spring.mail.username}”) String from) {
this.sender = sender;
this.from = from;
@PostMapping(“/receive”)
public void receive(@RequestBody List
SimpleMailMessage message = new SimpleMailMessage;
message.setFrom(from);
message.setTo(from);
message.setSubject(“告警邮件”);
String content = getContent(alarmList);
message.setText(content);
sender.send(message);
log.info(“告警邮件已发送…”);
private String getContent(List
StringBuilder sb = new StringBuilder;
for (SwAlarmDTO dto : alarmList) {
sb.append(“scopeId: “).append(dto.getScopeId)
append(“
scope: “).append(dto.getScope)
append(“
目标 Scope 的实体名称: “).append(dto.getName)
append(“
Scope 实体的 ID: “).append(dto.getId0)
append(“
id1: “).append(dto.getId1)
append(“
告警规则名称: “).append(dto.getRuleName)
append(“
告警消息内容: “).append(dto.getAlarmMessage)
append(“
告警时间: “).append(dto.getStartTime)
append(“
);
return sb.toString;
通过上述步骤,可以实现SkyWalking服务的监控告警通知内容的编辑和自定义邮件告警功能。
Lei
April 24, 2025
技术探讨