返回顶部
首页 > 资讯 > 精选 >怎么用go开发alertmanger实现钉钉报警
  • 803
分享到

怎么用go开发alertmanger实现钉钉报警

2023-06-20 16:06:21 803人浏览 独家记忆
摘要

这篇文章主要讲解了“怎么用Go开发alertmanger实现钉钉报警”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用go开发alertmanger实现钉钉报警”吧!通过自己的url实现a

这篇文章主要讲解了“怎么用Go开发alertmanger实现钉钉报警”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用go开发alertmanger实现钉钉报警”吧!

通过自己的url实现alertmanager的钉钉报警

WEBhook在alertmanger的配置

- name: 'dingding'      webhook_configs:      - send_resolved: true        url: 'Http://xxxx:8080/Alert'

go实现钉钉报警的程序

package mainimport ( "bytes" "encoding/JSON" "fmt" "net/http" "strings" "time" "log" "GitHub.com/gin-gonic/gin")const ( webHook_Alert = "https://oapi.dingtalk.com/robot/send?access_token=xxxx")type Message struct { MsgType string `json:"msgtype"` Text struct {  Content string `json:"content"`  Mentioned_list string `json:"mentioned_list"`  Mentioned_mobile_list string `json:"mentioned_mobile_list"` } `json:"text"`}type Alert struct { Labels      map[string]string `json:"labels"` Annotations map[string]string `json:annotations` StartsAt    time.Time         `json:"startsAt"` EndsAt      time.Time         `json:"endsAt"`}//通知消息结构体type Notification struct { Version           string            `json:"version"` GroupKey          string            `json:"groupKey"` Status            string            `json:"status"` Receiver          string            `json:receiver` GroupLabels       map[string]string `json:groupLabels` CommonLabels      map[string]string `json:commonLabels` CommonAnnotations map[string]string `json:commonAnnotations` ExternalURL       string            `json:externalURL` Alerts            []Alert           `json:alerts`}//获取报警信息func getAlertInfo(notification Notification) string { var m Message m.MsgType = "text" msg,err := json.Marshal(notification.GroupLabels) if err != nil {  log.Println("notification.GroupLabels Marshal failed",err) } msg1,err := json.Marshal(notification.CommonAnnotations["summary"]) if err != nil {  log.Println("notification.CommonAnnotations Marshal failed",err) } //告警消息 var buffer bytes.Buffer buffer.WriteString(fmt.Sprintf("告警: %v\n",string(msg))) buffer.WriteString(fmt.Sprintf("Endpoint: %v\n",string(msg1))) buffer.WriteString(fmt.Sprintf("告警描述: \"我挂了,快来救我^OO^\"\n")) buffer.WriteString(fmt.Sprintf("Status:%v\n",notification.Status)) //恢复消息 var buffer2 bytes.Buffer buffer2.WriteString(fmt.Sprintf("告警: %v\n",string(msg))) buffer2.WriteString(fmt.Sprintf("Endpoint: %v\n",string(msg1))) buffer2.WriteString(fmt.Sprintf("告警描述: \"哈哈哈,我又回来了!!!\"\n")) //buffer2.WriteString(fmt.Sprintf("mentioned_mobile_list: %v\n",msgres["mentioned_mobile_list"])) buffer2.WriteString(fmt.Sprintf("Status:%v\n",notification.Status)) if notification.Status == "resolved"{  m.Text.Content = buffer2.String() }else {  m.Text.Content = buffer.String() } jsons, err := json.Marshal(m) resp := string(jsons) return resp}//钉钉报警func SendAlertDingMsg(msg string) { defer func() {  if err := recover(); err != nil {   fmt.Println("err")  } }() content := `{"msgtype": "text",  "text": {"content": "` + msg + `"} }` //创建一个请求 req, err := http.NewRequest("POST", webHook_Alert, strings.NewReader(content)) if err != nil {  fmt.Println(err)  fmt.Println("钉钉报警请求异常") } client := &http.Client{} //设置请求头 req.Header.Set("Content-Type", "application/json; charset=utf-8") //发送请求 resp, err := client.Do(req) if err != nil {  // handle error  fmt.Println(err)  fmt.Println("顶顶报发送异常!!!") } defer resp.Body.Close()}func alert( c *gin.Context)  { var notification Notification err := c.BindJSON(&notification) if err != nil {  c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})  return } msg := getAlertInfo(notification) SendAlertDingMsg(msg)}func main()  { t := gin.Default()        t.GET("/",func(c *gin.Context){            c.String(http.StatusOK,"关于alertmanager实现钉钉报警的方法!!!!")        }) t.POST("/Alert",alert) t.Run(":8080")}

可以通过编译二进制打包部署在k8s环境(可以参考下篇文章,如果在k8s环境中部署gin程序)

感谢各位的阅读,以上就是“怎么用go开发alertmanger实现钉钉报警”的内容了,经过本文的学习后,相信大家对怎么用go开发alertmanger实现钉钉报警这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 怎么用go开发alertmanger实现钉钉报警

