[转帖]grafana9 使用消息模板配置发送企业微信(wecom)

grafana9,使用,消息,模板,配置,发送,企业,wecom · 浏览次数 : 0

小编点评

## Grafana 9告警设置 **1. 进入告警消息模板介面** 在 Grafana 主界面,点击“配置” -> “告警”。然后点击“创建”。 **2. 设置告警模板** * 输入模板名称为 `API_msg_tpl`。 * 在模板中,选择“模板类型”为 “JSON”。 * 输入模板内容。 **模板内容:** ```json { "name": "API 通知", "template_id": "myalert", "time_shift": 300, "data_points_to_monitor": [ { "name": "接口名称", "expression": ".Labels.alertname" }, { "name": "接口状态", "expression": ".State" }, { "name": "恢复时间", "expression": ".StartsAt.Format(\"2006-01-02 15:04:05\")" } ], "annotations_to_display": [ { "name": "告警信息", "expression": ".Value" } ], "trigger_conditions": [ { "name": "API 接口状态", "expression": "AND(eq(status, 'success'), eq(state, 'running'))" } ], "alerts_to_trigger": [ { "name": "API 接口状态", "expression": "eq(status, 'success')" } ], "data_points_to_trigger_on": "none" } ``` **3. 设置告警媒介** * 选择“新”按钮创建新的告警媒介。 * 输入名称为 `企微 webhook`。 * 设置 URL 为 `https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxxxxxxxx`。 **4. 生成告警规则** * 点击“添加规则”。 * 选择“SELECT toStartOfInterval”。 * 输入查询条件: ```sql SELECT toStartOfInterval(timestamp, INTERVAL 60 second) as time, 100 from access_smartgate.access_smartgate_local where $__timeFilter(timestamp) GROUP BY time ORDER by time ``` * 选择触发条件:接口状态为 “成功”。 * 设置告警内容为模板:`template "myalert"`。 * 保存并测试告警规则。

正文

一、grafana9告警设置:
1、进入告警消息模板介面
在这里插入图片描述

2、grafana 消息模板设置
在这里插入图片描述

template name : API_msg_tpl #名字随便

{{ define "myalert" }}
**警报时间:** {{ .StartsAt.Format "2006-01-02 15:04:05 " }}
{{ if gt (len .Labels) 0 }}**接口名称:** {{.Labels.alertname}}{{ range .Labels.SortedPairs }}{{ if and (ne (.Name) "alertname") (ne (.Name) "serverity") (ne (.Name) "grafana_folder")}}**{{ .Name }}:** {{ .Value }}{{ end }}{{ end }}{{ end }}
{{ if gt (len .Annotations) 0 }}{{ range .Annotations.SortedPairs }}
**{{ .Name }}:** {{ .Value }}{{ end }}{{ end }}
{{ if gt (len .DashboardURL ) 0 }}**[告警图表]({{ .DashboardURL }})**{{ end }}{{ end }}

