粉嫩小白的 OpenFalcon 的學(xué)習(xí)筆記

粉嫩小白的 OpenFalcon 的學(xué)習(xí)筆記

OpenFalcon

強(qiáng)大靈活的數(shù)據(jù)采集:自動(dòng)發(fā)現(xiàn),支持falcon-agent、snmp、支持用戶主動(dòng)push、用戶
自定義插件支持、opentsdb data model like(timestamp、endpoint、metric、key-value
tags)
水平擴(kuò)展能力:支持每個(gè)周期上億次的數(shù)據(jù)采集、告警判定、歷史數(shù)據(jù)存儲(chǔ)和查詢
高效率的告警策略管理:高效的portal、支持策略模板、模板繼承和覆蓋、多種告警方
式、支持callback調(diào)用
人性化的告警設(shè)置:最大告警次數(shù)、告警級(jí)別、告警恢復(fù)通知、告警暫停、不同時(shí)段不
同閾值、支持維護(hù)周期
高效率的graph組件:?jiǎn)螜C(jī)支撐200萬(wàn)metric的上報(bào)、歸檔、存儲(chǔ)(周期為1分鐘)
高效的歷史數(shù)據(jù)query組件:采用rrdtool的數(shù)據(jù)歸檔策略,秒級(jí)返回上百個(gè)metric一年的
歷史數(shù)據(jù)
dashboard:多維度的數(shù)據(jù)展示,用戶自定義Screen
高可用:整個(gè)系統(tǒng)無(wú)核心單點(diǎn),易運(yùn)維,易部署,可水平擴(kuò)展
開(kāi)發(fā)語(yǔ)言: 整個(gè)系統(tǒng)的后端,全部golang編寫(xiě),portal和dashboard使用python編寫(xiě)。

0.1.0 版本 主要有繪圖組件和告警組件兩大模塊


環(huán)境準(zhǔn)備:
安裝 rdis ,安裝 mysql (并初始化,具體代碼見(jiàn)文檔),安裝 make,安裝 gcc。
0.1.0 詳細(xì)安裝步驟,見(jiàn)官方文檔。
官方文檔:https://book.open-falcon.org/zh/intro/index.html(可能會(huì)失效或者版本更新)
離線文檔:https://share.weiyun.com/545291ae9358a0ed83ea48d5b436db69 (密碼:JGI2)


繪圖組件 :

Agent:  采集,解析數(shù)據(jù),上報(bào)至 transfer
            1、基本涵蓋系統(tǒng)層面監(jiān)控指標(biāo),轉(zhuǎn)換數(shù)據(jù)為 metricValue 形式,上報(bào)至 transfer
            2、支持插件采集,代碼插件可受git管理,放置在plugin目錄,從HBS中獲取執(zhí)行周期,版本等
            3、支持?jǐn)?shù)據(jù)直接上報(bào),提供HTTPAPI,將收到的數(shù)據(jù)轉(zhuǎn)換為metricValue形式,上報(bào)至transfer
            4、支持HTTP API對(duì)自身控制
        
Transfer :數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù)。
            1、接受 agent 上報(bào)的數(shù)據(jù),使用一致性 hash 規(guī)則,處理后轉(zhuǎn)發(fā)至 judge ,graph
            2、檢驗(yàn)數(shù)據(jù)合法性,清理非法數(shù)據(jù)。
            3、準(zhǔn)備內(nèi)存 Queue 中轉(zhuǎn)數(shù)據(jù),保證 judge 和 graph 平穩(wěn)接收數(shù)據(jù)。
            4、當(dāng)后端宕機(jī)時(shí)做少量緩存,提供重試機(jī)制,但是容隊(duì)列爆滿之后會(huì)造成內(nèi)存溢出

Graph:   1、存儲(chǔ) Agent push 的數(shù)據(jù)
            2、為 query 提供查詢數(shù)據(jù)接口
        
Query:   提供統(tǒng)一的繪圖數(shù)據(jù)查詢?nèi)肟?。query組件接收查詢請(qǐng)求,根據(jù)一致性哈希算法去相應(yīng)的  

graph:  實(shí)例查詢不同 metric 的數(shù)據(jù),然后匯總拿到的數(shù)據(jù),最后統(tǒng)一返回給用戶。

Dashboard: 為用戶展示監(jiān)控?cái)?shù)據(jù)

告警組件:

sender: 調(diào)用各個(gè)公司提供的 mail-provider 和 sms-provider,按照某個(gè)并發(fā)度,從redis中讀取郵件、短信               并發(fā)送,alarm 生成的報(bào)警短信和報(bào)警郵件都是直接寫(xiě)入redis即可,sender來(lái)發(fā)送。

Fe:        web入口,導(dǎo)航入口

portal: 設(shè)置報(bào)警策略;
            維護(hù)機(jī)器分組,配置策略表達(dá)式、策略模板,設(shè)置機(jī)器維護(hù)周期,配置插件關(guān)聯(lián)的分組
            
HBS:       心跳服務(wù),至于 portal 的 DB 相關(guān)。
            1、處理 agent 心跳請(qǐng)求,并將 agent 信息(ip、hostname、agent_version、plugin_version)等信                息入庫(kù)(portal庫(kù))
            2、為 agent 提供執(zhí)行的 run api 白名單、提供執(zhí)行的 plugin 插件、提供需要監(jiān)控的進(jìn)程和端口
            3、緩存監(jiān)控策略,為 judge 提供告警閾值

judge:  報(bào)警判斷模塊,依賴于 HBS。從transfer中接收數(shù)據(jù),從 HBS 中獲取報(bào)警策略,進(jìn)行閾值報(bào)警判斷
            1、從 HBS 獲取報(bào)警策略
            2、接收 transfer 上報(bào)的數(shù)據(jù),并存儲(chǔ)最新幾個(gè)點(diǎn)
            3、判斷閾值,產(chǎn)生報(bào)警事件
            4、判斷報(bào)警事件是否寫(xiě)入 redis
            5、老舊報(bào)警數(shù)據(jù)的清理

alarm:      1、處理 judge 產(chǎn)生的告警 event
            2、區(qū)分告警優(yōu)先級(jí),優(yōu)先處理級(jí)別比較高的告警
            3、為用戶提供回調(diào)接口
            4、生成告警 msg
            5、展示未恢復(fù)的告警
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容