本文链接: https://lsjlt.com/news/298177.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • go开发alertmanger实现钉钉报警
    通过自己的url实现alertmanager的钉钉报警 webhook在alertmanger的配置 - name: 'dingding' webhook_con...
    99+
    2024-04-02
  • 怎么用go开发alertmanger实现钉钉报警
    这篇文章主要讲解了“怎么用go开发alertmanger实现钉钉报警”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用go开发alertmanger实现钉钉报警”吧!通过自己的url实现a...
    99+
    2023-06-20
  • 怎么用smokeping实现钉钉告警功能
    这篇文章主要讲解了“怎么用smokeping实现钉钉告警功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用smokeping实现钉钉告警功能”吧!第一:钉钉机器人API获取方式钉钉开放...
    99+
    2023-06-04
  • docker部署钉钉机器人报警通知怎么实现
    这篇文章主要介绍“docker部署钉钉机器人报警通知怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“docker部署钉钉机器人报警通知怎么实现”文章能帮助大家解决问题。目录结构[root@no...
    99+
    2023-06-30
  • 如何使用Laravel实现钉钉接收系统警报
    这篇文章主要介绍了如何使用Laravel实现钉钉接收系统警报,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。钉钉提供的聊天机器人功能,可以使用自定义机器人的 webhook 我...
    99+
    2023-06-26
  • docker部署钉钉机器人报警通知的实现
    本文主要介绍了docker部署钉钉机器人报警通知的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 目录结构...
    99+
    2024-04-02
  • 钉钉定制开发怎么收费
    功能收费:对于钉钉定制开发的功能,收费的范围取决于开发者的专业水平和钉钉产品的复杂程度。如果开发者拥有相关的技术经验,并且能够保证钉钉产品的稳定性和安全性,可以考虑收取一定的功能费用。 定制收费:针对不同的钉钉定制开发需求,收费的标准也有...
    99+
    2023-10-28
  • 钉钉上的程序怎么开发
    了解钉钉的API和开发文档 首先,你需要了解钉钉的API,并了解如何使用钉钉的开发工具进行开发。这些文档将帮助你了解钉钉开发中的各种技术,包括数据库、消息队列、权限管理等。 使用开发工具 钉钉上有很多开发工具,例如Dingtalk...
    99+
    2023-10-28
    程序 钉上
  • zabbix3.4.15用python实现钉钉机器人告警的方法是什么
    zabbix3.4.15用python实现钉钉机器人告警的方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。zabbix服务器监控到异常,可以通过钉钉机器人进行报警通...
    99+
    2023-06-05
  • 基于Python实现开发钉钉通知机器人
    目录1.准备2.Python 钉钉机器人通知代码3.钉钉机器人支持Markdown在项目协同工作或自动化流程完成时,我们需要用一定的手段通知自己或他人。比如说,当服务器CPU使用率达...
    99+
    2023-02-07
    Python钉钉通知机器人 Python钉钉通知 Python钉钉机器人
  • Golang怎么实现发送钉钉机器人消息
    本篇内容介绍了“Golang怎么实现发送钉钉机器人消息”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!创建一个钉钉机器人, 必须使用加签方式 ...
    99+
    2023-06-22
  • 如何使用shell操作钉钉机器人实现告警提醒
    这篇文章将为大家详细讲解有关如何使用shell操作钉钉机器人实现告警提醒,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我们知道,之前的运维告警多通过mail 等方式通知到相应的人员,难以实现随时随地的查看...
    99+
    2023-06-09
  • 钉钉上怎么实现仓库管理
    对于企业来说,最重要的是库存管理。在这个信息时代,企业需要对各种信息进行收集、整理、存储和分发,以确保其业务的顺利进行。因此,在进行仓库管理时,企业需要使用各种信息技术,如物联网、云计算等,来提高库存管理的效率。 在实现仓库管理的过程中,...
    99+
    2023-10-28
    仓库管理 钉上
  • python怎么实现微信钉钉等软件多开分身
    今天小编给大家分享一下python怎么实现微信钉钉等软件多开分身的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。目前很多软件都...
    99+
    2023-06-29
  • Python基于钉钉监控发送消息提醒怎么实现
    这篇文章主要介绍“Python基于钉钉监控发送消息提醒怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python基于钉钉监控发送消息提醒怎么实现”文章能帮助大家解决问题。一.使用前设置钉钉既...
    99+
    2023-07-02
  • nodejs怎么实现钉钉单聊机器人
    这篇文章主要介绍了nodejs怎么实现钉钉单聊机器人,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。要实现的效果通过预先配置问答库和语义识别能...
    99+
    2024-04-02
  • Java利用钉钉机器人实现发送群消息
    目录添加群机器人Java请求示例官方SDK请求示例pom引入官方SDK群消息通知方法添加群机器人 可以查看这篇文章:添加机器人到钉钉群 使用命令行工具curl快速验证自定义机器人是否...
    99+
    2024-04-02
  • 使用Flutter怎么实现一个钉钉考勤日历
    使用Flutter怎么实现一个钉钉考勤日历?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 使用  // 考勤日历 &nb...
    99+
    2023-06-14
  • 怎么使用python代码实现钉钉自动打卡
    本篇内容介绍了“怎么使用python代码实现钉钉自动打卡”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!准备环境Android 手机一部(我用...
    99+
    2023-06-16
  • 钉钉酷应用项目管理怎么开通
    那么,为什么会出现这些问题呢?这些问题的解决方法有哪些呢?下面我们将分别从技术和管理两个方面来介绍如何开通钉钉酷应用项目管理。 一、技术方面的开通 登录 在使用钉钉酷应用项目管理时,必须通过用户名和密码来登录系统。如果用户名和密码错误...
    99+
    2023-10-28
    项目管理 钉钉酷
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作