需求:报警信息太多,需要筛选出来一部分,实现紧急处理,不紧急处理,然后发送到不同的群。

  1. 部署 prometheus 钉钉推送 自定义监控配置 promql基础语法地址:https://blog.csdn.net/weixin_43606975/article/details/125283704?spm=1001.2014.3001.5502
  2. 修改配置dingtalk-config.yaml文件
cat dingtalk-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:name: dingtalk-confignamespace: prometheus
data:config.yml: |-templates:- /etc/prometheus-webhook-dingtalk/template.tmpltargets:webhook:url: https://oapi.dingtalk.com/robot/send?access_token=b5b550b72447d935572d5c717cd1ec4bed7f17cc82ef #机器人wehbook地址secret: SECcbc9fe62f53d9a533d5e506f30722e0a1a39b36bd0b8e242c15772dc39e05aa1 #钉钉机器人的加签mention:all: true  #@所有人webhook2:url: https://oapi.dingtalk.com/robot/send?access_token=4df2745e8df1de6d0429e35caf15e032e2b33ee2ba73899043c99953db9d68a3secret: SECe079af795abd316a7e1f431ee8ebcf082cc0b0611a859da37ec4d7ad6800b0f5template.tmpl: |-{{ define "__subject" }}[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .GroupLabels.SortedPairs.Values | join " " }} {{ if gt (len .CommonLabels) (len .GroupLabels) }}({{ with .CommonLabels.Remove .GroupLabels.Names }}{{ .Values | join " " }}{{ end }}){{ end }}{{ end }}{{ define "__alertmanagerURL" }}{{ .ExternalURL }}/#/alerts?receiver={{ .Receiver }}{{ end }}{{ define "__text_alert_list" }}{{ range . }}**Labels**{{ range .Labels.SortedPairs }} - {{ .Name }}: {{ .Value | markdown | html }}{{ end }}**Annotations**{{ range .Annotations.SortedPairs }} - {{ .Name }}: {{ .Value | markdown | html }}{{ end }}**Source:** [{{ .GeneratorURL }}]({{ .GeneratorURL }}){{ end }}{{ end }}{{ define "default.__text_alert_list" }}{{ range . }}---**告警级别:** {{ .Labels.severity | upper }}**运营团队:** {{ .Labels.team | upper }}**触发时间:** {{ dateInZone "2006.01.02 15:04:05" (.StartsAt) "Asia/Shanghai" }}**事件信息:**{{ range .Annotations.SortedPairs }} - {{ .Name }}: {{ .Value | markdown | html }}{{ end }}**事件标签:**{{ range .Labels.SortedPairs }}{{ if and (ne (.Name) "severity") (ne (.Name) "summary") (ne (.Name) "team") }} - {{ .Name }}: {{ .Value | markdown | html }}{{ end }}{{ end }}{{ end }}{{ end }}{{ define "default.__text_alertresovle_list" }}{{ range . }}---**告警级别:** {{ .Labels.severity | upper }}**运营团队:** {{ .Labels.team | upper }}**触发时间:** {{ dateInZone "2006.01.02 15:04:05" (.StartsAt) "Asia/Shanghai" }}**结束时间:** {{ dateInZone "2006.01.02 15:04:05" (.EndsAt) "Asia/Shanghai" }}**事件信息:**{{ range .Annotations.SortedPairs }} - {{ .Name }}: {{ .Value | markdown | html }}{{ end }}**事件标签:**{{ range .Labels.SortedPairs }}{{ if and (ne (.Name) "severity") (ne (.Name) "summary") (ne (.Name) "team") }} - {{ .Name }}: {{ .Value | markdown | html }}{{ end }}{{ end }}{{ end }}{{ end }}{{/* Default */}}{{ define "default.title" }}{{ template "__subject" . }}{{ end }}{{ define "default.content" }}#### \[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}\] **[{{ index .GroupLabels "alertname" }}]({{ template "__alertmanagerURL" . }})**{{ if gt (len .Alerts.Firing) 0 -}}{{ template "default.__text_alert_list" .Alerts.Firing }}{{- end }}{{ if gt (len .Alerts.Resolved) 0 -}}{{ template "default.__text_alertresovle_list" .Alerts.Resolved }}{{- end }}{{- end }}{{/* Legacy */}}{{ define "legacy.title" }}{{ template "__subject" . }}{{ end }}{{ define "legacy.content" }}#### \[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}\] **[{{ index .GroupLabels "alertname" }}]({{ template "__alertmanagerURL" . }})**{{ template "__text_alert_list" .Alerts.Firing }}{{- end }}{{/* Following names for compatibility */}}{{ define "ding.link.title" }}{{ template "default.title" . }}{{ end }}{{ define "ding.link.content" }}{{ template "default.content" . }}{{ end }}
  1. 加载配置
