作業日志Day23
- 作業記錄
- 任務清單
- 任務記錄
- 總結
作業記錄
今天是2021年8月12日,星期四,線上辦公第8??天
學校繼續封閉,沒辦法啦,只能線上辦公🧑🏻?💻
任務清單
今日任務承接昨天的進度,基于昨天完成了區塊鏈節點資訊方面的報警系統判斷邏輯的書寫,今天進一步完善報警系統,解決了下面的問題:
- 解決報警不及時的問題
- 飛書機器人報警資訊文案優化
任務記錄
任務一:解決報警不及時的問題
嘶~這個問題整了將近一天,真的讓人頭大
廢話少說,記錄一下整個程序:
要想讓報警及時反饋,必須要理解下面的這些引數意思以及整個報警的原理及程序:
- prometheus.yml檔案:
scrape_intervalscrape_timeoutevaluation_interval
- alertmanager.yml檔案:
group_bygroup_waitgroup_intervalrepeat_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中
明天繼續加油呀,干就完了🤠
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/293795.html
標籤:區塊鏈