{{ define "mymessage" }}
{{ if gt (len .Alerts.Firing) 0 }}# <font color="warning">警报来了</font>{{ range .Alerts.Firing }}{{ template "myalert" .}}
-------{{ end }}{{ end }}
{{ if gt (len .Alerts.Resolved) 0 }}## <font color="info">恢复了</font>{{ range .Alerts.Resolved }}{{ template "myalert" .}}
恢复时间: {{ .StartsAt.Format "2006-01-02 15:04:05" }}
-------{{ end }}{{ end }}{{ end }}

    3、设置告警媒介
    #新建一个告警媒介
    在这里插入图片描述
    #设置企微告警 选择"wecom"
    在这里插入图片描述
    Name: 企微
    webhook Url : https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxxxxxxxx #在企业微信中新建一个就好
    Message: {{ template “mymessage” . }}
    Title: 接口告警了,快看看!!(生产)

    4、生成一个告警规则
    在这里插入图片描述
    #设置填写查询条件和触发条件
    在这里插入图片描述
    测试使用

    SELECT toStartOfInterval(timestamp, INTERVAL 60 second) as time, 100 from access_smartgate.access_smartgate_local where  $__timeFilter(timestamp) GROUP BY time ORDER by time
    

      在这里插入图片描述

      #手动添加annotations

      Rule name   API转码接口
      告警级别  严重
      告警信息  API接口成功率低于90%
      接口地址   /ebus/test/login
      现值成功率 {{ with $values }}{{ range $k, $v := . }}{{ $v }}{{ end }}{{ end }}
      

        #企微里收到以下信息
        在这里插入图片描述


        模板使用技巧

        #读取ValueString的方法
        {{ if gt (len .ValueString) 0 }}
        **告警信息:**
            {{ .ValueString }}{{ end }}
        

        #读取Labels下所有label,并排除指定的label
        {{ if gt (len .Labels) 0 }}
        主机标签: {{ range .Labels.SortedPairs }}{{ if and (ne (.Name) "alertname")}}
        {{ .Name }}: {{ .Value }}{{ end }}{{ end }}{{ end }}

        #时间格式化,以下方法会增加8个小时
        警报时间: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05 " }}

        #标准时间使用方法
        警报时间: {{ .StartsAt.Format "2006-01-02 15:04:05 " }}

        #提取B的值,此方法有待再次验证(曾经正常提取) 在annotations使用
        {{ $values.B }}

          参考
          https://docs.aws.amazon.com/grafana/latest/userguide/alert-message-templates.html

          文章知识点与官方知识档案匹配,可进一步学习相关知识
          云原生入门技能树首页概览9616 人正在系统学习中

          与[转帖]grafana9 使用消息模板配置发送企业微信(wecom)相似的内容:

          [转帖]grafana9 使用消息模板配置发送企业微信(wecom)

          一、grafana9告警设置: 1、进入告警消息模板介面 2、grafana 消息模板设置 template name : API_msg_tpl #名字随便 {{ define "myalert" }} **警报时间:** {{ .StartsAt.Format "2006-01-02 15:04

          [转帖]grafana 连接 influxdb 1.x 和 2.x

          文章目录 一、安装 influxdbⅠ、docker 安装 二、常用操作Ⅰ、influxdb 1.x版本添加用户认证Ⅱ、influxdb 2.x 使用命令行Ⅲ、CLI 配置tokenⅤ、CLI 查询测试 三、grafana 安装使用Ⅱ、docker 安装 grafana 四、grafana 连接 i

          [转帖]Promethues + Grafana + AlertManager使用总结

          Prometheus是一个开源监控报警系统和时序列数据库,通常会使用Grafana来美化数据展示。 1|01. 监控系统基础架 1|11.1核心组件 Prometheus Server, 主要用于抓取数据和存储时序数据,另外还提供查询和 Alert Rule 配置管理。 exporters ,数据采

          [转帖]使用 Grafana 监控 TiDB 的最佳实践

          https://docs.pingcap.com/zh/tidb/stable/grafana-monitor-best-practices 使用 TiUP 部署 TiDB 集群时,如果在拓扑配置中添加了 Grafana 和 Prometheus,会部署一套 Grafana + Prometheus

          [转帖]使用Prometheus和Grafana监控RabbitMQ集群 (使用RabbitMQ自带插件)

          https://www.cnblogs.com/hahaha111122222/p/15683696.html 配置RabbitMQ集群 官方文档:https://www.rabbitmq.com/prometheus.html#quick-start 官方github地址:https://gith

          [转帖]k8spacket 和 Grafana 对 kubernetes 的 TCP 数据包流量可视化

          https://devpress.csdn.net/k8s/62ff4fe47e66823466193b95.html 你知道你不看的时候你的k8s集群在做什么吗?谁与他建立 TCP 通信?他调用了谁,例如,来自第三方库? 使用k8spacket和Grafana,您可以可视化集群中的 TCP 流量。

          [转帖]kubernetes Tcp流量可视化

          https://www.cnblogs.com/charlieroro/p/16771739.html 使用k8spacket和grafana的node graph插件可以查看kubernetes pod的TCP相关信息,如connection、bytes、和duration。下面是接收和响应的字节

          [转帖]kubernetes Tcp流量可视化

          https://www.cnblogs.com/charlieroro/p/16771739.html 使用k8spacket和grafana的node graph插件可以查看kubernetes pod的TCP相关信息,如connection、bytes、和duration。下面是接收和响应的字节

          [转帖]Kafka Dashboard

          https://grafana.com/grafana/dashboards/18276-kafka-dashboard/ Kafka resource usage and consumer lag overview Overview Revisions Reviews 使用jmx_exporter

          [转帖]使用 nsenter、dig 和 tcpdump 调试 Kubernetes 网络问题

          https://zhuanlan.zhihu.com/p/410217354 使用 nsenter、dig 和 tcpdump 调试 Kubernetes 网络问题 作为 Kubernetes 管理员,我经常发现自己需要调试应用程序和系统问题。我遇到的大多数问题都可以通过 Grafana 仪表板和