zoukankan      html  css  js  c++  java
  • 【Prometheus专题】4. Prometheus通过webhook集成Slack或Mattermost发送告警

    prometheus目前支持众多告警集成,最为常见的就是邮件和企业微信,有些公司也会一些特殊的需求,会发送告警到自己的Chat私服的聊天频道(其实就是个群组),这样就可以及时通知到相关人员。

    Slack可能用的人不是很多,关于Slack的详细情况,使用过的人可能不需要再多了解了,没用过的人可能还得看看,确实是还挺好用的。Mattermost可以认为是个Slack的内网私服版本,界面和功能上做了很大的改动,我所在的公司就在用这个,很直说,朝难用。

    告警路由的配置部分我就不详细写了,可以关注上篇文章或者别人写的博客,我们只需要关注的是alertmanager的配置,我们在添加配置时一定要配全配置,不然默认发出的告警格式我们都不知道发了个啥。

    首先是添加我们自定义的模板,

    # pwd
    /srv/app/alertmanager/template
    # cat slack.tmpl
    {{ define "custom_title" }}[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .GroupLabels.SortedPairs.Values | join " " }} {{ if gt (len .CommonLabels) (len .GroupLabels) }}{{ end }}{{ end }}
    {{ define "custom_slack_message" }}
    {{ if or (and (eq (len .Alerts.Firing) 1) (eq (len .Alerts.Resolved) 0)) (and (eq (len .Alerts.Firing) 0) (eq (len .Alerts.Resolved) 1)) }}
    {{ range .Alerts.Firing }}- {{ .Annotations.description }}{{ end }}{{ range .Alerts.Resolved }}- {{ .Annotations.description }}{{ end }}
    {{ else }}
    {{ if gt (len .Alerts.Firing) 0 }}
    {{ range .Alerts.Firing }}- {{ .Annotations.identifier }} {{ .Annotations.description }}
    {{ end }}{{ end }}
    {{ if gt (len .Alerts.Resolved) 0 }}
    {{ range .Alerts.Resolved }}- {{ .Annotations.identifier }} {{ .Annotations.description }}
    {{ end }}{{ end }}
    {{ end }}
    {{ end }}
    

    然后我们修改alertmanager的配置,添加我们所需要的告警方式,配置正确的url与告警标题和内容模板,选好自己要发送的频道就可以了

    receivers:
     - name: 'webhook-devops-team-alert'
       slack_configs:
       - api_url: 'https://hooks.slack.com/services/XXXXXXXXXXXX/YYYYYYYYYYYYY/ZZZZZZZZZZZZZZZZZZZZZ'  #修改为自己创建的webhook
         channel: '#devops'
         send_resolved: true
         title: '{{ template "custom_title" . }}'
         text: '{{ template "custom_slack_message" . }}'
    

    总的讲,Slack和Mattermost差别不是很大,两边的配置几乎一样,只是Mattermost不需要指定channel名,我们只需要在创建webhook时指定对的名称就可以了。

    告警的截图我就从Mattermost截取了,差别不是很大

  • 相关阅读:
    中断子系统5_电流层处理
    太极拳透劲的原理推测
    OpenSSL命令---pkcs7
    初步分析美国科研项目申报项目
    OpenSSL命令---pkcs8
    C#中Hashtable的用法
    android 中 ViewPager 的平常用法 ViewPager+ Views
    打卡汇报
    OpenSSL命令---pkcs12
    卡卡游戏引擎之快速入门
  • 原文地址:https://www.cnblogs.com/DevOpsTechLab/p/14041962.html
Copyright © 2011-2022 走看看