K8S雲管平台開發實踐 報警功能01

2021-08-13 20:06:30 字數 775 閱讀 8509

要實現完整的報警功能,我們需要5步:

1. 建立規則

2. 收集資料

3. 將規則資料和收集到的資料進行比較

4. 產生報警資料

5. 推送報警資料

而在運管平台中,我們整合了小公尺開源監控系統open-falcon,對應上面分析的步驟,我們給出的方案是:
1. k8s雲管平台提供報警管理模組,可以管理報警規則

2. 對open-falcon的agent模組進行了二次開發,整合了cadvisor,使之不僅能獲取主機資料,也能獲取容器資料

3. 使用open-falcon的judge模組進行報警事件的判斷

4. 對open-falcon的alarm模組進行了二次開發,使之能讀取k8s雲管平台資料庫中規則相關的資料,結合judge產生的資料,生產完整的報警所需資料

5. 對open-falcon的sender模組進行了二次開發,呼叫雲管平台傳送報警介面(目前只做了郵件報警),實現傳送郵件的功能

簡單畫了個流程示意圖如下:

從資料流轉的角度我們可以看到:

1. 規則資料由平台負責,主要儲存在mysql

2. 報警資料由open-falcon負責,主要儲存在redis(持久化在rrd磁碟檔案)

3. 最後將redis中完整的報警資料作為引數傳給報警郵件傳送介面,完成整個流程

k8s最佳實踐

通過下面兩種方式可以減小構建映象大小 small base images 有些base映象有非常齊全的工具鏈,考慮考慮是否需要這些工具鏈,還是只需要精簡映象版映象並補充所需的工具 builder pattern 對於一些go c語言專案,使用docker提供的builder pattern,先構建乙...

k8s搭建WebUI Dashborad管理介面

k8s的webui管理介面可以更好更直觀更便捷的讓我們去管理我們的k8s集群。1 vim kubernetes dashboard.yaml此時會建立很多資源,其中service是訪問時的 訪問service就可以訪問到dashboard的webui,但是預設生成的service訪問型別是clust...

k8s編排最佳實踐

不受任何控制器 deployment,replicasets,jobs 控制的pod稱之為裸pod foo service host foo service port 如果 中要訪問service,不要使用上述環境變數,最好使用service的dns名稱,上述環境變數只是為了解決有些老的系統無法使用...