SpringBoot集成Prometheus实现Alert Manager告警上报(三)

摘要

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看到

同时,在告警接收端也能看到告警

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值