Grafana+Prometheus系统监控之webhook

概述

Webhook是一个API概念,并且变得越来越流行。我们能用事件描述的事物越多,webhook的作用范围也就越大。Webhook作为一个轻量的事件处理应用,正变得越来越有用。

准确的说webhoo是一种web回调或者http的push API,是向APP或者其他应用提供实时信息的一种方式。Webhook在数据产生时立即发送数据,也就是你能实时收到数据。这一种不同于典型的API,需要用了实时性需要足够快的轮询。这无论是对生产还是对消费者都是高效的,唯一的缺点是初始建立困难。

Webhook有时也被称为反向API,因为他提供了API规则,你需要设计要使用的API。Webhook将向你的应用发起http请求,典型的是post请求,应用程序由请求驱动。

配置

前两篇文章主要讲的是邮件和钉钉的警报通知方式,但是通知方式单一,并且依赖于第三方服务无法做集群处理。为了更加灵活方便并且高可用的实现我们的预警通知功能,这里我们自己实现Webhook功能。

前两篇看这里:
Grafana+Prometheus系统监控之邮件报警功能

Grafana+Prometheus系统监控之钉钉报警功能

Webhook实现看这里:
我们使用最近比较流行的spring-boot来实现这个功能,部分代码如下:

/**
     * JSON数据格式
     * body:{
     *       "imageUrl":"http://grafana.org/assets/img/blog/mixed_styles.png",
     *       "message":"Someone is testing the alert notification within grafana.",
     *       "ruleId":0,
     *       "ruleName":"Test notification",
     *       "ruleUrl":"http://grafana.52itstyle.com/",
     *       "state":"alerting",
     *       "title":"[Alerting] Test notification",
     *       "evalMatches":[
     *             {"value":100,"metric":"High value","tags":null},
     *             {"value":200,"metric":"Higher Value","tags":null}
     *          ]
     *  }
     */
    @RequestMapping("/send")
    public String webhook(@RequestBody String body) {
        //处理预警信息(邮件、短信、钉钉)
        logger.info("webhook警报系统,body:{}",body);
        return "success";
    }

源码

码云地址:https://gitee.com/52itstyle/spring-boot-webhook

作者: 小柒

出处: https://blog.52itstyle.com

分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

时间: 2024-12-02 17:34:31

Grafana+Prometheus系统监控之webhook的相关文章

Grafana+Prometheus系统监控之MySql

架构 grafana和prometheus之前安装配置过,见:Grafana+Prometheus打造全方位立体监控系统 MySql安装 MySql的地位和重要性就不言而喻了,作为开源产品深受广大中小企业以及互联网企业喜爱,所以这里我们也有必要对其进行相应的监控. 由于最近更换了CentOS7,这里对MySql重新安装一遍,顺便做个记录,CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 列出所有版本信息: lsb_release -a

Grafana+Prometheus系统监控之Redis

介绍 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型. 应用

Grafana+Prometheus系统监控之钉钉报警功能

介绍 钉钉,阿里巴巴出品,专为中国企业打造的免费智能移动办公平台,含PC版,Web版和手机版.智能办公电话,消息已读未读,DING消息任务管理,让沟通更高效:移动办公考勤,签到,审批,企业邮箱,企业网盘,企业通讯录,让工作更简单:酷公司,用钉钉,随时随地移动办公. 由于目前的版本邮件警报暂时走不通,然而钉钉也是一个不错的选择. 配置 下载钉钉:钉钉 自定义机器人:机器人 后台新增钉钉报警: 保存以后发送测试. 报警 目前只有Graph支持报警功能,所以我们选择Graph相关图表. 我们切换到前面

Consul+Prometheus系统监控之注册发现

缘起 前面几篇文章分别对系统服务.MySql以及Redis相关软件做了监控预警,但是大家有没有发现,在prometheus.yml里配置需要监听的服务时,我们需要按服务名手动写入,也就是说以后每增加一个服务,就得手动修改此配置,并重启promethues服务. 那么我们如何做到动态的监听服务呢?相信不少接触过分布式框架Dubbo的小伙伴们都知道它是靠zookeeper做注册监听的,最近比较流行的Spring Cloud Netflix的Eureka,consul也是比较常用的注册中心. 参考官方

建设DevOps统一运维监控平台,全面的系统监控你做好了吗?

随着Devops.云计算.微服务.容器等理念的逐步落地和大力发展,机器越来越多,应用越来越多,服务越来越微,应用运行基础环境越来多样化,容器.虚拟机.物理机不一而足.面对动辄几百上千个虚拟机.容器,数十种要监控的对象,现有的监控系统还能否支撑的住?来自于容器.虚拟机.物理机.网络设备.中间件的指标数据如何采用同一套方案快速.完整的收集和分析告警?怎样的架构.技术方案才更适合如此庞大繁杂的监控需求呢 一.统一监控平台架构解析 先做一下回顾,统一监控平台由七大角色构成:监控源.数据采集.数据存储.数

centos 5.X安装网络和系统监控管理平台:OpenNMS简介

关于OpenNMS:OpenNMS是一个企业级基于Java/XML的分布式网络和系统监控管理平台.OpenNMS是你管理网络的绝好工具,它能够显示你网络中各中终端和服务器的状态和配置,为你方便地管理网络提供有效的信息.OpenNMS是世界上第一个用开放原始码模式开发的企业级网络管理系统.和其它复杂.功能强大的系统一样,需要费一点心力来安装和设置. OpenNMS使用PostgreSQL数据库,并且要求能够以postgres用户的身份通过TCP/IP协议连接到PostgreSQL. 系统支持:目前

linux的系统监控命令介绍

linux系统监控有以下命令: uptime:显示系统负载情况 mpstat:显示 CPU 性能 free:显示内存使用情况 vmstat:显示虚拟内存使用情况 iostat:显示系统 I/O 活动 netstat:显示网络的活动 df/du:显示磁盘使用情况 1. uptime fdipzone@ubuntu:~$ uptime 00:06:00 up 32 min, 2 users, load average: 0.00, 0.03, 0.07 00:06:00 表示当前时间 32min 表

Linux Mrtg系统监控简介

一.mrgt配置案例说明,这里以监控网卡为例 #通过public监控localhost上的192.168.1.68地址流量 Target[eth1_lan]:/192.168.1.68:public@localhost #图片右对齐方式 Options[eth1_lan]:growright #生成图片存放目录 Directory[eth1_lan]:eth1 #网卡最大流量 MaxBytes[eth1_lan]:100000000 #图片Y轴单位数 Kmg[eth1_lan]:K,M,G #Y

Win7系统监控技巧

  公司的电脑个人隐私性极差,稍不留神就可能让他人窥探到我们的个人隐私.即使知道别人动过自己的电脑想理论但又苦于没有证据这怎么办呢?下面小编就为大家介绍一下Win7系统监控技巧. 在这里,小编以QQ为例,启用这监控功能主要有以下三个步骤: 第一:启用审核策略 1. 在开始搜索栏中键入"gpedit.msc",回车,打开组策略编辑器.(若弹出用户账户控制窗口,请允许以继续) 2. 定位到"计算机配置"→"Windows 设置"→"安全设置