记录我在区块链互联网公司的实习生活Day23

工作记录

今天是2021年8月12日,星期四,线上办公第8⃣️天
学校继续封闭,没办法啦,只能线上办公🧑🏻‍💻

任务清单

今日任务承接昨天的进度,基于昨天完成了区块链节点信息方面的报警系统判断逻辑的书写,今天进一步完善报警系统,解决了下面的问题:

  • 解决报警不及时的问题
  • 飞书机器人报警信息文案优化

任务记录

任务一:解决报警不及时的问题
嘶~这个问题整了将近一天,真的让人头大
废话少说,记录一下整个过程:
要想让报警及时反馈,必须要理解下面的这些参数意思以及整个报警的原理及过程:

  • prometheus.yml文件:
    • scrape_interval
    • scrape_timeout
    • evaluation_interval
  • alertmanager.yml文件:
    • group_by
    • group_wait
    • group_interval
    • repeat_interval
  • rules.yml文件:
    • for

如果你觉得很多很麻烦,可以先把下面三个参数搞明白:
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中
明天继续加油呀,干就完了🤠

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值