| 工作记录今天是2021年8月12日,星期四,线上办公第8??天学校继续封闭,没办法啦,只能线上办公🧑🏻?💻
 任务清单今日任务承接昨天的进度,基于昨天完成了区块链节点信息方面的报警系统判断逻辑的书写,今天进一步完善报警系统,解决了下面的问题: 任务记录任务一:解决报警不及时的问题嘶~这个问题整了将近一天,真的让人头大
 废话少说,记录一下整个过程:
 要想让报警及时反馈,必须要理解下面的这些参数意思以及整个报警的原理及过程:
 prometheus.yml文件: 
  scrape_intervalscrape_timeoutevaluation_interval
alertmanager.yml文件: 
  group_bygroup_waitgroup_intervalrepeat_interval
rules.yml文件: 
   
 如果你觉得很多很麻烦,可以先把下面三个参数搞明白:1??[ group_interval: | default = 5m ]
 How long to wait before sending a notification about new alerts that are added to a group of alerts for which an initial notification has already been sent.
 【翻译】在发送有关新警报的通知之前等待多长时间,新警报将添加到已发送初始通知的一组警报中。
 2??[ group_wait: | default = 30s ]How long to initially wait to send a notification for a group of alerts. Allows to wait for an inhibiting alert to arrive or collect more initial alerts for the same group.
 【翻译】最初等待发送一组警报通知的时间。 允许等待抑制警报到达或为同一组收集更多初始警报。
 3??[ repeat_interval: | default = 4h ]How long to wait before sending a notification again if it has already been sent successfully for an alert.
 如果已成功发送警报,则在再次发送通知之前等待多长时间。
 光知道参数还不行,还必须要知道报警原理,给大家推荐两篇文章,感觉文章写的比较简洁易懂  
 报警原理看这篇👉Prometheus 一条告警的触发流程、等待时间Prometheus的报警时机👉我的 Prometheus 到底啥时候报警?
 两篇文章配合食用,效果最佳🤗
 感觉我只理解了其中的一部分,原理还没有吃透,写一下我对其中一个小点的理解: alertmanager在收到报警信息以后,先等个 group_wait设定的时间,目的是在等待的时间里,如果有同样group的报警信息发到alertmanager那了,alertmanager会把同一group里的报警信息汇总到一起发出去(比如说一条webhook消息里包含多个报警信息,注意这些报警信息一定是属于同一个group的)。这就像赶火车一样,比如说第二个警报来了,如果错过了第一个警报的等待时间group_wait,那第二个警报肯定不能和第一个警报一起走了,毕竟第一个警报已经发出去了,但这时候发送规则就不一样了,后面来的警报不再汇总,变成隔group_interval设定的时间就发送一个,警报一直有它就一直发。并且经过我的实验发现,如果一个警报多次被触发,那么每次报警的时间间隔为
 group_interval+repeat_interval 说了这么多,要想让你的报警及时,只需要把参数 group_interval降低即可。我把它改成了5s,即group_interval: 5s。让它发完第一个警报后少等一会同组的警报。 任务二:飞书机器人报警信息文案优化技术层面的问题解决了,就该着眼于产品层面的问题了。毕竟做技术也好、做销售也好,不管是啥,自己做的东西得让别人认可才行呀
 于是乎,考虑到公司的实际要求与同事们阅览方便,修改了prometheus报警后的推送模版
 公司采用的是飞书,所以利用飞书webhook机器人来精准实施报警。在将飞书与alertmanager对接的过程中,我才用了PrometheusAlert插件,实现了webhook的转发(可能是自己的配置问题,我在alertmanager.yml文件的webhook设置下,url写飞书的webhook地址就是没法传递报警信息)。 强推一下PrometheusAlert插件,虽然还在持续开发中,但现在已经非常强大,能够支持多种应用场景(飞书、钉钉、企业微信、Email、腾讯云短信与腾讯云电话)与应用环境(Prometheus、Grafana、Graylog2、Graylog3、SonarQube、Jenkins与WebHook)。PrometheusAlert里面还支持简单易上手的报警模版,跟着里面的教程很容易学会配置
 放两张我的成品🤗
 带尺寸的图片:
 
  
  哈哈哈,美滋滋🥳
 总结我的第二个项目指日可待了,明天争取把报警系统整合到Grafana中,将警报情况以可视化的样子加入到之前开发的Dashboard中明天继续加油呀,干就完了🤠
 |