在監(jiān)控系統(tǒng)的實(shí)踐中發(fā)現(xiàn)夺溢,現(xiàn)在開源軟件中針對(duì)網(wǎng)絡(luò)設(shè)備的監(jiān)控系統(tǒng)使用比較廣泛的有 cacti 和 zabbix。其中cacti 的功能比較單一,主要針對(duì)網(wǎng)絡(luò)設(shè)備床未。而 zabbix 監(jiān)控可以覆蓋到設(shè)備層、系統(tǒng)層振坚、中間件層等薇搁。但是這兩款監(jiān)控系統(tǒng)都存在架構(gòu)設(shè)計(jì)上造成的一些短板。比如 cacti 高可用性比較差渡八,zabbix 對(duì)一些協(xié)議的采集過(guò)于復(fù)雜啃洋,配置繁瑣等。
cacti
cacti 使用的 RDDTool 時(shí)序數(shù)據(jù)庫(kù)提供數(shù)據(jù)存儲(chǔ)屎鳍,但是RDDTool 并不能作為分布式宏娄,數(shù)據(jù)只能存放在單一節(jié)點(diǎn)上。所以我們只能對(duì)一臺(tái)主機(jī)進(jìn)行縱向擴(kuò)展來(lái)提高數(shù)據(jù)的存儲(chǔ)量與查詢性能哥艇。
所以現(xiàn)在 Cacti 只對(duì)公司的網(wǎng)絡(luò)設(shè)備進(jìn)行流量采集作為與客戶結(jié)算費(fèi)用使用绝编,并不對(duì)設(shè)備性能與流量進(jìn)行報(bào)警。
常見計(jì)費(fèi)方式多為 95 計(jì)費(fèi):
zabbix
zabbix 提供了豐富的模版貌踏,并且 SNMP 協(xié)議也可以使用自動(dòng)發(fā)現(xiàn)機(jī)制對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行監(jiān)控十饥,從效率上大大提高了網(wǎng)絡(luò)設(shè)備指標(biāo)的采集。zabbix 對(duì)分布式有非常好的支持祖乳,zabbix proxy 可以讓我們?cè)诓煌木W(wǎng)域進(jìn)行數(shù)據(jù)采集逗堵,最終在匯集到 zabbix-server 中。zabbix 的數(shù)據(jù)存儲(chǔ)使用的是 mysql 或 DB2眷昆,從擴(kuò)展性上也是非常強(qiáng)大的蜒秤。但是mysql 屬于關(guān)系型數(shù)據(jù)庫(kù),并非時(shí)序數(shù)據(jù)庫(kù)亚斋,所以在針對(duì)線性時(shí)間數(shù)據(jù)存儲(chǔ)的方面作媚,需要運(yùn)維人員對(duì)數(shù)據(jù)庫(kù)的維護(hù)格外小心,因?yàn)閿?shù)據(jù)表與表之間的耦合性非常高帅刊。
所在zabbix監(jiān)控與 cacti 監(jiān)控并存纸泡,主要作用為報(bào)警,對(duì)數(shù)據(jù)的存儲(chǔ)時(shí)間周期要求并不高赖瞒。
解決方案
我曾考慮替換 zabbix 后端存儲(chǔ)數(shù)據(jù)庫(kù)女揭,因?yàn)樵?zabbix 4.0+ 版本后蚤假,zabbix 已經(jīng)支持對(duì)接 elasticsearch。當(dāng)zabbix的歷史數(shù)據(jù)存儲(chǔ)到 elasticsearch 后吧兔,zabbix 的歷史檢索性相比之前使用 mysql 確實(shí)有很大的提高磷仰,但是整體架構(gòu)卻變得更加復(fù)雜,因?yàn)槲沂褂昧?10 臺(tái)主機(jī)去單獨(dú)作為 elasticsearch 集群境蔼。
節(jié)點(diǎn)數(shù)量 | 角色 | CPU | 內(nèi)存 | 數(shù)據(jù)存儲(chǔ) |
---|---|---|---|---|
3 | master | 2 | 4G | None |
1 | Ingest | 2 | 4G | None |
1 | Coordingting | 2 | 4G | None |
5 | date | 8 | 16G | 1T |
替換了elasticsearch之后確實(shí)性能有了很大的提高灶平,但是elasticsearch 屬于倒排數(shù)據(jù)庫(kù),每個(gè)文本為了記錄一個(gè)指標(biāo)的數(shù)據(jù)欧穴,附帶了很多其他額外的數(shù)據(jù)民逼。雖然這樣提高的檢索的速度,但在存儲(chǔ)以時(shí)間為索引的海量數(shù)據(jù)上并不合適涮帘。
對(duì)于一個(gè)IDC或者一個(gè)運(yùn)營(yíng)網(wǎng)絡(luò)的企業(yè)來(lái)說(shuō)拼苍,我們并不需要定制自己監(jiān)控系統(tǒng)。但現(xiàn)有我們可用的開源監(jiān)控系統(tǒng)都各有千秋调缨,我們很難顧此失彼去做一個(gè)抉擇疮鲫,因?yàn)橐坏┍O(jiān)控系統(tǒng)上線運(yùn)行,替換監(jiān)控系統(tǒng)是一件非常危險(xiǎn)非常復(fù)雜的事情弦叶。
按照套路先貶后仰俊犯,后面我一定會(huì)拋出一套我認(rèn)為更加優(yōu)秀的監(jiān)控系統(tǒng)。但是我想在此之前仔說(shuō)明一下伤哺,并不是 zabbix 與 cacti 不優(yōu)秀燕侠、有缺陷,而是我們應(yīng)該去了解更多不同的產(chǎn)品立莉,根據(jù)自己的業(yè)務(wù)選擇合適監(jiān)控系統(tǒng)绢彤。