摘要
Alert Manager上报告警到告警服务
一、Spring告警服务接收Alert
简单代码如下,请自行在业务内进行解析:
@RestController
@RequestMapping("/alert")
public class AlertController {
@PostMapping("/receive")
public String receive(@RequestBody JSONObject monitorJson){
System.out.println("monitorJson = " + monitorJson.toString());
return "success";
}
}
二、配置AlertManager
在alert manager目录内,编辑alertmanager.yml
global:
resolve_timeout: 2m
route:
group_by: ['alertname']
group_wait: 10s
group_interval: 5m
repeat_interval: 1h
receiver: 'web.hook'
receivers:
- name: 'web.hook' # 这里使用web hook 当然,也可以使用wechat、email等
webhook_configs: # 接收告警地址
- url: 'http://192.168.2.62:8080/system/alert/receive'
inhibit_rules: # 聚合告警规则
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'dev', 'instance']
重启alertmanager
三、测试AlertManager到Spring
Lianux中 编辑临时告警MSG:
#!/usr/bin/env bash
alerts_message='[
{
"labels": {
"alertname": "磁盘已满",
"dev": "sda1",
"instance": "实例1",
"msgtype": "testing"
},
"annotations": {
"info": "程序员小王提示您:这个磁盘sda1已经满了,快处理!",
"summary": "请检查实例示例1"
}
},
{
"labels": {
"alertname": "磁盘已满",
"dev": "sda2",
"instance": "实例1",
"msgtype": "testing"
},
"annotations": {
"info": "程序员小王提示您:这个磁盘sda2已经满了,快处理!",
"summary": "请检查实例示例1",
"runbook": "以下链接http://test-url应该是可点击的"
}
}
]'
给 AlertManager发送告警
curl -XPOST -d"$alerts_message" http://127.0.0.1:9093/api/v1/alerts
可以在AlertManager的UI看到
同时,在告警接收端也能看到告警