當(dāng)企業(yè)的業(yè)務(wù)發(fā)展到一定的階段時(shí),在系統(tǒng)中引入監(jiān)控告警系統(tǒng)來(lái)對(duì)系統(tǒng)/業(yè)務(wù)進(jìn)行監(jiān)控是必備的流程。沒(méi)有監(jiān)控或者沒(méi)有一個(gè)好的監(jiān)控,會(huì)導(dǎo)致開發(fā)人員無(wú)法快速判斷系統(tǒng)是否健康;告警的實(shí)質(zhì)則是“把人當(dāng)服務(wù)用”,用告警通知人的方式去干預(yù)系統(tǒng)達(dá)到修正的目的。
監(jiān)控告警在企業(yè)保障系統(tǒng)的穩(wěn)定性和事故快速恢復(fù)的全周期鏈路中都是至關(guān)重要的一環(huán)。在新版本的 EasyMR 中袋鼠云開發(fā)團(tuán)隊(duì)也對(duì)監(jiān)控告警功能進(jìn)行了全新的優(yōu)化,通過(guò)本文和大家分享一下監(jiān)控告警功能的設(shè)計(jì)思路以及碰到各類問(wèn)題痛點(diǎn)的解決方法。
EasyMR 監(jiān)控告警設(shè)計(jì)
對(duì)于 EasyMR 的監(jiān)控告警設(shè)計(jì)思路,考慮到 Zabbix 后端數(shù)據(jù)庫(kù)使用 MySQL 對(duì)監(jiān)控?cái)?shù)據(jù)進(jìn)行存儲(chǔ),無(wú)法滿足多維度化的告警。而 openfalcon 整體架構(gòu)上吸取了 Zabbix 的經(jīng)驗(yàn),解決了 Zabbix 的不足之處,但是社區(qū)活躍度不高。
所以我們選擇了集成 Prometheus+Grafana 的解決方案搭建 EasyMR 的監(jiān)控系統(tǒng),這套解決方案是目前主流的方案,使用的人群較多,在推廣使用上會(huì)降低門檻而且容易維護(hù),也適合袋鼠云平臺(tái)的容器化部署。整體架構(gòu)圖如下:
首先我們?cè)谶@套平臺(tái)的基礎(chǔ)上增加了一個(gè) dt-alert 組件用來(lái)對(duì)接第三方的告警發(fā)送的處理,其次我們對(duì) Grafana 進(jìn)行了少量的二次開發(fā)。開發(fā)的內(nèi)容主要在于打通 EasyMR 平臺(tái)的告警通道和 Grafana 上的通道的對(duì)接,平臺(tái)接入好主機(jī)和部署好服務(wù)后 Prometheus 就能通過(guò)服務(wù)發(fā)現(xiàn)的方式完成目標(biāo)抓取作業(yè)的生成獲取監(jiān)控?cái)?shù)據(jù)。
Grafana 從 Prometheus 中獲取指標(biāo)數(shù)據(jù)進(jìn)行展示,同時(shí)觸發(fā)告警時(shí)將告警內(nèi)容發(fā)到 dt-alert 組件中,dt-alert 組件將告警信息發(fā)往第三方平臺(tái)上。
EasyMR 監(jiān)控告警痛點(diǎn)
基于上述告警監(jiān)控的解決方案是否就是一個(gè)非常完美的方案呢,答案當(dāng)然是否定的,接下來(lái)我們就討論一下在使用此方案的過(guò)程中遇到的問(wèn)題和痛點(diǎn):
● 低版本 Grafana 漏洞頻發(fā)
低版本 Grafana 漏洞頻發(fā),導(dǎo)致平臺(tái)安全問(wèn)題受到很大的挑戰(zhàn)。漏洞是指計(jì)算機(jī)系統(tǒng)安全方面的缺陷,會(huì)使得系統(tǒng)或其應(yīng)用數(shù)據(jù)的保密性、完整性、可用性、訪問(wèn)控制等方面面臨威脅。由于早期版本的 EasyMR 是基于 Grafana5.3 版本做的二次開發(fā),所以被掃描出來(lái)的漏洞非常多,遇到相應(yīng)漏洞時(shí)只能想辦法規(guī)避。
● 缺少分級(jí)告警
缺少分級(jí)告警,無(wú)法區(qū)分不同嚴(yán)重程度的告警。對(duì)于運(yùn)維人員來(lái)說(shuō),監(jiān)控告警是用來(lái)發(fā)現(xiàn)故障用的,但是存在一個(gè)問(wèn)題,如果一個(gè)系統(tǒng)中所有的告警都是同一個(gè)級(jí)別,那么出現(xiàn)問(wèn)題時(shí),可能會(huì)同時(shí)出現(xiàn)很多的告警,告警沒(méi)有分級(jí)不光會(huì)造成告警過(guò)多,還會(huì)讓開發(fā)人員無(wú)法區(qū)分優(yōu)先級(jí),導(dǎo)致無(wú)法優(yōu)先處理更緊急的問(wèn)題。
● 無(wú)法對(duì)同一個(gè)儀表盤設(shè)置多條告警規(guī)則
由于我們是使用 Grafana 來(lái)設(shè)置告警規(guī)則,在老版本中同一個(gè) panel 只能設(shè)置一條告警規(guī)則,如果我們想針對(duì)同一個(gè)監(jiān)控指標(biāo)設(shè)置多個(gè)告警規(guī)則的話只能新建一個(gè)相同指標(biāo)的 panel 再設(shè)置新的告警規(guī)則,這在使用上來(lái)說(shuō)是非常不便利的。
EasyMR 監(jiān)控告警優(yōu)化解決方案
基于以上三點(diǎn)痛點(diǎn),袋鼠云開發(fā)團(tuán)隊(duì)在新版本的 EasyMR 中,將 Grafana 版本從 5.3.x 升級(jí)到了 8.5.x,新版本可以非常順利地解決上述問(wèn)題。基于新版本的二開前后端為了將 Grafana 很好的嵌入 EasyMR 產(chǎn)品頁(yè)面中,做了很多的優(yōu)化工作,包括但不限于隱藏側(cè)邊欄、隱藏 Grafana 一級(jí)菜單、取消 title 點(diǎn)擊事件隱藏相關(guān)信息等等。
● 優(yōu)化前
● 優(yōu)化后
如何配置 EasyMR 新版本告警規(guī)則
接下來(lái)給大家詳細(xì)介紹一下如何配置新版本 EasyMR 的告警規(guī)則。
● 選中儀表盤
選擇儀表盤,以 cpu_usage 告警為例,選中 Host_Overview。
● 選中面板
在 System->cpu_usage 面板中點(diǎn)擊下拉菜單,選中 Edit 選項(xiàng)。
● 創(chuàng)建告警
選中 Alert 項(xiàng),點(diǎn)擊創(chuàng)建告警規(guī)則。
編輯告警規(guī)則,告警參數(shù)參考如下模板,參數(shù)確認(rèn)無(wú)誤后點(diǎn)擊保存。
● 自定義告警模板
以 Redis 告警為例,在 Prometheus 查詢的值為:
自定義模板可以引用標(biāo)簽和值變量:
釘釘告警示例如下:
《數(shù)棧產(chǎn)品白皮書》:https://www.dtstack.com/resources/1004?src=szsm
《數(shù)據(jù)治理行業(yè)實(shí)踐白皮書》下載地址:https://www.dtstack.com/resources/1001?src=szsm
想了解或咨詢更多有關(guān)袋鼠云大數(shù)據(jù)產(chǎn)品、行業(yè)解決方案、客戶案例的朋友,瀏覽袋鼠云官網(wǎng):https://www.dtstack.com/?src=szbky文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-622348.html
同時(shí),歡迎對(duì)大數(shù)據(jù)開源項(xiàng)目有興趣的同學(xué)加入「袋鼠云開源框架釘釘技術(shù)qun」,交流最新開源技術(shù)信息,qun號(hào)碼:30537511,項(xiàng)目地址:https://github.com/DTStack文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-622348.html
到了這里,關(guān)于直擊運(yùn)維痛點(diǎn),大數(shù)據(jù)計(jì)算引擎 EasyMR 的監(jiān)控告警設(shè)計(jì)優(yōu)化之路的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!