首先是git庫(kù)
https://github.com/orgs/open-falcon/repositories?type=all
在這篇分享中,我們會(huì)先了解下Open-Falcon的各種組件,以及之間的調(diào)用關(guān)系,讓我們?cè)陔S后的溫習(xí)過(guò)程中避免管中窺豹,而學(xué)的有的放矢。
介紹
open-falcon是一款用golang和python寫的監(jiān)控系統(tǒng),由小米主導(dǎo)貢獻(xiàn)。作為優(yōu)秀的監(jiān)控系統(tǒng)之一,其可以從運(yùn)營(yíng)級(jí)別(基本配置即可),以及應(yīng)用級(jí)別(二次開發(fā),通過(guò)端口進(jìn)行日志上報(bào)),對(duì)服務(wù)器、操作系統(tǒng)、中間件、應(yīng)用進(jìn)行全面的監(jiān)控,及報(bào)警,對(duì)我們的系統(tǒng)正常運(yùn)行的作用非常重要。
我們之后的很多監(jiān)控的系統(tǒng)都主要采用了他的思想,比如采用數(shù)據(jù)采集主動(dòng)推送,容量水平可持續(xù)擴(kuò)展,告警策略自定義,告警設(shè)置多樣化,存量數(shù)據(jù)高效查詢,用戶自定義開發(fā)程度高,很適合監(jiān)控領(lǐng)域的擴(kuò)展。
編碼由來(lái)
1、性能限制,采集周期拉長(zhǎng):這里也是借用秦曉輝老師的自述中,zabbix作為網(wǎng)絡(luò)監(jiān)控領(lǐng)域的初期應(yīng)用平臺(tái),在采集設(shè)備信息和采集指標(biāo)越來(lái)越多,細(xì)粒度要求越來(lái)越高的時(shí)候,數(shù)據(jù)庫(kù)的寫入就成為了瓶頸。這個(gè)時(shí)候我們就只能犧牲實(shí)效性換取大數(shù)據(jù)存儲(chǔ),增加執(zhí)行周期,但是隨著指標(biāo)的增加我們無(wú)法無(wú)限的去延長(zhǎng)周期。
2、采集方式限制,數(shù)據(jù)處理方式原始:zabbix部分?jǐn)?shù)據(jù)是通過(guò)pull方式,由server主動(dòng)探測(cè),當(dāng)目標(biāo)機(jī)器體量一上來(lái),就會(huì)出任務(wù)積壓。
3、監(jiān)控指標(biāo)和監(jiān)控項(xiàng)雜亂:各種系統(tǒng)和開源軟件的使用,使得我們迫切的想要一個(gè)大一統(tǒng)的監(jiān)控平臺(tái),通過(guò)自己的agent的部署,可以將監(jiān)控指標(biāo)屏蔽差異化、通過(guò)量化可視化的圖標(biāo)展示。