Alertmanager报警使用webhook飞秋通知

Alertmanager报警使用webhook飞秋通知

本文介绍Alertmanager报警使用飞秋通知

1、Alertmanager换成webhook进行测试

global:
  # 在没有报警的情况下声明为已解决的时间
  resolve_timeout: 5m

templates:
  # 告警模板文件
  - "/etc/alertmanager/templates/wechat.tmpl"

route:
  # 接收到告警后到自定义分组
  group_by: ["alertname"]
  # 分组创建后初始化等待时长
  group_wait: 10s
  # 告警信息发送之前的等待时长
  group_interval: 30s
  # 重复报警的间隔时长
  repeat_interval: 5m
  # 默认消息接收
  receiver: "webhook"

receivers:
  - name: 'webhook'
    webhook_configs:
      - url: 'http://192.168.0.14:9090/webhook'

2、测试通过代码发送消息到飞秋

飞秋下载

    public static DatagramSocket datagramSocket = null;

    public static boolean sendFeiqiu(String content) throws IOException {
        //第一步:建立udp的服务
        if(datagramSocket == null){
            datagramSocket = new DatagramSocket();
        }
        //第二步:准备数据,然后把数据封装 到数据包中,
        String data = getData(content);
        DatagramPacket datagramPacket = new DatagramPacket(data.getBytes("gbk"), data.getBytes("gbk").length, InetAddress.getByName("192.168.0.14"), 2425);
        //第三步: 调用udp的服务发送数据
        datagramSocket.send(datagramPacket);
        //关闭资源
//        datagramSocket.close();

        return true;
    }
    //把数据组装成feiQ能识别的经特定加密处理过的格式数据
    public static String getData(String data){
        StringBuilder sb = new StringBuilder();
        sb.append("1.0:");
        sb.append(System.currentTimeMillis()+":");
        sb.append("测试:");
        sb.append("0.0.0.0:");
        sb.append("32:");
        sb.append(data);
        return sb.toString();
    }
    @RequestMapping(value = "/feiqiu")
    @ResponseBody
    public String test() {
        Map<String, Object> result = new HashMap<>();
        try {
            boolean success = sendFeiqiu("测试发送消息");
            if (success) {
                result.put("msg", "报警成功");
                result.put("code", 1);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return JSON.toJSONString(result);
    }

在这里插入图片描述
在这里插入图片描述

3、将Alertmanager的消息发送给飞秋

内容需要自己组装一下

  @RequestMapping(value = "/webhook", produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String pstn(@RequestBody String json) {
        log.info("alert notify  params: {}", json);
        Map<String, Object> result = new HashMap<>();
        result.put("msg", "报警失败");
        result.put("code", 0);

        if(StringUtils.isBlank(json)){
            return JSON.toJSONString(result);
        }
        JSONObject jo = JSON.parseObject(json);

        JSONObject commonAnnotations = jo.getJSONObject("commonAnnotations");
        String status = jo.getString("status");
        if (commonAnnotations == null) {
            return JSON.toJSONString(result);
        }
        String subject = commonAnnotations.getString("summary");
        String content = commonAnnotations.getString("description");

        try {
            boolean success = sendFeiqiu(json);
            if (success) {
                result.put("msg", "报警成功");
                result.put("code", 1);
            }
        } catch (Exception e) {
            log.error("=alert email notify error. json={}", json, e);
        }
        return JSON.toJSONString(result);
    }

在这里插入图片描述

代码下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liuhm~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值