zoukankan      html  css  js  c++  java
  • alertmanager邮件告警

    alertmanager邮件告警

    这篇文章是基于之前博客进行开展的:关于计划任务的一个小需求(https://www.cnblogs.com/windysai/p/14352248.html)

    利用了prometheus 下 process-exporter对crond计划任务进程监控的, grafana内置的监控报警有点丑,如下图:

    而且配置不够灵活,没有分组,静默等东西配置。所以就有了这个alertmanager的玩意研究了。之前搞k8s的监控接触过,但是理解不深,没搞清楚整个过程怎么报警起来的。

    老实说,因为改用alertmanager,默认是不支持钉钉告警的,我还没弄出来 = =(会单独写一篇文章);这点grafana做的好,直接配置机器人token的就能发,省事好多。

      先从简单入手,测了个alertmanager的邮件告警(k8s也是这么弄的),大致有个印象。配置告警规则让prometheus读 ——》 alertmanager配置告警处理方式。。。

      用了NodeFilesystemUsage,根目录/ 磁盘分区使用率超过30%就告警,一直没发(用163邮箱作为发送方发给我的qq邮箱),我当时还自我良好,看到下面这个图不以为意。

     老实说,你不装node_exporter(监控服务器的基础资源,如:内存、CPU、网络等资源),怎么可能会有返回值呢

     所以第一个事,乖乖装好,才能通过符合PromQL的语法查询出值来的

      

     第一个体会是:监控+告警整个流程梳理。

       实际上整个流程,简单概括:

      (1)组件采集数据(像node_exporter,process_exporter等)

      (2)暴露类似这样的url:http//本机ip:端口/metrics(curl localhost:9100/metrics 会有值的!!!这里端口是node_exporter默认监听端口)

      (3)prometheus通过拉取方式读数据,最终给grafana展示

      (4)alertmanager告警

     

     第二个用alertmanager的体会是:静默设置。

      看到这个蛮头痛的,图是微信设置收取QQ邮件截的。默认每5分钟发一次

      静默规则设置参考这个的:http://www.linuxe.cn/post-518.html

     

     让它2个小时内不要发(都知道有这么一回事了)。我特别说下图上的Matchers的Name和Value怎么填。是配置给prometheus读的告警规则那里来的,相当于做了个匹配规则,把serverity为warning的告警全部关掉2小时(注意时间 +8小时,刚好跟我下午2点的时间一致的)

     如果想关掉静默设置,可以直接让它Expire,当然也可以根据需要继续Edit 静默规则,写出更符合当前监控告警需求的

     第三个用alertmanager的体会是:自定义告警模板

     

      贼难看 = =。

      做法是这样的:

      (1)配置告警规则 

      (2)编写邮件模板文件:email.tmpl   ——》新增

    [root@ljy alertmanager]#cat /usr/local/src/monitor/alertmanager/template_alert/email.tmpl 
    {{ define "email.html" }}
        {{ range .Alerts }}
    <pre>
        ========start==========
        告警程序: prometheus_alert 
        告警级别: {{ .Labels.severity }} 
        告警类型: {{ .Labels.alertname }} 
        故障主机: {{ .Labels.instance }} 
        告警主题: {{ .Annotations.summary }}
        告警详情: {{ .Annotations.description }}
        触发时间: {{ .StartsAt.Format "2019-12-14 16:01:01" }}
        ========end==========
    </pre>
        {{ end }}
    {{ end }}

      (3)alertmanager配置文件,添加自定义告警模板,配置发送人

        (4)重启alertmanager,效果图如下:

  • 相关阅读:
    2008年假期
    Asp.Net viewstate , session , cookie區別
    C#类型 参考表(MSDN)
    GIS ftp
    gis 好书推荐
    c#应该怎么改进?
    ArcEngine开发体验(附许可)
    gis开源开发资料(持续更新)
    GIS API乱弹
    Autodesk Map3d的应用和开发
  • 原文地址:https://www.cnblogs.com/windysai/p/14394505.html
Copyright © 2011-2022 走看看