kubectl apply -f  dingtalk-config.yaml
  1. 修改alertmanager配置
cd /home/k8s/kube-prometheus-0.10.0/manifests
#cat alertmanager-secret.yaml
apiVersion: v1
kind: Secret
metadata:labels:app.kubernetes.io/component: alert-routerapp.kubernetes.io/instance: mainapp.kubernetes.io/name: alertmanagerapp.kubernetes.io/part-of: kube-prometheusapp.kubernetes.io/version: 0.23.0name: alertmanager-mainnamespace: monitoring
stringData:alertmanager.yaml: |-"global":"resolve_timeout": "5m""receivers":- "name": "Webhook"  #第一个钉钉名字"webhook_configs":- "url": "http://dingtalk.monitoring.svc.cluster.local:8060/dingtalk/webhook/send"   #第一个钉钉机器人转发的地址"send_resolved": true  #恢复是否发送消息- "name": "Webhook2" #第二个钉钉名字"webhook_configs":- "url": "http://dingtalk.monitoring.svc.cluster.local:8060/dingtalk/webhook2/send" #第二个钉钉机器人转发的地址"send_resolved": true"route":"group_by":- "alertname"- "namespace"- "team""group_wait": "60s""group_interval": "10s""repeat_interval": "12h""receiver": "Webhook"    #默认的接收人必须要配置"routes":- "match":    #标签里面带有service: diji 的发送到webhook上"service": "diji""receiver": "Webhook"   #接受人"group_wait": "10s""group_interval": "15s""repeat_interval": "3h"- "match":   #标签里面带有service: gaoji 的发送到webhook2上"service": "gaoji""receiver": "Webhook2"   #接受人"group_wait": "10s""group_interval": "15s""repeat_interval": "3h""inhibit_rules":- "source_match":           #匹配当前告警发生后其他告警抑"severity": 'error'      #指定告警级别"target_match":            #抑制告警"severity": 'warning'     #指定抑制告警级别"equal": ['instance','namespace',"alertname","team"]  #只有包含指定标签才可成立规则type: Opaque
  1. 刷新配置
kubectl apply -f alertmanager-secret.yaml
  1. 介绍一下alertmanager配置
  routes:- match:   #基本匹配team: testgroup_by: [env,dc]  #分组receiver: 'ops'   #接受人- match_re:  #正则匹配service: nginx|apache #多个|receiver: 'webhook3'  #接收人- match_re: #正则匹配severity: critical  #报警级别receiver: 'webhook4' #接收人
  1. 修改
cd /home/k8s/kube-prometheus-0.10.0/manifests
cat nodeExporter-prometheusRule.yaml
...- alert: demon-podannotations:description: filed  demon-pod < 2expr: sum(node_namespace_pod:kube_pod_info:{namespace="demon"}) < 2 #这是监控语句不能直接使用需要自己写 promql,sum是求和函数。for: 2mlabels:team: podsseverity: criticalservice:  dijiteam:  demon-pod- alert: demon-nignx-stopannotations:description:  nginx pod stopexpr: sum(kube_pod_container_status_ready{namespace="demon"}) < 2  #这是监控语句不能直接使用需要自己写 promql,sum是求和函数。for: 2mlabels:severity: criticalservice:  gaojinamespace: demon
...
  1. 刷新配置
kubectl apply -f   nodeExporter-prometheusRule.yaml


  1. promethus 上看是否出现

  2. 钉钉查看是否出现2个机器人分别发送,当然机器人可以放在不同的群里。我这测试无所谓了。


报错收集:

true不能为字符串


一级route里面必须有接收人receiver

没有webhook接收人

下期再见

prometheus报警配置分类之alertmanager,多webhook地址配置。相关推荐

  1. (二) prometheus报警-----自定义 / alertmanager监控,报警设置

    文章目录 1. prometheus报警设置: . 介绍 2.自定义告警规则 定义告警规则 模板化 查看告警状态 2.下载并报警组件alertmanager 2.1 配置alertmanager 2. ...

  2. IPv6地址配置方式,无状态地址配置及DHCPv6配置

    一.配置拓扑 二.配置需求 1.PC1与AR1 配置2001::/64 前缀IPv6地址,测试实现PC1与网关互联互通 2.PC2与AR2 配置2002::/64 前缀IPv6地址,测试实现PC1与网 ...

  3. html调取主机ipv6地址,IPv6地址格式及地址配置方式

    IPv6地址格式及地址配置方式 一个典型的IPv6主机单播地址由3部分组成:全局路由前缀.子网ID和接口ID(64位).全局 路由前缀用来识别分配给一个站点的一个地址范围.子网ID也称为子网前缀,一个 ...

  4. IPv6 02-IPv6地址配置

    (参考华为官网资料) IPv6地址配置有两种: 无状态地址自动配置 有状态地址自动配置协议 -- DHCPv6协议 无状态地址自动配置的过程 IPv6主机首先通过路由器发现功能来获取地址前缀信息 通过 ...

  5. Prometheus 原理和实践,含docker部署Prometheus、node Exporters、Alertmanager、Push Gateway、grafana

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 Prometheus 入门与实践 2018 年 5 月 30 日发布随着容器技术的迅速发展,Kubernetes 已然成为大家追捧的容器集群管理系统. ...

  6. 配置文件详解+AlertManager微信邮件告警配置

    文章目录 前言 AlertManager告警简单部署 一.AlertManager告警简介 1.简介 2.告警规则组成 1)告警名称 2)告警规则 3.Alertmanager特性 1)分组 2)抑制 ...

  7. prometheus 报警规则

    prometheus 报警规则 Prometheus 报警我们一遍都会配合Alertmanager来使用. 从Prometheus server端接收到alerts后,会基于PromQL的告警规则 分 ...

  8. Jenkins与git工具完成webhook勾子配置

    Jenkins与git工具完成webhook勾子配置 文章目录 Jenkins与git工具完成webhook勾子配置 前言 jenkins配合gitblit实现webhook配置 gitblit配置 ...

  9. spingmvc 通过xml配置redis jedispol 有密码 通过xml配置redis中的 jedispool(有密码)

    https://blog.csdn.net/programmer_hard/article/details/103700334 通过xml配置redis中的 jedispool(有密码) progra ...

最新文章

  1. java面向对象特征及阐述,Java面向对象四个特征
  2. sql语句技巧,不敢独享,特此呈上
  3. 第二阶段冲刺-个人总结09
  4. 寻找榜样的力量!CSDN【百万人学 AI】评选活动重磅启动
  5. Python while循环 - Python零基础入门教程
  6. c语言,期末复习之求多项式分式数列 1+1/2+2/3+3/5 ...........前n项和
  7. Spring Cloud 与微服务学习总结(16)—— 微服务架构统一安全认证设计与实践
  8. Vue:vue借助全局过滤器、moment、实现实时更新时间
  9. 架构 - 洋葱图架构
  10. ubuntu 17 php版本,Ubuntu 17.10 PHP版本下载_Ubuntu 17.10 每日构建版本下载 17.10 官方正式版_当载软件站...
  11. 如何安全的使用密码登录账号(在不知道密码的情况下)
  12. java linux 时间戳转时间_Java时间和时间戳的相互转换
  13. 自动驾驶岗位常见面试笔试题
  14. IDEA代码文件导航-Navigate使用技巧
  15. CSS单位中px、en和rer的区别?
  16. ZCMU - 1931: wjw的剪纸
  17. 阻碍NFT进一步发展的绊脚石都有哪些?从6个方面切入分析
  18. Java Entry类详解
  19. 嫁给玩股票男人的九大理由
  20. 【虚拟语气练习题】对现在的虚拟

热门文章

  1. Python编程--使用PyPDF解析PDF文件中的元数据
  2. L3-021 神坛 (30 分) 计算几何
  3. 用LaTeX制作幻灯片(slide)
  4. MindSpore模型精度调优实战:如何更快定位精度问题
  5. inspinia admin 最新版 inspinia 2.7.1 一套非常优秀的bootstrap后台管理模板
  6. Java时间格式化时YYYY(大写)和yyyy(小写)的区别
  7. 3种常用的缓存读写策略详解
  8. 2013年中国互联网安全大会
  9. 在win10 安装配置jdk和tomcat
  10. 计算机ccf a类论文,我院师生3篇论文被CCF-A类会议KDD(2020)录用